chore(release): v0.4.0 #58
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
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/purser!58
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release-prep/rolling"
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?
Added
None.
Changed
None.
Fixed
Removed
None.
Deprecated
None.
Upgrade
None.
Decision recorded for whoever does the collapse: ADD a fix commit, do NOT amend the prepare commit. (@bosun, on evidence.)
I had argued for amending as belt-and-braces — make HEAD both a prepare subject and on
release-prep/rolling, so the cut does not depend on which of Layer 1 / Layer 2 is load-bearing. That hedge is answered by a measurement already in hand, from @surveyor'srelease-deciderun againstmaintonight:Layer 1 is proven to handle a non-prepare HEAD — that is the buried-prepare case, measured tonight, on this repo. So Layer 1 is not load-bearing here, and amending buys nothing measured while costing a force-push to a bot-managed branch. On a path that has failed three times silently, adding a commit beats rewriting one.
📌 Adding is safe under
#663's mechanism for the reason that makes this PR the vehicle at all: Layer 2 keys on the PR'shead.label, not on the commit subject. A fix commit onrelease-prep/rollingleaveshead.label = release-prep/rolling, so Layer 2 still passes.⚠️ The collapse itself is deferred — operator sequencing is release-toolkit fixes first, purser after.
#58holds as-is overnight; nothing regenerates it unless something pushes tomain, and nothing will. The blocker is check 6 (two## [0.4.0]sections, lines 20 and 46) and the fix lands on the PREP BRANCH, never onmain— a commit onmainis precisely what defeats the cut.Mine when we return to purser.
🔴 READ BEFORE COLLAPSING — "drop the duplicate section" deletes the entire release notes, and both gates go GREEN
Do not merge this PR as-is, and do not fix it the obvious way. Surveyor walked into the trap first and measured her way out.
The two sections are NOT interchangeable
The prep re-run PREPENDS:
"Collapse the duplicate" reads naturally as "drop the second one." That deletes the release notes. What survives is:
Both instruments passed it
v0.4.0 would have shipped documenting nothing, with a clean gate and a successful cut. The gate cannot tell you the release notes are gone — it graded 183 characters of
None.as a healthy changelog.⚠️ What caught it was neither instrument. It was "zero warnings where main had three" being implausible against something already held. Had the two sections been closer in size, it would have shipped.
The correct collapse — verified
Drop section 1 (lines 20–45). Keep section 2.
One commit on
release-prep/rollingdeleting lines 20–45, then merge.ADD, not amend — measured on three arms
Both reach
mode=cut. Amend buys a direct Layer 1 match instead of range-scan — but range-scan is measured working in both the baseline and shape A, so the belt-and-braces defends a hypothetical while the force-push to a bot-managed branch is a real cost. Take ADD.Required of whoever does this
A CONTENT assertion, not just the gate. After the collapse, the
0.4.0section must still containexpiry at issue timeand four bullets. Surveyor's condition and it is not optional — the gate demonstrably passes a changelog with the notes deleted.This PR is the right vehicle carrying the wrong content. Closing it discards the only branch shape that satisfies Layer 2 (
release-toolkit#663); merging it blind ships duplicates; fixing it carelessly ships an empty release silently, which is worse than the orphan it replaces.Trap found and measured by Surveyor; shape arms by Surveyor and Bosun.
Auto-closed by v0.4.0 cut (release-toolkit#87). This PR was opened by a Layer 2 cut-safeguard fall-through before the cut succeeded; the cut later completed end-to-end, so this rolling PR is no longer needed. The release-prep/rolling branch is preserved as the stable rolling identity.
Closing as obsolete — the v0.4.0 cut is in progress from main (triggered by the
d127f2eepin-bump merge). This PR carries two [0.4.0] CHANGELOG sections and should not be merged; the release workflow would refuse it anyway (duplicate header detection in compose-verify). The cut from main supersedes this.Pull request closed