fix: say the release notes come from changelog.d fragments #7
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/1-readme-release-notes"
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?
Refs #1
A genuine README fix, and the commit that turns the merged-but-uncut v0.2.0 into the stranded state recovery (B) repairs. It is the staging step for release-toolkit#1166's field test.
The fix
The Releases section said every
feat:/fix:commit makes up the release notes. Since #2 the notes come fromchangelog.d/fragments, and subjects render only in a cut with no fragment and no[Unreleased]text. Fragment:changelog.d/1-readme-release-notes.fixed.md.Why it matters for the test
masteris ate0d43fa6 chore(release): prepare v0.2.0. The rolling PR #4 was merged with thereleaseworkflow disabled, so no cut ran, and there is no v0.2.0 tag or release. In that statert decidesaysmode=cut: a cut that is due, not a stranded one. The nextreleaserun would cut v0.2.0. Recovery refuses ("not the state recovery (B) repairs").The #417 orphan check (
internal/decide/decide.go,checkOrphanChangelog) reports a stranded cut only when a release-relevant commit (one with a semver bump, touching more than CHANGELOG/manifest/VERSION) sits above the prepare. That is the #417 shape: rolling PR merged, cut not run, afix:lands. A docs-only push would instead let the cut fire.Measured locally, with this commit on top of
e0d43fa6(rtbuilt from tagv0.67.0)rt decide --dry-run:mode=blocked,reason=pending_cut,pending_version=0.2.0,pending_prep_sha=e0d43fa6,pending_tag_exists=false,pending_release_published=absent.rt recover-pending-cut --dry-run:1-release-toolkit-v0.67.0.changed.mdand5-readme-links.fixed.md, with their bodies, which the rendered CHANGELOG does not carry;[Unreleased]prose (Added: version display; Fixed: keyboard cells).rt fragment-check(content mode): PASS.So merging this does not cut. If
releaseis enabled, the push run should fail withblocked (pending_cut)and write nothing. If it is disabled, nothing runs. Either way, the recovery is then dispatched by hand.Not measured
releaseis currently enabled.🤖 Generated with Claude Code
https://claude.ai/code/session_01TaK1qBbnCPpuc7FYj4pZG1
Verdict: APPROVE at
d0c24f2c6fMeasured with
rtbuilt from release-toolkitv0.67.0, on mastere0d43fa6and this head.The claim that merging this cannot cut: holds, measured
rt decide --dry-runfor each way the PR could land:e0d43fa6as it standscutblocked,pending_cut, 0.2.0, prepe0d43fa6--no-ffmerge commit, "Merge pull request 'fix: …' (#7)", like #5'sblocked, samefix: … (#7)blocked, sameThe order you read is right. In
internal/decide/decide.go@v0.67.0,DecidecallscheckOrphanChangelog(l. 253) beforedetectCut(l. 274), and a pending-cut orphan comes back asmode=blocked.reusable-release.ymlreads the mode fromrt decide(l. 543). Itsblocked)arm fails without a tag, release, manifest write or rolling PR, and the cut step runs only onmode == 'cut'(l. 952).The recovery it sets up
On this head,
rt recover-pending-cut --dry-runexits 0:[v0.2.0]back, leaving only the[Unreleased]prose (Added: the version display; Fixed: keyboard cells);1-release-toolkit-v0.67.0.changed.mdand5-readme-links.fixed.md, bodies included;The fix itself
fragment-checkin content mode.manifest-checkpasses.pr / gatesis green.For Alex: the window before this merges
masterdecidescutright now. Until this PR lands, anyreleaserun on master cuts v0.2.0: a dispatch, or a push of a commit that moves no version (docs:,chore:). Keepreleasedisabled, and merge this before anything else.Not measured
The live push run, and whether
releaseis enabled.