Create a new release with proper version tag and push to all configured remotes.
The argument should be one of:
major - Bump the major version (e.g., v1.0.9 -> v2.0.0)minor - Bump the minor version and reset patch to 0 (e.g., v1.0.9 -> v1.1.0)patch - Bump the patch version (e.g., v1.0.9 -> v1.0.10)If no argument provided, default to patch.
`
git tag --sort=-v:refname | grep '^v[0-9]' | head -1
`
If no version tags exist, start from v0.0.0.
- Parse the current version (format: vMAJOR.MINOR.PATCH)
- If major: increment MAJOR by 1, set MINOR and PATCH to 0
- If minor: increment MINOR by 1, set PATCH to 0
- If patch: increment PATCH by 1
`
go build ./...
`
If build fails, stop and report the error. Do not proceed with release.
`
go test ./...
`
If tests fail, stop and report the error. Do not proceed with release.
git status and git log --oneline $(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~10)..HEAD- First line: 72 chars max, imperative mood summary - Blank line - Bullet points describing each significant change - Footer with Claude Code attribution
`
git add -A
git commit -m "<message>"
`
`
git tag -a <version> -m "Release <version>"
`
`
git remote | while read remote; do
git push "$remote" main --tags
done
`
- The new version number - The commit hash - List of remotes pushed to - Summary of changes since last release
git tag -a) for releasesgit remote -v)