Release stable builds from main - #12
Merged
Merged
Conversation
Nothing ever cut a stable release: release.yml only fired on a pushed v* tag, and no version tag was ever pushed, so main published rolling dev pre-releases and nothing else. Make the version constant the trigger. On every push to main, if there is no tag for the current appVersion, stable-release.yml tests the merged tree, builds every target, tags the commit and publishes. The tag is also the gate, so a version is never released twice and pushing without a bump is a no-op. The release body comes from changelog.sh — the commit log since the previous tag, one bullet per commit. release.yml keeps working for hand-pushed tags and uses the same notes; tags created here don't re-trigger it, since GitHub doesn't re-trigger on refs pushed with the default token. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JoYCPbAu5sPAMKscEFKgLd
ayebrian
force-pushed
the
claude/stable-release-ai-changelog-sfbkyg
branch
from
August 13, 2026 21:53
286ab68 to
dedb8b3
Compare
ayebrian
marked this pull request as ready for review
August 13, 2026 21:56
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.
Why
Nothing ever cut a stable release.
release.ymlfires only on a pushedv*tag, and no version tag was ever pushed — the only tag in the repo isdev. Somainpublished rolling dev pre-releases and nothing else.What changed
stable-release.yml— the version constant is now the trigger. On every push tomain, if there is no tag for the currentappVersion, it tests the merged tree, builds every target, packages the archives, tags the commit and publishes. The tag is also the gate, so a version is never released twice and pushing again without a bump is a no-op. Cutting a release is now just bumpingappVersioninconfig.goand merging.changelog.sh— fills in the release body with the commit log since the previous tag, one bullet per commit, merges left out. Runnable by hand to preview what the next release would say.release.yml— kept as the escape hatch for hand-pushed tags (releasing a commit that is not the head ofmain), now producing the same notes. Tags created bystable-release.ymldon't re-trigger it: GitHub doesn't re-trigger workflows on refs pushed with the default token, so the two never race.README.md— documents both release streams and the version-bump flow.No secrets or other setup needed.
Testing
changelog.shrun against a real commit range and against an empty one;bash -nclean.🤖 Generated with Claude Code