Add changelog and release command

- Add CHANGELOG.md with version history
- Add changelog page to docs site
- Add /release command for preparing releases
This commit is contained in:
Lawrence Chen 2026-01-29 17:58:10 -08:00
parent 7c8ac4c887
commit ad86227571
5 changed files with 301 additions and 2 deletions

View file

@ -0,0 +1,61 @@
# Release
Prepare a new release for cmuxterm. This command updates the changelog, bumps the version, and creates a release tag.
## Steps
1. **Determine the new version number**
- 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**
- 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**
- 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**
- 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**
- Stage: `CHANGELOG.md`, `docs-site/content/docs/changelog.mdx`, `GhosttyTabs.xcodeproj/project.pbxproj`
- Commit message: `Bump version to X.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. **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
## Changelog Guidelines
- Use present tense ("Add feature" not "Added feature")
- Group by category: Added, Changed, Fixed, Removed
- Be concise but descriptive
- Focus on user impact, not implementation details
- Link to issues/PRs if relevant
## Example Changelog Entry
```markdown
## [1.13.0] - 2025-01-30
### Added
- New keyboard shortcut for quick tab switching
### Fixed
- Memory leak when closing split panes
- Notification badges not clearing properly
### Changed
- Improved terminal rendering performance
```

112
CHANGELOG.md Normal file
View file

@ -0,0 +1,112 @@
# Changelog
All notable changes to cmuxterm are documented here.
## [1.12.0] - 2025-01-29
### Fixed
- Handle display scale changes when moving between monitors
### Changed
- Fix SwiftPM cache handling for release builds
## [1.11.0] - 2025-01-29
### Added
- Notifications documentation for AI agent integrations
### Changed
- App and tooling updates
## [1.10.0] - 2025-01-29
### Added
- Sentry SDK for crash reporting
- Documentation site with Fumadocs
- Homebrew installation support (`brew install --cask cmuxterm`)
- Auto-update Homebrew cask on release
### Fixed
- High CPU usage from notification system
- Release workflow SwiftPM cache issues
### Changed
- New tabs now insert after current tab and inherit working directory
## [1.9.0] - 2025-01-29
### Changed
- Normalized window controls appearance
- Added confirmation panel when closing windows with active processes
## [1.8.0] - 2025-01-29
### Fixed
- Socket key input handling
- OSC 777 notification sequence support
### Changed
- Customized About window
- Restricted titlebar accessories for cleaner appearance
## [1.7.0] - 2025-01-29
### Fixed
- Environment variable and terminfo packaging issues
- XDG defaults handling
## [1.6.0] - 2025-01-28
### Fixed
- Terminfo packaging for proper terminal compatibility
## [1.5.0] - 2025-01-28
### Added
- Sparkle updater cache handling
- Ghostty fork documentation
## [1.4.0] - 2025-01-28
### Added
- cmuxterm CLI with socket control modes
- NSPopover-based notifications
### Fixed
- Notarization and codesigning for embedded CLI
- Release workflow reliability
### Changed
- Refined titlebar controls and variants
- Clear notifications on window close
## [1.3.0] - 2025-01-28
### Added
- Debug scrollback tab with smooth scroll wheel
- Mock update feed UI tests
- Dev build branding and reload scripts
### Fixed
- Notification focus handling and indicators
- Tab focus for key input
- Update UI error details and pill visibility
### Changed
- Renamed app to cmuxterm
- Improved CI UI test stability
## [1.1.0] - 2025-01-28
### Added
- Sparkle auto-update flow
- Titlebar update UI indicator
## [1.0.x] - 2025-01-28
Initial releases with core terminal functionality:
- GPU-accelerated terminal rendering via Ghostty
- Tab management with native macOS UI
- Split pane support
- Keyboard shortcuts
- Socket API for automation

View file

@ -88,7 +88,14 @@ git commit -m "Update ghostty submodule"
## Release
Tagging a version triggers the GitHub Actions release workflow and uploads the notarized zip.
Use the `/release` command to prepare a new release. This will:
1. Determine the new version (bumps minor by default)
2. Gather commits since the last tag and update the changelog
3. Update `CHANGELOG.md` and `docs-site/content/docs/changelog.mdx`
4. Bump `MARKETING_VERSION` in the Xcode project
5. Commit, tag, and push
Manual release steps (if not using the command):
```bash
git tag vX.Y.Z
@ -102,3 +109,4 @@ Notes:
- The release asset is `cmuxterm-macos.dmg` attached to the tag.
- README download button points to `releases/latest/download/cmuxterm-macos.dmg`.
- Versioning: bump the minor version for updates unless explicitly asked otherwise.
- Changelog: always update both `CHANGELOG.md` and the docs-site version.

View file

@ -0,0 +1,117 @@
---
title: Changelog
description: Release notes and version history for cmuxterm
---
# Changelog
All notable changes to cmuxterm are documented here.
## [1.12.0] - 2025-01-29
### Fixed
- Handle display scale changes when moving between monitors
### Changed
- Fix SwiftPM cache handling for release builds
## [1.11.0] - 2025-01-29
### Added
- Notifications documentation for AI agent integrations
### Changed
- App and tooling updates
## [1.10.0] - 2025-01-29
### Added
- Sentry SDK for crash reporting
- Documentation site with Fumadocs
- Homebrew installation support (`brew install --cask cmuxterm`)
- Auto-update Homebrew cask on release
### Fixed
- High CPU usage from notification system
- Release workflow SwiftPM cache issues
### Changed
- New tabs now insert after current tab and inherit working directory
## [1.9.0] - 2025-01-29
### Changed
- Normalized window controls appearance
- Added confirmation panel when closing windows with active processes
## [1.8.0] - 2025-01-29
### Fixed
- Socket key input handling
- OSC 777 notification sequence support
### Changed
- Customized About window
- Restricted titlebar accessories for cleaner appearance
## [1.7.0] - 2025-01-29
### Fixed
- Environment variable and terminfo packaging issues
- XDG defaults handling
## [1.6.0] - 2025-01-28
### Fixed
- Terminfo packaging for proper terminal compatibility
## [1.5.0] - 2025-01-28
### Added
- Sparkle updater cache handling
- Ghostty fork documentation
## [1.4.0] - 2025-01-28
### Added
- cmuxterm CLI with socket control modes
- NSPopover-based notifications
### Fixed
- Notarization and codesigning for embedded CLI
- Release workflow reliability
### Changed
- Refined titlebar controls and variants
- Clear notifications on window close
## [1.3.0] - 2025-01-28
### Added
- Debug scrollback tab with smooth scroll wheel
- Mock update feed UI tests
- Dev build branding and reload scripts
### Fixed
- Notification focus handling and indicators
- Tab focus for key input
- Update UI error details and pill visibility
### Changed
- Renamed app to cmuxterm
- Improved CI UI test stability
## [1.1.0] - 2025-01-28
### Added
- Sparkle auto-update flow
- Titlebar update UI indicator
## [1.0.x] - 2025-01-28
Initial releases with core terminal functionality:
- GPU-accelerated terminal rendering via Ghostty
- Tab management with native macOS UI
- Split pane support
- Keyboard shortcuts
- Socket API for automation

View file

@ -16,6 +16,7 @@
"claude-code-hooks",
"---Reference---",
"osc-sequences",
"environment-variables"
"environment-variables",
"changelog"
]
}