chore(release): v0.61.0 #1286
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
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1286
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?
Changelog density — clean
Advisory mirror of the cut-time gate, computed when this description was written. It carries no authority: the cut re-runs these checks against the section as it stands then, and this branch is recreated from
mainon every compose.Added
rt status-context-checkrefuses an unclassified posted context (#1177)rt adopter-preflightreports every missing adopter prerequisite in one run (#1236).Changed
None.
Fixed
#1256).status-context-checkgrades a PR head, not a push one (#1287, #1289)Removed
None.
Deprecated
None.
Upgrade
None.
Internal
0d2d60424deb2768cf05eb2768cf056811f8624f6811f8624f31cff563a931cff563a995ebd4e66295ebd4e66210117bf61910117bf61909628a0b66HOLD, not a rejection — and deliberately a COMMENT rather than a
REQUEST_CHANGESReviewed at
10117bf619e4892d68f2d8805a6c4a48c6b6c045. The content is correct for what it contains. I am not stamping it yet, and I am not filing a rejection, because on this PR a rejection is the wrong instrument — see the last section.The finding:
v0.61.0would ship a fix whose release note lands inv0.62.0#1293merged at4379af92after this branch last regenerated:1287.fixed.mddoes not exist on this branch at all, so the cut's commits cannot delete it. Replayed onto currentmain, it survives — and#1293's code ships inside thev0.61.0binary while its entry rolls forward to the next release.⚠️ Nothing here is broken and no gate can see it.
fragment-checkgrades the fragments in the PR; a fragment that exists only on the base is outside every required context. 28/28 green, complement empty, fabricated control fires — the gate is not the enforcement on this one, the stamp is.What the content check found — all clean
The six consumed fragments correspond exactly to the six issue references in the new CHANGELOG lines. No historical section altered.
Why a comment and not
REQUEST_CHANGES🔴 A live
REQUEST_CHANGESon this PR would DEADLOCK the thing that fixes it.internal/prep/pr.go:80readsliveChangeRequestReviewersand skips regeneration while a blocker stands, announcing a deadlock instead (#1183). The base moved; the bot's own response to that is to regenerate and consume1287.fixed.md. Rejecting would freeze the branch at exactly the state I am objecting to.✅ So: let it regenerate, then I stamp the new head. Two review-request rows stand (
6568,6579) and neither is a blocker, so nothing is holding it today.📌 If you would rather ship now, that is a legitimate call and not a defect —
#1287/#1289's note simply appears underv0.62.0. Say so and I will stamp this head as-is. The one option I would avoid is merging without deciding, because the deferral is then invisible: nobody readingv0.61.0's notes learns that the status-context fix is already in their binary.APPROVE —
09628a0b666b62d7543852175daf840f7353f954Re-reviewed after the bot regenerated. My earlier comment held this at
10117bf6because#1293merged after that branch was built, sochangelog.d/1287.fixed.mdexisted onmainbut not on the cut — meaningv0.61.0would have shipped that fix with its release note deferred tov0.62.0.✅ The regeneration resolved it. Measured on this head:
Both trackers named on one line, which is right — they were one PR.
Content check
⚠️ This stamp asserts the CONTENT is correct at this exact tree. It does NOT assert CI is green — required contexts were still re-running when I filed, and
enable_status_check=truewith 27 required contexts means the gate is the enforcement there. Read the required set at merge time.📌 And the reason the earlier hold was a comment rather than a
REQUEST_CHANGES:internal/prep/pr.go:80skips regeneration while a live blocker stands (#1183). A rejection would have frozen the branch at the state I was objecting to — on a bot-regenerated branch the reviewer's strongest instrument disables the mechanism that fixes the finding.Correction to my own review
6600— one line, and the stamp stands🔴 I wrote "adopter docs + examples: zero
v0.60.0refs remaining". That is false. There is one, and my own command printed1in the same output I read0out of.✅ The stamp stands, because the reference is CORRECT TO KEEP and the cut is right to leave it alone. It is the worked example in
#1248's section demonstrating newest-by-date vs highest-by-version.doc_version_refs.gorewritesReplace `vX.Y.Z`and@vX.Y.Z; this is neither, so it is out of the cut's scope by design rather than by omission.⚠️ But it will age, and this cut is the first event that ages it. After
v0.61.0tags,--sort=-creatordate | head -1returnsv0.61.0, and the line will name a tag that is no longer the newest. The distinction it teaches still holds — newest is still a real release, highest-sorting is stillv1.0.0-alpha.0— so the pedagogy survives and only the literal drifts.📌 That is precisely the case
#1288's fourth disposition describes, and @herald already applied it one line above:The sentence states a condition and cannot decay; the code block beside it is an illustration whose value can. ✅ The cheap follow-up, if anyone wants it, is an ILLUSTRATIVE marker on that block (
#968's pattern) so the next reader knows the number is a shape rather than a value to track. Not this PR's job.🔑 On the slip itself: I ran the check, printed
1, and wrote0— the number was on my screen. The failure was not the instrument; it was reading a count I had already decided the answer to, in the same command as the submit. Verification and action in one command with no branch between them is not verification — which is a rule I have written down before and walked past here.Reviewed exact head
09628a0b66. This is one prepare commit on base4379af9250, VERSION 0.61.0. I independently verified the 9 canonical reusable marker files and all 9 generated .gitea twins carry v0.61.0, with no stale marker values; gitea-twin --check reports 11/11 pairs clean. The generated CHANGELOG, README/docs/examples pins, and fragment consumption are coherent, and diff-check/fragment-check pass. Terminal required CI is green 28/28.