Prompt file imported from yuya373/claude-code-emacs (
.claude/commands/create-release.md). Copyright stays with the author.
Release Command
-
Fetch latest tags from remote and analyze commits since the last release:
git fetch --tagsgit log --oneline $(git describe --tags --abbrev=0)..HEADgit diff --stat $(git describe --tags --abbrev=0)..HEAD
-
Determine the appropriate version bump following semantic versioning:
- MAJOR (x.0.0): Breaking changes or major feature overhauls
- MINOR (0.x.0): New features, significant improvements, or minor breaking changes to internal APIs
- PATCH (0.0.x): Bug fixes, documentation updates, small improvements
-
Update version numbers in the project files:
- Run:
./scripts/update-version.sh X.Y.Z --auto-commit - Push the commit and tag:
git push && git push --tags - IMPORTANT: Always push before creating the release to ensure --verify-tag works
- Run:
-
Create a comprehensive release notes file that includes:
- A clear summary of what changed and why it matters
- Categorized changes (Features, Bug Fixes, Documentation, etc.)
- Any breaking changes or migration notes
- Credits to contributors if applicable
- Save the release notes to a temporary file
-
Execute the release script with the determined version and release notes:
- For draft release:
./scripts/create-release.sh <version> --notes-file <temp-file> - For immediate publish:
./scripts/create-release.sh <version> --publish --notes-file <temp-file>
- For draft release:
-
Open the created release in the browser for review:
- For draft releases:
gh release view <version> --web - This allows you to review and edit the release before publishing
- For draft releases:
