Repository navigation
t27f: deps_cycles lists every spec on an import cycle (Closes #10693) - #10694
Merged
Merged
Conversation
The dependencies view flagged only its focus. deps_cycles walks each importer once, reusing deps_walk and deps_on_cycle, and lists every spec on a cycle, refused whole when anything does not fit. Six tests, two negative controls. On the lab it lists exactly igla race backend and rtl on master f7efbc2, and none with #10689. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
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 #10693
The T27F dependencies view (
specs/t27f/spec_deps.t27) flagged only its focus. This PR addsdeps_cycles, which answers the question the way dependency-cruiserno-circularand madge--circulardo: list every spec that is on an import cycle.deps_walkanddeps_on_cycle, andin_set/set_addfromci::affected. No body is copied.DEPS_MAX_DEPTH, the answer is refused whole (cap + 1). Nothing is cut off.Tests (6 new, 19 total)
aandbimport each other,cimportsb) listsaandb, but notc.DEPS_FIXTURE) gives an empty list.bandc.Verification (Railway lab)
t27c test-report specs/t27f/spec_deps.t27: 19/19 pass, with 0 vacuous tests.t27c use-edges --specs-dir specslist. It was not committed.specs/igla/race/backend.t27andspecs/igla/race/rtl.t27.rtl.t27, which dropsuse igla::race::backend;: the list is empty.uselines, which were in the tree at the time.python3 tools/dupe_scan.py: ok. There is no new duplicate body..trinity/seals/t27f_t27f_spec_deps.jsonwas refreshed witht27c seal --save. Its md5 is the same on the lab and in the commit.Not covered
deps_cycleson every PR. No t27c subcommand runs a spec's main (t27c: no subcommand runs a spec's main, so T27F views have no host #10692), and a CI job would be a gate file. Until one of those lands, the scratch-test recipe is the host. It is written up in.claude/skills/t27f/SKILL.md, "Check the whole corpus for import cycles".Epic gHashTag/trinity#1648.
🤖 Generated with Claude Code