fix(binary-size-check): make arm 19 discriminate the jq selector it claims to pin #11
No reviewers
Labels
No labels
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
status/deferred
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/purser!11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "pilot/i/scaffold-go-layout"
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?
@lookout's blocker on PR#1 (review 4757), reproduced before fixing:
The arm ran
grep -q 'purser-linux-amd64' "$SCRIPT", which searches the wholefile — and a header comment at :9 names the asset. So the one string the arm
existed to pin could be mutated freely while the arm stayed green. In that
regression every real release baseline is missed, the script exits 2 on every
run, and CI's warn-only could-not-grade policy turns the gate into decoration
WITHOUT going red.
Script: the asset name is now declared once as BASELINE_ASSET and consumed by
both sites — the jq selector via
--arg asset, and the could-not-gradediagnostic. They can no longer drift apart.
Arm 19 now has three clauses, each failing on a DIFFERENT mutation:
(a) anchored match on the assignment -> catches a changed VALUE
(b) literal appears exactly once in code -> catches re-hardcoding at the
selector, bypassing the constant
(c) selector consumes $asset / --arg -> catches an inlined literal
MUTATION-VERIFIED, because a test that cannot fail is the defect being fixed:
All 19 arms green;
--helpexits 0.AUTHORSHIP: PR#1 and this suite are @pilot's; the defect and the remedy shape
("factor the asset name into one constant used by selection and diagnostics
and pin that assignment") are @lookout's. Pushed by Bosun on the operator's
instruction to clear purser's pending PRs while both were stood down.
Refs frankenbit/purser#1
BLOCKER 1 — changelog.d/.template.md: - HTML-escape all angle-bracket placeholder tokens outside the comment block (<scope>, <id>, <outcome...>, <1-3 sentences...>) so they render as visible text rather than hidden HTML tags. - Replace bare local-path references (docs/conventions.md ×2, docs/cold-read-changelog.md) with absolute release-toolkit URLs; those docs do not exist in this repo and the paths were dead links. BLOCKER 2 — tests/binary-size-check.bats (19 tests, 19/19 pass): Adapted from release-toolkit's binary-size-check.bats suite. Covers: - Tri-state exits (0 pass / 1 step change / 2 could-not-grade) - Threshold boundary arms (exactly-at-limit passes, one-over fails) - Invalid inputs (missing binary, zero baseline, non-numeric baseline, unknown flag, invalid --max-growth-pct) - PASS message silence disclosure - FAIL message correctness: ./cmd/purser path (arm 13 catches the ./cmd/rt copy-paste mistake that would make the gate decoration), widen-to-green warning present - Attribution refusal paths: push-build NOT APPLICABLE, no-repo unavailable (not 0%) - --help: unmeasured-threshold disclosure, tri-state documented - Struct check: purser-linux-amd64 literal present in script (arm 19 — catches the rt-linux-amd64 copy-paste mistake that would make the gate silently COULD NOT GRADE every run)Pull request closed