Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-55876

revisit libdeps UnusedPublicLinter algorithm

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Server Development Platform

      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?

            Assignee:
            backlog-server-devplatform [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
            Reporter:
            daniel.moody@mongodb.com Daniel Moody
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: