fix(gates): manifest-l10n-coverage is gate-102 — 101 was already taken - #620
Merged
Conversation
The runner declared GATE 101 twice: manifest-l10n-coverage and demo-data-coverage, each calling _pass/_fail with the same number under different names. Both gates were introduced as gate-99 within 14 minutes of each other, and the fix for THAT collision (#615) moved l10n from 99 to 101 - onto a number demo-data-coverage already held. The collision moved rather than closing. The symptom is not a duplicate-number warning. test_gate101_demo_data_scope.sh fails with 'expected FAIL on planted, got: [gate-101] manifest-l10n-coverage: NOT APPLICABLE' - the demo-data test greps for its own gate number and reads the OTHER gate's verdict. Any PR touching hydra-gates is red on it. l10n moves rather than demo-data because demo-data has a test file whose NAME pins its number (test_gate101_demo_data_scope.sh) and l10n has none, so this is the change with no rename in it.
test_gate_acceptance_matrix.sh keys a fixture to its gate by NUMBER, so moving manifest-l10n-coverage off the duplicated 101 orphaned its own acceptance bundle: 'gate-102 is DECLARED by the runner but has neither a planted/clean fixture nor a reasoned row in UNCOVERED.md'. The fixture, its two arms and its reasoning are unchanged - only the number it is filed under.
The note explained the first collision and stopped there, so it read as closed. It was not: moving l10n 99 -> 101 landed on the number this gate had just taken, and the identical failure reappeared hours later. Both times the tell was this suite failing while the gate it names was fine, because a test that greps [gate-N] reads whichever gate printed that number last. Recording the second occurrence is the part that stops a third.
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.
run-hydra-gates.shdeclaresGATE 101twice:Both call
_pass/_fail/_skipwith101under different names.How it got here
Both gates were introduced as gate-99, fourteen minutes apart:
f066a5c220:57feat(gates): gate 99 — demo data for every schema22e53a4f21:11feat(gates): gate-99 manifest-l10n-coverage#615fixed that collision by moving l10n from 99 to 101 — a numberdemo-data-coveragealready held. The collision moved rather than closing.
Why it is not obvious
There is no duplicate-number warning. The symptom is a different gate's test failing:
test_gate101_demo_data_scope.shgreps for[gate-101]and reads the other gate's verdict. Itreports its own gate as broken while that gate is fine. Every PR touching
hydra-gatesis red onthis, including
#614.The fix
manifest-l10n-coverage→ gate-102 (102 was free; 101 is now uniquelydemo-data-coverage).l10n moves rather than demo-data because demo-data has a test file whose name pins its number
(
test_gate101_demo_data_scope.sh) and l10n has none — so this is the change with no rename in it.Verified: exactly one
GATE 101and oneGATE 102remain, the surviving 101 isdemo-data-coverage,no
101is left anywhere in the l10n block, and the script parses (bash -n).