Release changelogs now credit contributors inline (Bun-style): - Per-entry "thanks @user!" for community code contributions - Per-entry "thanks @user for the report!" for bug reporters - "Thanks to N contributors!" summary section at bottom of each release - Core team (lawrencecchen, austinywang) excluded from per-entry callouts
3.2 KiB
3.2 KiB
| name | description |
|---|---|
| release | Prepare and ship a cmux release end-to-end: choose the next version, curate user-facing changelog entries, bump versions, open and monitor a release PR, merge, tag, and verify published artifacts. Use when asked to cut, prepare, publish, or tag a new release. |
Release
Run this workflow to prepare and publish a cmux release.
Workflow
- Determine the version:
- Read
MARKETING_VERSIONfromGhosttyTabs.xcodeproj/project.pbxproj. - Default to a minor bump unless the user explicitly requests patch/major/specific version.
- Create a release branch:
git checkout -b release/vX.Y.Z
- Gather user-facing changes and contributors since the last tag:
git describe --tags --abbrev=0git log --oneline <last-tag>..HEAD --no-merges- Keep only end-user visible changes (features, bug fixes, UX/perf behavior).
- Collect contributors: For each PR, get the author with
gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'. Also check linked issue reporters withgh issue view <N> --json author --jq '.author.login'. - Build a deduplicated list of all contributor
@handles.
- Update changelogs:
- Update
CHANGELOG.md. - Update
docs-site/content/docs/changelog.mdx. - Use categories
Added,Changed,Fixed,Removed. - Credit contributors inline (see Contributor Credits below).
- If no user-facing changes exist, confirm with the user before continuing.
- Bump app version metadata:
- Prefer
./scripts/bump-version.sh:./scripts/bump-version.sh(minor)./scripts/bump-version.sh patch|major|X.Y.Z
- Ensure both
MARKETING_VERSIONandCURRENT_PROJECT_VERSIONare updated.
- Commit and push branch:
- Stage release files (changelog + version updates).
- Commit with
Bump version to X.Y.Z. git push -u origin release/vX.Y.Z.
- Create release PR:
gh pr create --title "Release vX.Y.Z" --body "..."- Include a concise changelog summary in the PR body.
- Watch CI and resolve failures:
gh pr checks --watch- Fix failing checks, push, and wait for green.
- Merge and sync
main:
gh pr merge --squash --delete-branchgit checkout main && git pull --ff-only
- Create and push tag:
git tag vX.Y.Zgit push origin vX.Y.Z
- Verify release workflow and assets:
gh run watch --repo manaflow-ai/cmux- Confirm release exists in GitHub Releases and includes
cmux-macos.dmg.
Changelog Rules
- Include only user-visible changes.
- Exclude internal-only changes (CI, tests, docs-only edits, refactors without behavior changes).
- Write concise user-facing bullets in present tense.
Contributor Credits
Credit the people who made each release happen:
- Per-entry: Append
— thanks @user!for community code contributions. Use— thanks @user for the report!for bug reporters (when different from PR author). No callout for core team (lawrencecchen,austinywang) — core work is the baseline. - Summary: Add a
### Thanks to N contributors!section at the bottom of each release with an alphabetical list of all[@handle](https://github.com/handle)links (including core team). - GitHub Release body: Include the same "Thanks to N contributors!" section with linked handles.