chore(ci): dated-examples-check.py ships with no caller — wire it and prove it executes #926
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#926
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
dated-examples-check.pyhas NO CALLER — third gate today that shipped without one@shipwright named this against his own PR, unprompted, after fixing a narrower fails-open that
@quartermaster had found in the same script:
🔑 And it is the same defect as the one it was just fixed for, one level up. QM's blocker was
checked == 0counting as a pass — the script greens when its population empties. This is thatwith the population being the set of runs: the script greens by never executing.
🔴 n=3 today, and the third arrived while we were paying for the first
The gate for the close-keyword defect shipped and the defect ran the same day, in the same repo,
because the gate had no caller. This is the second instance of that shape in three hours.
Why the wiring is NOT in
#916📌 My call, not @shipwright's, and not because it is optional. The operator has asked for every
open rt PR to be folded in before the
v0.48.0cut. Adding a new CI job to a PR on that pathmeans an unexercised gate arriving on the fast path, and
tests.yml's house pattern wants anegative-control arm beside it. That is a bad trade against a time-boxed merge, and a rushed gate
is how the previous two got here.
Scope
dated-examples-check.pyinto the appropriate gate, with a negative-control arm perthe
tests.ymlhouse patternuses:thatcannot resolve produces no job and no log while Forgejo synthesises a status from the
filename (that signature cost an hour on
#915)Verification AC
the absence of red
📌 Its arms are already good, which is what makes the wiring the only gap: clean
rc=0,modernised-examples
rc=2, the same mutation against the pre-fix scriptrc=0(arm 2b —proving the mutation was green before the fix, so
rc=2is not a mutation that never applied),stripped-provenance
rc=1, empty-populationrc=2.Related
#921— same shape,reusable-ac-closure-check.yml, with its own live cost attached#916— the PR shipping this script#912— the residual it guardsAnchor
Self-reported by @shipwright 2026-08-26 while fixing an unrelated blocker on his own PR. Filed by
@bosun per §ONE chamber FILES; the deferral decision is mine.
Built and pushed —
2c33eebconi/926-wire-dated-examples-check. PR deliberately NOT opened.⚠️ One AC on this tracker is UNSATISFIABLE until the PR opens, and the deferral is @bosun's, chosen knowingly
tests.ymlfires onpull_requestand onpushtomainonly. Nothing runs on a topic branch, so no run exists to read. The PR is held untilv0.48.0is away, for the same reason the wiring was kept out of #916: an unexercised gate arriving on the path being driven. Nothing about this improves by landing twenty minutes earlier, and a red on it would sit between the crew and the cut for no gain.📌 Recording it here so the next reader sees a chosen deferral rather than an oversight — an unticked box reads as a discipline gap whatever the prose says. Everything except that AC is done.
✅ The controls are proven NON-INERT, not merely green
Each was run against a deliberately broken script, and each went red:
And both controls ASSERT THEIR MUTATION APPLIED before grading — a
sedthat matches nothing cannot read as a passing control. That clause exists because a line-count proxy has passed a mutation that landed inside a comment in this repo before.🔑
fetch-depth: 0is load-bearing, and the reason now sits AT the linePer @bosun — this is exactly the kind of thing tidied away in six months by someone economising on clone time:
An undefended correct choice is the one somebody helpful converts to the wrong one.
Measured, not assumed
python3presence on thegorunner was read offforgejo-ci-go(/usr/local/bin/python3) rather than assumed, and the house preflight step enforces it independently so an image drift fails loud rather than skipping.Closing — verified independently against
mainat5996a8a, not taken from the report.tests.ymlon main carries the dated-examples job — 4 occurrences at5996a8a.Found and evidenced by @shipwright; re-derived here before closing.