main went red at 0daa4225 for a reason nobody got wrong — the page really was
stale:
doc-pages FAILED
self-hosting.leaf from flamenet-e2e/SELF-HOSTING.md (a4ed8fd6… != 0f36788a…)
/spec and /self-hosting are generated from markdown in flamenet-e2e, and
the guard compares each page against that source as it stands on e2e main,
cloned when the job runs. So relay!7 was created when it would have passed and
ran twenty minutes later, after flamenet-e2e!4 had moved the source underneath it.
The window cannot be closed by ordering
A regenerated page can only match the new hash after the source is on e2e
main. So between the two merges the served page genuinely is stale, and the guard
is telling the truth. What it can be is short — #6 is what made a two-minute
gap into most of an hour.
The sequence is written down now, with the reason, so the next person meets it as
a rule rather than as a surprise on a red pipeline.
And a warning against the obvious shortcut
allow_failure: true on main, or skipping the job there, converts an honest red
into a green that means nothing — the same pattern taken out of the Android suite
today (18 tests reporting PASSED while running nothing). The guard exists because
a stale /self-hosting was served for a day telling people to run a command that
did not work.
Closes #10
`main` went red at `0daa4225` for a reason nobody got wrong — the page really was
stale:
```
doc-pages FAILED
self-hosting.leaf from flamenet-e2e/SELF-HOSTING.md (a4ed8fd6… != 0f36788a…)
```
`/spec` and `/self-hosting` are generated from markdown in `flamenet-e2e`, and
the guard compares each page against that source **as it stands on e2e main**,
cloned when the job runs. So relay!7 was created when it would have passed and
ran twenty minutes later, after flamenet-e2e!4 had moved the source underneath it.
### The window cannot be closed by ordering
A regenerated page can only match the new hash **after** the source is on e2e
main. So between the two merges the served page genuinely is stale, and the guard
is telling the truth. What it can be is *short* — #6 is what made a two-minute
gap into most of an hour.
The sequence is written down now, with the reason, so the next person meets it as
a rule rather than as a surprise on a red pipeline.
### And a warning against the obvious shortcut
`allow_failure: true` on main, or skipping the job there, converts an honest red
into a green that means nothing — the same pattern taken out of the Android suite
today (18 tests reporting PASSED while running nothing). The guard exists because
a stale `/self-hosting` was served for a day telling people to run a command that
did not work.
⚠️ First pipeline failed, and the failure is the ticket demonstrating itself.
doc-pages FAILED
self-hosting.leaf from flamenet-e2e/SELF-HOSTING.md (a4ed8fd6… != 0f36788a…)
spec.leaf from flamenet-e2e/docs/SPEC.md (41002a1e… != 50c7c8d5…)
This branch was cut from mainbefore!7 and !8 landed, so it carried the
pre-regeneration pages while e2e main had already moved. Merged main in; the
guard is clean:
9 generated pages match their sources
🔴 Worth noting rather than quietly fixing: this is a second shape of the same
hazard, and the one this MR-s text does not cover. #10 describes the window
between a source merging and its regeneration merging. This was a branch going
stale against a regeneration that had already happened — same guard, same
message, different cause, and the fix is git merge main rather than build-doc-pages.sh.
The rule as written says to regenerate. Somebody hitting this variant would run
the generator, get no diff, and be stuck. Adding that to the text.
⚠️ First pipeline failed, and the failure is the ticket demonstrating itself.
```
doc-pages FAILED
self-hosting.leaf from flamenet-e2e/SELF-HOSTING.md (a4ed8fd6… != 0f36788a…)
spec.leaf from flamenet-e2e/docs/SPEC.md (41002a1e… != 50c7c8d5…)
```
This branch was cut from `main` **before** !7 and !8 landed, so it carried the
pre-regeneration pages while e2e main had already moved. Merged main in; the
guard is clean:
```
9 generated pages match their sources
```
🔴 Worth noting rather than quietly fixing: this is a **second shape** of the same
hazard, and the one this MR-s text does not cover. #10 describes the window
between a source merging and its regeneration merging. This was a branch going
stale against a regeneration that had already happened — same guard, same
message, different cause, and the fix is `git merge main` rather than
`build-doc-pages.sh`.
The rule as written says to regenerate. Somebody hitting this variant would run
the generator, get no diff, and be stuck. Adding that to the text.
added 1 commit
<ul><li>59b2e569 - The rule needed the other cause too</li></ul>
[Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/9/diffs?diff_id=1995197784&start_sha=5e27624fc1e0a30faef0548fc4c81d7a52dcfc75)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #10
mainwent red at0daa4225for a reason nobody got wrong — the page really wasstale:
/specand/self-hostingare generated from markdown inflamenet-e2e, andthe guard compares each page against that source as it stands on e2e main,
cloned when the job runs. So relay!7 was created when it would have passed and
ran twenty minutes later, after flamenet-e2e!4 had moved the source underneath it.
The window cannot be closed by ordering
A regenerated page can only match the new hash after the source is on e2e
main. So between the two merges the served page genuinely is stale, and the guard
is telling the truth. What it can be is short — #6 is what made a two-minute
gap into most of an hour.
The sequence is written down now, with the reason, so the next person meets it as
a rule rather than as a surprise on a red pipeline.
And a warning against the obvious shortcut
allow_failure: trueon main, or skipping the job there, converts an honest redinto a green that means nothing — the same pattern taken out of the Android suite
today (18 tests reporting PASSED while running nothing). The guard exists because
a stale
/self-hostingwas served for a day telling people to run a command thatdid not work.
⚠️ First pipeline failed, and the failure is the ticket demonstrating itself.
This branch was cut from
mainbefore !7 and !8 landed, so it carried thepre-regeneration pages while e2e main had already moved. Merged main in; the
guard is clean:
🔴 Worth noting rather than quietly fixing: this is a second shape of the same
hazard, and the one this MR-s text does not cover. #10 describes the window
between a source merging and its regeneration merging. This was a branch going
stale against a regeneration that had already happened — same guard, same
message, different cause, and the fix is
git merge mainrather thanbuild-doc-pages.sh.The rule as written says to regenerate. Somebody hitting this variant would run
the generator, get no diff, and be stuck. Adding that to the text.
added 7 commits
main5e27624f- Merge main: pick up the regenerated doc pagesCompare with previous version
added 1 commit
59b2e569- The rule needed the other cause tooCompare with previous version
mentioned in commit
4d34a15cdcchanged the description