test/release.sh demands an Unreleased section — the release PR of the ceremony can never pass CI #44
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:bootstrap
scope:coolify
scope:db
scope:docs
scope:drill
scope:installer
scope:labels
scope:platform
scope:runner
scope:users
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/rig#44
Loading…
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?
Found while opening the real
release: 0.1.0PR after the 2026-07-19 drills (both of which rehearsed the ceremony by tagging a fork branch — a path that runsrelease.ymlbut notci.yml, which is exactly why this stayed invisible until the real PR).test/release.sh:94-97asserts, against the REALCHANGELOG.md:## Unreleasedheading exists, andchangelog_section CHANGELOG.md Unreleasedextracts non-empty and contains#32.Both are false by construction on the
release: X.Y.Ztree — the ceremony's own release PR stamps## Unreleased→## X.Y.Z — date(CONTRIBUTING "Releasing") — so the release PR turns CI red and the flow blocks itself. They are also false on post-release main until the next feature PR re-adds the section (the-devbump commit doesn't touch the changelog — box precedent7044f8e).The guard's real intent (its own comment): the shipped changelog fits the extractor. That property should hold in both legitimate tree states: whatever the TOP
##section is —Unreleasedbetween releases,X.Y.Z — dateon and right after a release — the exact functionrelease.ymlruns must extract it non-empty. The hardcoded#32content-grep adds nothing to that and rots with every release.Fix PR follows. cast has the identical trap (
test/release.test.ts:148-152, hardcoding#96) — filed separately; box's suite pins fixtures and already-released sections only, and is not affected.🤖 Filed from the release-drill session.