just release <version> command. It bumps the version in Cargo.toml, creates a git tag, and pushes to the remote — CI takes over from there to build all platform artifacts and attach them to the GitHub Release.
Release command
Justfile:
prepare-release.mts— A TypeScript script (run directly by Node.js via--experimental-strip-types) that updates the version inCargo.toml, commits the change, and creates an annotated git tag for the release.git push origin HEAD --follow-tags— Pushes the commit and all reachable annotated tags to the remote. The tag push triggers CI.
What CI builds
After the tag push, the CI pipeline produces release artifacts for all supported platforms:| Platform | Artifact |
|---|---|
| Windows | 64-bit MSI installer |
| macOS | Apple Silicon DMG |
| Linux | Binary artifact |
Before releasing
Always run the full verification suite before cutting a release to confirm formatting, type-checking, and tests all pass:cargo fmt --check, cargo check --all-targets, and cargo test in sequence. A clean just verify is required before invoking just release.
Version format
Use semantic versioning:MAJOR.MINOR.PATCH. The current version is tracked in the [package] section of Cargo.toml:
Cargo.toml are needed.
The release script uses
--no-sign-commit, so no GPG key is required to cut a
release. Tags are pushed by --follow-tags, which pushes all local annotated
tags that are reachable from the pushed commits — so only the new release tag
travels with the push, not any older unrelated tags.