This project uses cargo-dist for automated releases and git-cliff for changelog generation.
Use the just release command to create and push a release tag:
just release v0.1.0This will:
- Show a preview of unreleased changes
- Create an annotated git tag
Then push the tag to trigger the automated release:
git push origin v0.1.0The CI will automatically:
- Update Cargo.toml version (removes
vprefix from tag) - Generate complete CHANGELOG.md
- Commit these changes to main branch
- Build binaries for all platforms
- Create GitHub Release with artifacts
If you prefer to do it manually:
Update version in Cargo.toml:
[workspace.package]
version = "0.1.0" # Update thisPreview unreleased changes:
just changelog-unreleasedUpdate changelog and create release commit:
# This updates CHANGELOG.md with unreleased changes
git cliff --unreleased --tag v0.1.0 --prepend CHANGELOG.md
git add CHANGELOG.md
git commit -m "chore(release): prepare for v0.1.0"git tag -a v0.1.0 -m "Release v0.1.0"
git push origin main
git push origin v0.1.0GitHub Actions will automatically:
- Generate incremental release notes using git-cliff
- Build binaries for all supported platforms
- Create installers (shell, PowerShell, MSI)
- Generate checksums
- Create a GitHub Release with all artifacts and release notes
The full changelog is automatically updated on every push to main via CI. It contains the complete project history.
You can also generate it manually:
just changelogEach GitHub Release gets incremental release notes containing only changes since the last release. This is automatically generated during the release workflow using:
git cliff --latest --strip all- macOS: x86_64 (Intel), aarch64 (Apple Silicon)
- Linux: x86_64 (glibc), x86_64 (musl)
- Windows: x86_64
After a release is published, users can install via:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rararulab/rara/releases/latest/download/job-installer.sh | shirm https://github.com/rararulab/rara/releases/latest/download/job-installer.ps1 | iexDownload the .msi file from the releases page.
You can test the release workflow on pull requests without creating a real release:
git tag v0.1.0-test
git push origin v0.1.0-testThe workflow will run but won't publish artifacts.
just changelog # Generate full changelog
just changelog-unreleased # Preview unreleased changes
just release v0.1.0 # Prepare release (recommended)