NullClaw uses CalVer with the format YYYY.M.D (e.g., v2026.3.12).
Pushing a tag matching v* triggers the Release workflow, which builds binaries for all supported platforms and publishes a GitHub Release.
-
Checkout and update
maingit checkout main git pull origin main
-
Create a release branch
git checkout -b release/vYYYY.M.D
-
Bump the version in
build.zig.zonUpdate the
.versionfield to match today's date:- .version = "2026.3.11", + .version = "2026.3.12",
-
Commit the version bump
git add build.zig.zon git commit -m "vYYYY.M.D" -
Tag and push the branch
git tag vYYYY.M.D git push origin release/vYYYY.M.D --tags
The tag push triggers CI builds. If builds fail, fix on the branch, move the tag, and push again:
# after fixing and committing: git tag -f vYYYY.M.D git push origin release/vYYYY.M.D --tags --force -
Create a PR once builds pass
gh pr create --title "vYYYY.M.D" --body "Version bump for vYYYY.M.D release."
-
Merge the PR (or get it reviewed and merged)
- The tag is created on the release branch so CI builds run before merging to
main. This avoids having to push fixes directly tomainif builds fail. - If multiple releases happen on the same day, append a patch number (e.g.,
v2026.3.12.1), though this should be rare. - NullHub follows the same versioning and release process. Both repos should be released together with matching version numbers.