| name | release |
| description | Release a new version of Chorus — bump version, update CHANGELOG, commit, tag, and create GitHub release. |
| license | AGPL-3.0 |
| metadata | {"author":"chorus","version":"0.1.0","category":"development"} |
Chorus Release Process
Step-by-step guide to cut a new release of Chorus.
Prerequisites
gh CLI is authenticated (gh auth status)
- Working tree is clean (
git status)
- You are on the
develop branch
Steps
1. Fetch remote and identify the diff since last release
git fetch --tags origin
git tag -l 'v*' --sort=-version:refname | head -5
git log --oneline v<PREV>..develop
git show --stat <commit-hash>
2. Draft CHANGELOG and get user approval
Based on the commits identified in Step 1, draft the new CHANGELOG section and present it to the user for review. Use this structure:
## [X.Y.Z] - YYYY-MM-DD
### Added
- **Feature name**: Description of what was added.
### Changed
- **Area**: Description of what changed.
### Fixed
- **Bug name**: Description of what was fixed.
### Plugin
- Plugin version changes if applicable.
---
Rules:
- Only include commits after the previous release tag
- Group by Added / Changed / Fixed / Deprecated / Removed / Plugin
- Omit empty groups
- Each entry should start with a bold label followed by a concise description
- Separate from the previous release section with
---
IMPORTANT: After drafting, show the CHANGELOG content and the proposed version number to the user. Do NOT proceed until the user explicitly approves. The user may request edits to wording, version number, or grouping.
3. Write CHANGELOG.md (on develop)
After user approval, write the approved content into CHANGELOG.md — add the new section at the top, below the # Changelog header and above the previous release section.
4. Bump version in package.json (on develop)
Follow semver:
- patch (0.1.0 → 0.1.1): bug fixes, minor additions
- minor (0.1.0 → 0.2.0): new features, non-breaking changes
- major (0.1.0 → 1.0.0): breaking changes
5. Commit to develop and open PR to main
git add CHANGELOG.md package.json
git commit -m "chore: bump version to vX.Y.Z and update CHANGELOG"
git push origin develop
gh pr create --base main --head develop \
--title "chore: release vX.Y.Z" \
--body "Release vX.Y.Z — version bump and CHANGELOG update."
Wait for CI to pass, then merge the PR:
gh pr merge <PR_NUMBER> --merge
6. Create GitHub release with tag (on main)
After the PR is merged into main:
git fetch origin main
gh release create vX.Y.Z \
--target main \
--title "vX.Y.Z" \
--notes "$(cat <<'EOF'
<paste only the new version's CHANGELOG section here, without the ## header>
EOF
)"
Important: The --notes should contain only the new version's content, not the entire CHANGELOG file.
7. Sync develop with main and verify
git checkout develop
git pull origin develop
git tag -l 'vX.Y.Z'
gh release view vX.Y.Z
Checklist