Repository navigation
ci(release): promote the latest nightly with versions and notes that need no bumps - #487
Merged
Merged
Conversation
…need no bumps Fork Release now defaults to the newest published nightly when no source tag is given, and takes the stable version from the nightly's tag. Once a stable release reaches the version in styal-version.json, nightlies preview the next patch after the newest stable tag, so no version bump is needed between releases. Stable release notes list the changes since the previous stable release, using the same generator the nightly uses, now shared in release-changelog.sh.
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.
Promoting a nightly to stable needed three manual steps: typing the nightly tag, bumping
styal-version.jsonafter every release (otherwise the next promotion fails because the tag exists, and later nightlies sort below the stable they follow), and writing release notes, since the stable release body was a single "promoted from" line.Fork Releasemakessource_tagoptional. Without it, the workflow promotes the newest published nightly and posts a notice naming the tag and commit. The stable version comes from the nightly's tag, sov0.1.1-nightly.*ships as0.1.1. This follows upstream's stable promotion (001f06d543, feat(ci): ship stable releases from the latest nightly commit pingdotgg/t3code#10410 upstream), adapted to the fork's separate release workflow.styal-version.jsonnames it until a stable release reaches it; after that,resolve-nightly-release.tstakes the newest stable tag and uses its next patch. The file only changes for a minor or major bump.render_release_notesin.github/scripts/release-changelog.sh. The first stable release has no previous stable to compare against and keeps the short placeholder, to be replaced by hand after publishing..github/scriptsfrom the workflow's own commit in a sparserelease-toolscheckout. The source they release is an earlier commit (for stable, always an earlier nightly) that can predate the helpers. The nightly version step skips the stable-tag lookup on a candidate that predates it.Validation
resolve-nightly-release.test.tscovers keeping the declared version until a stable reaches it, the next patch after a released version, a deliberate minor bump winning over that patch, and rejecting a non-plain stable tag.release-changelog.test.tscoverslatest_stable_tagchoosing by version (v0.10.1overv0.9.0), ignoring nightly and-rctags, resolving the tag before a given one, and returning nothing before the first stable release.render_release_notesrun against this repository forv0.1.0-nightly.20260925.419tov0.1.0-nightly.20260926.420reproduces the published nightly 420 notes exactly.0.1.0-nightly.*with no stable tag and0.1.1-nightly.*afterv0.1.0, and skips the lookup on candidates that predate the helper.0.1.0forv0.1.0-nightly.20260926.420.vX.Y.Ztags, so the first stable release resolves no previous stable.Fork Releasewith nosource_tagpromotedv0.1.0-nightly.20260926.421tov0.1.0, built and verified every desktop and CLI artifact, loaded the release scripts from the workflow commit, and rendered the first-release placeholder notes. Tag creation and publishing are skipped in a dry run.Written by an agent (Claude Code, claude-opus-5-5).