Skip to content

Graph accuracy: fix the four known holes before building on the graph #172

Description

@JordanCoin

The importers graph is the product (every outside contribution to this repo has been dependency-resolution accuracy). Four open issues show it returning wrong or falsely-complete answers in the ecosystems most users run. This issue tracks them as one unit of work, in order, with one exit test.

The four holes

# Ecosystem Symptom Reporter
#132 TypeScript ESM / NodeNext .js specifier -> .ts file edges silently dropped, most imports lost maintainer
#136 Python from .mod import x resolves to nothing, intra-package edges lost maintainer
#147 CommonJS single-quoted require() / import invisible to --importers external
#148 all --deps / --importers / blast-radius report coverage: complete on languages with no file-level imports maintainer

Order

  1. --deps / --importers / blast-radius report coverage: complete on languages with no file-level imports #148 first. Until coverage stops saying complete when it is not, every other fix ships behind a status that can lie. This is the "tells you when it doesn't know" promise from the README.
  2. js-imports rule only matches double-quoted require()/import — single-quoted CommonJS invisible to --importers #147 (smallest change, external reporter waiting).
  3. scanner: Python relative imports (from .mod import x) resolve to nothing — intra-package edges silently lost #136 and scanner: TypeScript ESM/NodeNext projects silently lose most import edges (.js specifier -> .ts file) #132 (the two largest user populations).

Exit test for the milestone

  • Each issue gets a fixture repo under testdata/ that fails on main today and passes after the fix.
  • codemap --importers on the fixture returns the exact expected importer list, not a superset or subset.
  • coverage on a language with no file-level imports is n/a or partial, never complete.
  • Release notes state what changed per ecosystem so the ~300 people who download each release can tell if their language is affected.

Why this comes before anything new

Anything built on the graph (#133 codemap check, #134 collision prediction) inherits its honesty and states it with more authority. Fixing the primitives is the prerequisite for both.

Milestone: Graph accuracy. Related: #111, #133, #134.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions