Repository navigation
feat(release): add release management workflows - #454
Merged
Merged
Conversation
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Collaborator
✅ Heimdall Review Status
|
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Collaborator
Author
Review round 1Reviewers: anthropic/claude-opus-5-5, cbhq-openai/gpt-6.1-sol (parallel)
🤖 Reply generated with Toshi |
jackchuma
marked this pull request as ready for review
October 16, 2026 01:38
Contributor
|
Looks Good to Thanh's Toshi |
leopoldjoy
reviewed
Oct 16, 2026
| name: Release Branch CI | ||
|
|
||
| on: | ||
| pull_request: |
Contributor
There was a problem hiding this comment.
[P2] Please add types: [opened, synchronize, reopened, edited]: retargeting a PR from an unfinalised release branch to a finalised one otherwise leaves the previous passing check on the unchanged head SHA without rerunning this guard.
Collaborator
Author
There was a problem hiding this comment.
Fixed in fbaa6a5. Release Branch CI now runs on types: [opened, synchronize, reopened, edited], so retargeting a PR to a finalized release branch reruns the Finalized Release check. docs/RELEASE.md lists the events.
🤖 Reply generated with Toshi
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
leopoldjoy
approved these changes
Oct 16, 2026
Contributor
|
Looks Good to Thanh's Toshi |
xenoliss
approved these changes
Oct 16, 2026
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.
What changed? Why?
Releases in this repo are cut by hand: someone creates a
releases/vX.Y.Zbranch, pushes RC tags (vX.Y.Z.rcN), and drafts the GitHub release. This adds the same release automation base/base uses, adapted to a repo with no version file and no build artifacts.minor/patch/major): computes the next version from the latest finalvX.Y.Ztag, createsreleases/vX.Y.Zfrommain(or from the latestreleases/vX.Y.*branch for patches), and pushes the branch together with its first RC tag in one atomic push, so a concurrent Create RC run cannot allocate the same RC number.releases/v*): tags each pushed commit with the nextvX.Y.Z-rc.N. Serialized per branch withqueue: max, as in base/base. Reruns reuse a tag already at that commit.X.Y.Z): creates or reuses the finalvX.Y.Ztag at the release branch head, refuses to move an existing tag, and creates a draft GitHub release with generated notes.main, so a PR that backports the automation to an older release branch does not fail on a missing script. The check only runs on PR events; after publishing, maintainers rerun checks on open PRs or lock the branch (documented).scripts/release/test-release.sh(offline, throwaway git repo) and shellcheck when release scripts or workflows change. Alsojust test-release.docs/RELEASE.mddescribes the process; README links it.Differences from base/base:
0.0.0gate. The version comes from the release branch name.GITHUB_TOKENdo not trigger other workflows, and there is no version-sync merge to trigger it.Notes to reviewers
vX.Y.Z-rc.Nformat. Numbering counts legacyvX.Y.Z.rcNtags, so afterv8.4.0.rc2the next RC isv8.4.0-rc.3. Only new-format tags are reused on retry.releases/v8.4.0keep the manual process unless these files are backported.scripts/releasefrommainbefore checking out the patch base, because older release branches do not contain the scripts.actionlint1.7.12 rejectsconcurrency.queueas an unknown key. GitHub supports it and base/base uses it. actionlint does not run in this repo's CI.How has it been tested?
just test-release: passes. Covers RC numbering across both tag formats, exact-version filtering, numeric ordering (rc.10 after rc.9), retry reuse, version bumps and ordering (v8.10.0 > v8.9.0), the no-final-tag error, final-tag reuse, and refusing to move a final tag.shellcheck scripts/release/*.sh: clean.actionlint .github/workflows/*.yml: only thequeuekey finding above.Generated with Toshi