docs(releasing): a release-check script and a release-notes prompt - #208
Merged
Merged
Conversation
Step 6 of docs/releasing.md was a block of commands pasted into a shell. It did not compare the version it printed, exited 0 when a step failed, checked the latest release when the tag was left off, and made and deleted a tmp/ directory in the working tree. scripts/check-release.sh does the same check and fails unless it passes: it requires a vX.Y.Z tag, works in a temporary directory it always removes, verifies the archive against checksums.txt, and compares the binary's version with the tag. Step 2's cleanup is now make clean.
goreleaser publishes a list of commits as the release notes. Step 7 now carries a prompt for Claude Code that finds the latest published release and the tag before it, reads the commits and the issues they name, and writes notes.md in the structure v0.2.0's notes settled on: What's new (features, bugs fixed), backwards incompatible changes with what a user must do, and security issues fixed. It checks each claim against the release, and leaves the notes unpublished for editing.
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.
Two changes to the release runbook, both from cutting v0.2.0.
scripts/check-release.shStep 6 of
docs/releasing.mdwas a block of commands to paste into a shell. Run through its failure cases, it got several of them wrong:release not found, exited 0tmp/already in the working treescripts/check-release.sh vX.Y.Zdoes the same check and fails unless it passes. It requires avX.Y.Ztag, works in a temporary directory it always removes, verifies the archive againstchecksums.txt, and compares the binary's version with the tag. It passes-R mozilla/markfluence, so it runs from anywhere. It lives in a newscripts/directory becausebin/is gitignored andmake cleandeletes it. Tested against v0.1.0 and v0.2.0 (pass), no argument (usage, exit 2), a malformed tag (exit 2), and a missing release (exit 1).Step 2's cleanup is now
make clean.A prompt that drafts the release notes
goreleaser publishes a list of commits as the release notes. Step 7 now has a prompt for Claude Code that needs no editing: it finds the latest published release and the tag before it, reads the commits and the issues they name, and writes
notes.mdin the structure the v0.2.0 notes settled on:It checks each claim against the release (including which release first had a change), does not wrap paragraphs, ends with the compare link, and leaves the notes unpublished for editing.
CLAUDE.md gains a
scripts/bullet.