Goal
Adopt deterministic Go-style Minimal Version Selection and semantic import versioning.
Current boundary
Current resolver supports a narrow stable-semver constraint set for exact versions, comparisons, tilde, caret, latest, and wildcard requests. Recursive installation selects compatible versions but does not implement graph-wide MVS or semantic import versioning.
Required design
- Define module identity and major-version import-path rules.
- Replace recursive best-match resolution with deterministic graph-wide MVS.
- Specify upgrade, downgrade, exclusion, and retraction behavior.
- Preserve lockfile determinism, offline behavior, integrity checks, and mock registry support.
- Define manifest and lockfile migration before removing tactical constraint semantics.
- Add compatibility, conflict, diamond-dependency, replacement, and repeatability fixtures before migration.
Constraints
- Do not extend current compatibility resolver piecemeal.
- Design canonical graph algorithm and import-version model first.
- One resolved module version must serve whole build graph unless semantic import versioning gives major versions distinct identities.
- Diagnostics must explain selected version and forcing dependency path.
Relationships
Validation
- Resolver unit tests for MVS, upgrades, downgrades, exclusions, retractions, and major-version paths.
- End-to-end local and mock-registry fixtures.
- Stable lockfile output across dependency traversal order.
- Offline and integrity-failure diagnostics.
Goal
Adopt deterministic Go-style Minimal Version Selection and semantic import versioning.
Current boundary
Current resolver supports a narrow stable-semver constraint set for exact versions, comparisons, tilde, caret, latest, and wildcard requests. Recursive installation selects compatible versions but does not implement graph-wide MVS or semantic import versioning.
Required design
Constraints
Relationships
Validation