From f622dff0a425223047467f49fca22c7b26b2c572 Mon Sep 17 00:00:00 2001 From: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com> Date: Thu, 29 Jan 2026 18:52:39 -0800 Subject: [PATCH] Update release skill to use PR workflow with CI monitoring --- .claude/commands/release.md | 41 ++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/.claude/commands/release.md b/.claude/commands/release.md index caf509f3..5145bf63 100644 --- a/.claude/commands/release.md +++ b/.claude/commands/release.md @@ -1,6 +1,6 @@ # Release -Prepare a new release for cmuxterm. This command updates the changelog, bumps the version, and creates a release tag. +Prepare a new release for cmuxterm. This command updates the changelog, bumps the version, creates a PR, monitors CI, and then merges and tags. ## Steps @@ -8,33 +8,50 @@ Prepare a new release for cmuxterm. This command updates the changelog, bumps th - Get the current version from `GhosttyTabs.xcodeproj/project.pbxproj` (look for `MARKETING_VERSION`) - Bump the minor version unless the user specifies otherwise (e.g., 1.12.0 → 1.13.0) -2. **Gather changes since the last release** +2. **Create a release branch** + - Create branch: `git checkout -b release/vX.Y.Z` + +3. **Gather changes since the last release** - Find the most recent git tag: `git describe --tags --abbrev=0` - Get commits since that tag: `git log --oneline ..HEAD --no-merges` - Categorize changes into: Added, Changed, Fixed, Removed -3. **Update the changelog** +4. **Update the changelog** - Add a new section at the top of `CHANGELOG.md` with the new version and today's date - Write clear, user-facing descriptions (not raw commit messages) - Focus on what matters to users: new features, bug fixes, breaking changes - Also update `docs-site/content/docs/changelog.mdx` with the same content -4. **Bump the version in Xcode project** +5. **Bump the version in Xcode project** - Update all occurrences of `MARKETING_VERSION` in `GhosttyTabs.xcodeproj/project.pbxproj` - There are typically 4 occurrences (Debug/Release for main app and CLI) -5. **Commit the changes** +6. **Commit and push the release branch** - Stage: `CHANGELOG.md`, `docs-site/content/docs/changelog.mdx`, `GhosttyTabs.xcodeproj/project.pbxproj` - Commit message: `Bump version to X.Y.Z` + - Push: `git push -u origin release/vX.Y.Z` -6. **Create and push the tag** - - Create tag: `git tag vX.Y.Z` - - Push commits: `git push origin main` - - Push tag: `git push origin vX.Y.Z` +7. **Create a pull request** + - Create PR: `gh pr create --title "Release vX.Y.Z" --body "...changelog summary..."` + - Include the changelog entries in the PR body -7. **Monitor the release** - - Watch the workflow: `gh run watch --repo manaflow-ai/cmuxterm` - - Verify the release appears at: https://github.com/manaflow-ai/cmuxterm/releases +8. **Monitor CI** + - Watch the CI workflow: `gh pr checks --watch` + - If CI fails, fix the issues and push again + - Wait for all checks to pass before proceeding + +9. **Merge the PR** + - Merge: `gh pr merge --squash --delete-branch` + - Switch back to main: `git checkout main && git pull` + +10. **Create and push the tag** + - Create tag: `git tag vX.Y.Z` + - Push tag: `git push origin vX.Y.Z` + +11. **Monitor the release workflow** + - Watch: `gh run watch --repo manaflow-ai/cmuxterm` + - Verify the release appears at: https://github.com/manaflow-ai/cmuxterm/releases + - Check that the DMG is attached to the release ## Changelog Guidelines