[SERVER-53494] libdeps graph linter: public deps efficiency threshold Created: 22/Dec/20 Updated: 02/Sep/22 Resolved: 16/Aug/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Major - P3 |
| Reporter: | Daniel Moody | Assignee: | Mitch Wagner (Inactive) |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Sprint: | Dev Platform 2022-07-25 |
| Participants: |
| Description |
|
The transitive tree of edges created by a public libdeps declaration may be added to many link lines but not actually used. A given public libdep can be given an efficiency percentage calculated by (the number of transitive edges that really need the link)/(the number of edges in that transitive tree).
First we should implement a query so that for a given node, you can print the efficiency of all direct public libdeps on that node.
We should then also implement a linter which checks all direct public libdeps edges efficiency percentages, and if a percentage is below a given threshold it is reported. It may be that it is desirable that a node which has, say for example a %2 percent efficiency and is actually needed in only two link lines, but is transitively added to 100 link lines, would instead just use two LIBDEPS_PRIVATE links where needed.
|