This document describes the steps to cut a new release of Kilnx.
- Write access to the repository
- The
mainbranch must be green (all CI checks passing)
-
Ensure CI is green
- Open the Actions tab and verify the latest run on
mainpassed.
- Open the Actions tab and verify the latest run on
-
Update the changelog
- Open
CHANGELOG.md. - Move items from
[Unreleased]to a new section:## [X.Y.Z] - YYYY-MM-DD. - Add the new compare link at the bottom of the file.
- Open
-
Commit the changelog
git add CHANGELOG.md git commit -m "chore(release): prepare vX.Y.Z" -
Create and push the tag
git tag -a vX.Y.Z -m "Release vX.Y.Z" git push origin main git push origin vX.Y.Z -
Verify the release pipeline
- The
Releaseworkflow triggers automatically on the tag push. - It builds binaries via GoReleaser, publishes a GitHub Release, updates the Homebrew tap, and pushes the Docker image to
ghcr.io/kilnx-org/kilnx.
- The
-
Validate the artifacts
- Check the Releases page for the new version.
- Pull the Docker image:
docker pull ghcr.io/kilnx-org/kilnx:X.Y.Z - Run
kilnx versionfrom the release binary and confirm it printskilnx X.Y.Z.
Kilnx follows Semantic Versioning:
- Patch (0.0.X): backwards-compatible bug fixes and security patches
- Minor (0.X.0): new features, backwards-compatible
- Major (X.0.0): breaking language or runtime changes
If a critical bug is found in a released version:
- Create a fix branch from the release tag if
mainhas diverged with unrelated changes. - Apply the fix, open a PR, and merge.
- Cut a new patch release following the checklist above.