ci(l2): a regenerated gen/ file passes when t27c reproduces it byte for byte (Closes #6226) - #6253
Merged
Merged
Conversation
…or byte (Closes #6226) The L2 step failed every modified gen/ file, including ones regenerated from a spec changed in the same PR (#6218, #6246). tools/l2_regen_check.py now runs `t27c gen-<backend> specs/<path>.t27` for each modified gen/<backend>/<path>.<ext> and passes only on equal bytes. No spec, a t27c error or different bytes fail; no t27c is "not checked" and fails. t27c is built (with a cargo cache) only when the diff modifies gen/. Same step, second defect: the list was `origin/master..<PR head>` (two dots), so a branch cut before master changed a gen/ file was charged with master's change (#6247, c5406e6). It is now three dots, from the merge base. Census re-blessed: shell `run: steps` 286 -> 287 (the new build-and-compare step); quiet `failure branch passes` 15 -> 14 (the old `git diff 2>/dev/null | grep || echo ""` passed when git diff failed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 tasks
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 #6226
What changed
.github/workflows/l1-traceability.yml, L2 step, two defects:tools/l2_regen_check.py: for each modifiedgen/<backend>/<path>.<ext>it runst27c gen-<backend> specs/<path>.t27(the mappingt27c gen-cis fed; stdout is the file) and compares bytes.specs/<path>.t27, unknown backend, t27c error -> FAILnot checked, FAILorigin/master..<PR head>(two dots); it is noworigin/master...<PR head>(three dots, from the merge base).The first L2 step now only lists modified gen/ files.
actions/cache(restore-keys fall back to queen-doctor'scargo-doctor-cache) andcargo build --release -p t27crun only when the list is non-empty, so a PR that does not touch gen/ pays nothing extra.Mutation control (local t27c, scratch worktrees, same tool)
Census (Q12)
Re-blessed in this commit: shell
run: steps286 -> 287 (the build-and-compare step); quietfailure branch passes15 -> 14 (the oldgit diff 2>/dev/null | grep || echo ""passed when git diff itself failed).tri census pin --gateis clean after the bless.Cost when it runs
Measured on other workflows'
cargo build --release -p t27csteps: ~48 s warm cache (queen-doctor, 2026-09-28), ~3.5-4.5 min cold (queen-doctor 2026-09-21, spec-guards 2026-09-16).🤖 Generated with Claude Code