Release Process¶
This guide explains how to create a new release of RAPS.
Prerequisites¶
- ✅ All changes merged to
mainbranch - ✅ CI checks passing
- ✅ Version number decided (following Semantic Versioning)
Release Steps¶
Step 1: Create Release Branch¶
# Make sure you're on main and up to date
git checkout main
git pull origin main
# Create a release branch
git checkout -b release/v0.2.0
Step 2: Update Version¶
Update the version in Cargo.toml:
Step 3: Update CHANGELOG (if you have one)¶
Document what changed in this release. If you don't have a CHANGELOG, consider creating one.
Step 4: Commit and Push¶
Step 5: Create Pull Request¶
- Go to GitHub and create a PR from
release/v0.2.0tomain - Title:
Release v0.2.0 - Wait for CI to pass
- Merge the PR
Step 6: Create Git Tag¶
After the PR is merged:
# Pull the merged changes
git checkout main
git pull origin main
# Create and push the tag
git tag v0.2.0
git push origin v0.2.0
Step 7: GitHub Actions Will Automatically¶
- ✅ Build binaries for all platforms:
- Windows x64 (
raps-windows-x64.zip) - macOS Intel (
raps-macos-x64.tar.gz) - macOS Apple Silicon (
raps-macos-arm64.tar.gz) - Linux x64 (
raps-linux-x64.tar.gz) - Linux ARM64 (
raps-linux-arm64.tar.gz) - ✅ Generate SHA256 checksums
- ✅ Create GitHub Release with all artifacts
- ✅ Generate release notes automatically
Alternative: Manual Workflow Dispatch¶
If you prefer to trigger the release manually:
- Go to Actions → Release workflow
- Click Run workflow
- Enter version tag (e.g.,
v0.2.0) - Click Run workflow
The workflow will build and create the release.
Version Numbering¶
Follow Semantic Versioning:
- MAJOR (1.0.0): Breaking changes
- MINOR (0.2.0): New features, backward compatible
- PATCH (0.2.1): Bug fixes, backward compatible
Pre-release versions (e.g., v0.3.0-beta.1) are automatically marked as pre-releases.
Verifying the Release¶
After the release is created:
- ✅ Check GitHub Releases page: https://github.com/dmytro-yemelianov/raps/releases
- ✅ Verify all platform binaries are present
- ✅ Test downloading and running a binary
- ✅ Verify checksums match
Publishing to crates.io¶
If you want to publish to crates.io:
- Set up
CARGO_REGISTRY_TOKENsecret in GitHub repository settings - Get token from: https://crates.io/settings/tokens
- The
publish.ymlworkflow will automatically publish when a release is created
Quick Reference¶
# Full release workflow
git checkout main
git pull origin main
git checkout -b release/v0.2.0
# Edit Cargo.toml version
# ... make changes ...
git add Cargo.toml
git commit -m "chore: bump version to 0.2.0"
git push origin release/v0.2.0
# Create PR, merge it, then:
git checkout main
git pull origin main
git tag v0.2.0
git push origin v0.2.0