Repository navigation
fix(tools): name a missing dependency and a dependency cycle in resolve.py errors (#1922) - #1955
Merged
Merged
Conversation
…ve.py errors (#1922) The resolver skipped an ID with no manifest entry and resolved a shorter chain at exit 0, and recursed on a cycle until RecursionError. Both chains now raise ResolveError naming what broke, and the CLI prints it and exits 1. Every root resolves to the same chain as before. SYS-19 plants a manifest with each fault and a valid control root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The walker seeded the core tier as done, so a missing ID or a cycle under a core entry exited 0 in every chain. The core tier's subgraph is now checked on its own before the root's; output order is unchanged. SYS-19 gains a case for each: core -> missing, core -> core, core -> stack -> core. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Review finding addressed in f4ea0f4 "check the core tier's own dependencies in resolve.py":
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1922.
What
tools/resolve.py: a shared_resolve_orderwalker now backs bothresolve_chainandresolve_ids. It raisesResolveErrorwith one of three messages:Missing dependency: <entry> depends on <id>, which has no manifest entry, orthe core tier names <id>…when the missing ID comes from the core listDependency cycle: a -> b -> aUnknown root: <id> has no manifest entry, for library callers. The CLI still checks the root itself first.main()prints the message and exits 1 with no traceback. The old code dropped a missing ID and resolved a shorter chain at exit 0, and recursed on a cycle untilRecursionError.SAIT-SMK-SYS-19-001Aand an INDEX row): it plants a manifest with a valid control root, a missing ID and a cycle, then runs the resolver's ownmain()against each one. It asserts the status, the phrase, and that no traceback appears.resolve.py).Behaviour unchanged on the real manifest
Every root from
--rootsplus both fixtures resolves to byte-identical output before and after: 39 roots, 586 lines.--rootsoutput is identical too, andresolve.py --checkpasses.Verification
run_smoke.py: 34/34.sync.py --checkandaudit_redundancy.py --checkare clean.run_conformance.py: 0 failed. Its readings: release ordering has no other ready PR, no off-limits path is touched, and the test change istests/run_smoke.pygaining SYS-19 (pure addition).resolve.py(confirmed landed) fails.stack-missingexits 0, andstack-cycleexits 1 without the cycle phrase. Then reverted.🤖 Generated with Claude Code