Say what changed in a release, instead of the same paragraph every time - #18
Merged
Merged
Conversation
Every release carried one static paragraph describing a "Complete SpinUI Windows release", which said nothing about what was in the build and was not even true of this fork, whose headline artifact is a Linux AppImage. Notes are now assembled per release: install and verification steps that name the actual version, a candidate warning when the build is one, and --generate-notes appending every pull request merged since the last release. The title becomes "Loremaster <version>" rather than a fixed marketing line. Generation is anchored at the last full release rather than the previous one. Promoting a candidate merges nothing new, so the default anchor would leave the release people actually install with an empty changelog while all of it sat in the candidate's notes. Anchoring at the last full release also gives a tester the more useful list: everything that differs from what they are running. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Every release carried one static paragraph describing a "Complete SpinUI Windows release" — which said nothing about what was in the build, and is not even true of this fork, whose headline artifact is a Linux AppImage.
What the notes become
Loremaster-0.4.0-x86_64.AppImage, not a generic instruction — plus which checksum file covers which download, and the "no self-update on Linux" fact people need.--generate-notes, appending every pull request merged since the last release.Loremaster <version>rather than a fixed marketing line.The part worth reviewing
Generation is anchored at the last full release, not the previous release:
Rendering the output before merging is what caught this. Promoting
v0.4.0-rc.1tov0.4.0merges nothing in between, so with the default anchor the generated section collapses to a bare "Full Changelog" link — the release people actually install would say nothing, while the whole changelog sat in the candidate's notes./releases/latestexcludes prereleases, so it names the last full release. Candidates get the same anchor, which is also the more useful list for a tester: everything that differs from what they are currently running, not the delta from the previous candidate.What this does not do
It generates what changed, from PR titles. It cannot write why — the narrative in
v0.4.0-rc.1's notes explaining what the journal is for and why the lockout OCR went was hand-written. The intent here is that the structure and changelog are right by default, so a hand-written summary is an addition rather than a rescue.Notes are set at creation only. Re-running a dispatch against an existing tag uploads assets and corrects the prerelease flag but leaves the body alone, so hand-edits survive a re-run.
Verification
ALL PASSunderTZ=UTC; workflow parsesAs with the rest of the publish path, this only executes on a real dispatch — it will first run for real when
v0.4.0is cut.🤖 Generated with Claude Code