Name the clone in the parity block, which was reading this tree instead - #396
Merged
Merged
Conversation
`docs/gate-parity.md:76` ran an `awk` over the relative glob `.github/workflows/*.yml` and pasted twenty-four rows of the sign-on plugin's workflow files under it. This repository carries `.github/workflows/` as well, so the block answered out of this tree and exited 0. What was wrong is where the reader was standing rather than what the paste says. Until `fd53a61` the section above carried `cd ssoclone && git rev-parse HEAD`, so a reader following the file in order was inside the clone by the time they reached the glob. That pair was replaced by three commands naming the clone with `-C`, which is the right shape for the sha it anchors, and it was the only thing in the file that moved a working directory. Nothing has since. The failure it prevents is a reader comparing this board's gate against itself and being told it matches. The two gates share eight workflow file names, and five whole rows of the twenty-six this tree returns are byte-identical to rows in the paste, so a spot-check of the block's output against the table can agree five times before it disagrees. The glob now names the clone in its own argument. The `awk` strips the directory off `FILENAME`, so the rows are unchanged, and run against a clone the section's three commands make it reproduces all twenty-four. The sentence introducing the section said everything below it was measured inside that clone. Three readings here are taken in this repository at pinned commits of it and find nothing inside a clone of the other one, so the sentence is narrowed to the block it was true of, and the paragraph beside it records what it said. Found by sweeping the indented pastes in this file set that begin with a verb the three sweeps of 2026-09-17 do not match; this one begins `awk`. Closes #395 Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
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 #395
What changed
docs/gate-parity.md:76ran anawkover the relative glob.github/workflows/*.yml, with twenty-four rows of the sign-on plugin's workflowfiles pasted under it. It names the clone in its own argument now, the way the
three commands above it name it with
-C. The sentence introducing the sectionsaid everything below it was measured inside that clone; it is narrowed to the
block that is, and the paragraph beside it records what it said and why.
The failure it prevents
This repository carries
.github/workflows/as well, so the block answered outof this tree and returned 0. What made that expensive is how close the wrong
answer looks. The two gates share eight file names:
and five whole rows come back the same, triggers and workflow name included:
That block is the one this file calls the set that decides parity, so a reader
comparing this board's gate against the other one could be comparing it against
itself and getting five rows of agreement for it.
How the state arose
Until
fd53a61the section carriedcd ssoclone && git rev-parse HEAD:That pair was replaced by three commands naming the clone with
-C, which is theright shape for the sha it anchors and is not what this change argues with. It
was also the only command in the file that moved a reader's working directory,
and there is none on
origin/main:The evidence that the repair holds
The head being pushed is
e33656bfbfa67e2587adf8d7176df0d550c81875. The blocktaken verbatim out of that commit, run in a directory holding a clone the
section's own three commands make, returns the twenty-four rows the file pastes:
The
awkstrips the directory offFILENAME, so prefixing the glob changes norow. The two commands both pass:
and the two document checks this change could reach:
The trap, which is worth more than the repair
The comparison above has to be sorted, and one that is not says the opposite.
Unsorted, the same two outputs differ on three lines, because the order a glob
expands in is the reader's collation. The paste was taken under a locale-aware
one, where
prettier.ymlprecedespr-hygiene.yml; a shell in the C locale putsthe hyphen first, reverses that pair and moves
publish.ymlbelow its fivepublish-neighbours:Both orders hold the same twenty-four names. A re-run reported without the sort
would condemn a block that is entirely right, which is the direction this board
has already recorded twice today for a
bashwrapper and forjqline endings.What this does not cover
doc-pathsreads no indented block bydesign, because the paths in them are frequently another repository's, and its
own output says so. A bare relative glob inside a block is refused by nothing
here, and this change adds no check.
is read were examined. Whether each pasted output still reproduces is the sweep
recorded on The plan for this repository, in build order, and what it leaves out #98 and is not re-taken here.
ghreadings of the plugin's head. Theyreach the network and were not run for this change.
Who has read it
Nobody but me. This board has no second reader tonight, so the evidence above
stands in place of one: every claim carries the command that produced it, run at
e33656bfbfa67e2587adf8d7176df0d550c81875or at the reference named beside it.