This document describes how to cut and publish a git-issue release.
git-issue follows Semantic Versioning:
MAJORfor backwards-incompatible changesMINORfor new functionality that is backwards compatiblePATCHfor backwards-compatible bug fixes
Release tags use the format vMAJOR.MINOR.PATCH (for example v1.2.0).
- Ensure
mainis green and contains the commits you want to release. - Update any docs if needed (README, CHANGELOG, issue templates, etc.).
- Run the full test and lint suite:
make fmt make lint make test-coverage
- Verify binaries build cleanly (with version + ldflags):
make clean make build make build-all
- Manually smoke-test binaries on supported platforms if possible.
- Update
.issues/records if the release closes outstanding items.
- Decide the new version number (e.g.,
v1.0.0). - Tag the commit and push the tag:
git tag -a v1.0.0 -m "Release v1.0.0" git push origin v1.0.0 - In GitHub, create a new release from the tag:
- Title:
v1.0.0 - Use the tag description as release notes (include highlights, contributors, breaking changes).
- Title:
- Upload the cross-compiled binaries produced by
make build-all:gi-darwin-arm64gi-darwin-amd64gi-linux-amd64
- (Optional) Attach SHA256 checksums for each binary.
For each platform:
chmod +x gi-<os>-<arch>
./gi-<os>-<arch> --version
./gi-<os>-<arch> --helpPerform a quick workflow smoke-test:
gi initgi create "Smoke test issue"gi listgi close 001
- Announce the release (internal Slack, email, etc.).
- Update downstream consumers (bots, scripts) if new features require it.
- Open follow-up issues for anything deferred.