This project uses cargo-dist to automate cross-platform builds and GitHub Releases.
-
Ensure
mainis clean and CI passes. -
Bump the version in
Cargo.toml:# Edit Cargo.toml: version = "0.2.0" -
Commit and tag:
git commit -am "chore: release v0.2.0" git tag v0.2.0 git push origin main --tags -
The
Releaseworkflow triggers automatically and:- Builds binaries for all targets (Linux x86_64/aarch64, macOS x86_64/aarch64, Windows x86_64)
- Creates shell and PowerShell installer scripts
- Creates a GitHub Release with all artifacts
| Target | OS |
|---|---|
x86_64-unknown-linux-gnu |
Linux (x86_64) |
aarch64-unknown-linux-gnu |
Linux (ARM64) |
x86_64-apple-darwin |
macOS (Intel) |
aarch64-apple-darwin |
macOS (Apple Silicon) |
x86_64-pc-windows-msvc |
Windows (x86_64) |
Use a pre-release suffix in the tag to mark it as a pre-release on GitHub:
git tag v0.2.0-rc.1
git push origin --tagsTo also publish to crates.io, add a publish-jobs entry to dist-workspace.toml:
publish-jobs = ["./publish-crates-io"]Or publish manually:
cargo publishIf you update dist-workspace.toml, regenerate the workflow:
dist generate