This document describes the release process for git-flow-next.
Update version in both files (must match):
version/version.go— Core version constantcmd/version.go— Version variable for CLI
We follow Semantic Versioning:
| Change Type | Version Bump | Example |
|---|---|---|
| Breaking changes | Major | 1.0.0 → 2.0.0 |
New features (feat:) |
Minor | 1.0.0 → 1.1.0 |
Bug fixes (fix:) |
Patch | 1.0.0 → 1.0.1 |
We follow Keep a Changelog. Only user-facing changes go in CHANGELOG.md:
| Commit Type | Changelog Section | Include? |
|---|---|---|
feat: |
Added | ✅ Yes |
fix: |
Fixed | ✅ Yes |
BREAKING CHANGE |
Changed | ✅ Yes |
perf: |
Changed | ✅ Yes |
build: |
Changed | |
docs: |
— | ❌ No |
refactor: |
— | ❌ No |
test: |
— | ❌ No |
chore: |
— | ❌ No |
ci: |
— | ❌ No |
style: |
— | ❌ No |
Review commits since last release:
git log $(git describe --tags --abbrev=0)..HEAD --oneline- Any
feat:→ minor bump - Only
fix:→ patch bump - Any
BREAKING CHANGEor!suffix → major bump
Edit CHANGELOG.md:
- Move items from
[Unreleased]to new version section - Add release date
- Categorize changes: Added, Changed, Fixed, Removed, Security
Update version in both files:
# Edit version/version.go
# Edit cmd/version.goVerify:
go build -o /tmp/git-flow main.go && /tmp/git-flow versiongit add CHANGELOG.md version/version.go cmd/version.go
git commit -m "chore: Bump version to X.Y.Z"git push origin main
git tag vX.Y.Z
git push origin vX.Y.ZThe .github/workflows/release.yml workflow automatically:
- Builds binaries for all platforms (darwin, linux, windows)
- Creates GitHub release with artifacts
- Generates checksums
- Marks as prerelease if tag contains
-alpha,-beta, or-rc
After the GitHub release is published, update the Homebrew formula:
cd /path/to/homebrew-tap
./update_formula.rb
git add Formula/
git commit -m "Update git-flow-next to vX.Y.Z"
git pushRepository: https://github.com/gittower/homebrew-tap
If commands or options changed, update the documentation website:
- Review changes to
docs/*.mdfiles - Update corresponding pages in the website repo
- Rebuild and deploy
Repository: https://github.com/gittower/git-flow-next-website
For preview releases, use suffixes:
- Alpha:
v1.0.0-alpha.1 - Beta:
v1.0.0-beta.1 - Release candidate:
v1.0.0-rc.1
These are automatically marked as prereleases on GitHub.
- Reviewed commits since last release
- Determined correct version bump (major/minor/patch)
- Updated CHANGELOG.md with user-facing changes
- Updated version in
version/version.go - Updated version in
cmd/version.go - Verified build:
go build && ./git-flow version - Committed:
chore: Bump version to X.Y.Z - Pushed to main
- Created and pushed tag
- Verified GitHub release was created
- Updated Homebrew tap (
./update_formula.rb) - Updated website documentation (if commands changed)