Skip to content

Release stable builds from main - #12

Merged
ayebrian merged 1 commit into
mainfrom
claude/stable-release-ai-changelog-sfbkyg
Aug 13, 2026
Merged

Release stable builds from main#12
ayebrian merged 1 commit into
mainfrom
claude/stable-release-ai-changelog-sfbkyg

Conversation

@ayebrian

@ayebrian ayebrian commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Why

Nothing ever cut a stable release. release.yml fires only on a pushed v* tag, and no version tag was ever pushed — the only tag in the repo is dev. So main published rolling dev pre-releases and nothing else.

What changed

stable-release.yml — the version constant is now the trigger. On every push to main, if there is no tag for the current appVersion, 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 bumping appVersion in config.go and 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 of main), now producing the same notes. Tags created by stable-release.yml don'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.sh run against a real commit range and against an empty one; bash -n clean.
  • All four workflow files parse as YAML.

🤖 Generated with Claude Code

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
ayebrian force-pushed the claude/stable-release-ai-changelog-sfbkyg branch from 286ab68 to dedb8b3 Compare August 13, 2026 21:53
@ayebrian ayebrian changed the title Release stable builds from main, with AI-written notes Release stable builds from main Aug 13, 2026
@ayebrian
ayebrian marked this pull request as ready for review August 13, 2026 21:56
@ayebrian
ayebrian merged commit 0e4878e into main Aug 13, 2026
5 checks passed
@ayebrian
ayebrian deleted the claude/stable-release-ai-changelog-sfbkyg branch August 13, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants