Update release skill to use PR workflow with CI monitoring

This commit is contained in:
Lawrence Chen 2026-01-29 18:52:39 -08:00
parent a4623b9336
commit f622dff0a4

View file

@ -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 <last-tag>..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