[SERVER-55876] revisit libdeps UnusedPublicLinter algorithm Created: 07/Apr/21  Updated: 17/Oct/23  Resolved: 17/Oct/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Daniel Moody Assignee: [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Server Development Platform
Participants:

 Description   

There have been significant changes to the codebase around the libdeps graph analyzer. The requirements for this linter should more clearly defined and the algorithm should be revisited considering the latest changes of the libdeps graph analyzer codebase.

Some questions to clarify the requirements:

What is an unused libdep? If you imagine a tree of transitive edges created from a direct public edge, some of those transitive edges may be unused (no used symbols on the edge), but others are used. Do all trans edges need to be unused for the direct public edge to be declared unused? Or do all trans edges that do have symbols in that tree need to at least be redundant or covered by some other direct public edge if they have symbols? Or is there some percentage of resulting trans edges which are used which define it as 'useful' and if its below the threshold we should try to convert the few useful trans edges to direct private edges to remove the direct public edge?


Generated at Thu Feb 08 05:37:43 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.