release: surface a forgotten version bump on the Releases page#93
Merged
Conversation
Publishing v0.3.1 without bumping the manifests failed invisibly — the guard fired in a workflow log while the Releases page showed a healthy release. draft-release.yml now syncs the draft with the manifests after every merge: an already-released manifest version puts a warning banner in the draft's notes, and a bumped version clears it and sets the draft's tag/title to the guard-passing v<version>. release.yml moves the tag guard into a preflight job (once, not per matrix target) that on failure edits the just-published release: caution note, failed title, prerelease marker.
PR #93: release: surface a forgotten version bump on the Releases page3 files, +88 / -18 Scope✅ PR scope looks good. Structural✅ No structural bloat detected. Slop✅ Slop indicators look low. Static Analysis✅ Oxlint found no issues. CorrectnessNo extraneous code patterns detected. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Publishing
v0.3.1from the Releases UI without bumping the manifests failedinvisibly:
release.yml's guard refused the tag in a workflow log, while theReleases page showed a healthy published release. From the release surface it
is not obvious that the versions were forgotten.
Approach
Make the release surface tell the truth, before and after the mistake:
draft-release.ymlsyncs the rolling draft with the manifests afterevery merge. Manifest version already released → the draft's notes carry a
warning banner ("bump every manifest before publishing this draft").
Manifest version bumped → the banner clears and the draft's tag/title
default to the guard-passing
v<version>, so the Publish button offers theright tag. The banner is marker-delimited and stripped before re-adding, so
repeated runs stay idempotent.
release.ymlmoves the tag guard from the 5-target compile matrix intoa single
preflightjob. On mismatch it edits the just-published release —caution note prepended to the notes, title marked failed, prerelease flag —
then refuses to build. The spec §3 documents both behaviors.
Verified: workflow YAML parses, all embedded scripts pass
bash -n, thebanner strip/prepend is idempotent on a sample body, and the job graph is
preflight → build → release.Scope confirmation
New abstractions (if any)
None.
New dependencies (if any)
None (
ghandjqship on runners).New tests (if any)
None automated — end-to-end confirmation comes from the next release cycle:
the draft banner appears while manifests are unbumped, and clears after the
bump lands.