docs(ci): pin the "can never be required, structurally" bullet to the YAML it quotes (#4170) - #4175
Merged
Merged
Conversation
… YAML it quotes (#4170)
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
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.
Fixes #4170
Option B, per the delegated ruling on the card:
PR #4171 (#4154, same page) had merged as
6eb40b8d7, so this branches offmainrather than stacking on it. Premise re-verified onmain@da8109300before implementing — all four claims still TRUE, parsed out of the YAML rather than read by eye:changeset-guard.ymlinverse path filteron.pull_requestblock isbranches: [main, develop]+paths: ['.changeset/**']performance-budget.ymlpath filteron.pull_request.pathspresent (packages/**,apps/console/**,pnpm-lock.yaml)live-e2e.ymlcontinue-on-error: truelive-e2ecross-repo-issue-closer.ymlruns only after a mergeon:holds one trigger,types: [closed], plus the job'smerged == truegateOne correction to the issue's evidence table, which does not change the verdict: that last trigger is
pull_request_target, notpull_request(the workflow's header explains why — it needs repository secrets, whichpull_requestwithholds from forks). The page now names the real event, and the pin derives it, so this particular mis-reading cannot recur silently.The page
The bullet keeps all four examples and becomes a nested list — one claim per line, each naming its workflow file and quoting the property that blocks it. Three reasons, all of them load-bearing:
live-e2e.ymlretirement a one-line deletion instead of an edit inside a run-on sentence with anandto repair;live-e2e.ymlwas not named on the page before — the old clause quotedcontinue-on-error: truewithout saying whose job it was on.The closing paragraph states where the pin lives and what to do when the scheduled break arrives: delete the line and its entry, do not soften it in place.
The pin
scripts/__tests__/ci-cd-pipeline-doc.test.ts, next to the other claims this page makes about the YAML.STRUCTURAL_BLOCKSmapsfilename -> a CHECKER— never a copy of the value, which is read out of the workflow on every run (the #4150 derived-expectation pattern):changeset-guard.ymlon.pull_request.pathsexists, and every glob in it is quoted by the page's lineperformance-budget.ymlon.pull_request.pathsexists (that line quotes no glob, so nothing else is derivable)live-e2e.ymllive-e2ejob carriescontinue-on-error: true, and the page quotes that literalcross-repo-issue-closer.ymlon:trigger is restricted totypes: [closed], the job gates onmerged == true, and the page quotes both the event name and the typeScope, stated in the docblock rather than left to be discovered — this pins examples true, not a census:
.github/workflows/for other structurally-unrequirable workflows, and a fifth one arriving must not turn this red. The bullet says "Some contexts" and is right to;The
live-e2e.ymlred is expected and scheduled, so the docblock says so in those words and says what the fix is: whencontinue-on-errorcomes off, delete the line and the entry — the lane has become requirable and the page must stop saying otherwise. Do not soften the wording, do not relax the check.Reverse verification
Seven mutations, one at a time, each restored with
git checkoutagainst the branch commit (nevergit stash— shared stack, objectui#3430). Five YAML, two prose; the failing test titles are the point, not the counts:Exactly one red per mutation in A-F, each naming the workflow whose property moved — per-claim attribution, the other three green throughout. D and E red the same test for two different halves of one claim, which is right: "runs only after a merge" is carried by the trigger and the job gate, and losing either one makes the sentence false.
F is the direction that proves the quoting is not decorative: the YAML is untouched and correct, the page stops quoting
.changeset/**, and only the quoting assertion reds — the property assertion stays green because the property is fine. G is the vacuity guard: deleting the bullet must not be a way to get a green board, since "green because nothing was produced" is the failure this page keeps meeting (#3451).An earlier pass of this exercise restored with
git checkoutwhile the fix was still uncommitted, which discarded the page edit and left the new tests running against the old bullet. It reproduced G exactly — 5 failed, the same five — so the guard is attested twice, once by accident.Tests
No changeset —
scripts/check-changeset-presence.mjsarbitrates: "No source of a released package changed in this range, so no changeset is owed." Docs plus test only. Noskip-changesetlabel: nothing in this repository reads it (#3724).Out of scope
Nothing new filed. The
pull_request_targetcorrection above is an error in the issue's evidence table, not in the repository or on the page, and it is fixed here because the line it affects is one of the four this PR rewrites.Generated by Claude Code