Release Process
Use this process when cutting a new source and binary release.
Prepare the Release PR
-
Pick the next version.
Prerelease versions use SemVer suffixes such as
0.1.0-beta.3,0.1.0-alpha.12, or0.1.0-rc.1. GitHub and crates.io treat those as prereleases. Stable releases do not have a suffix, for example0.1.0. -
Update
Cargo.toml.version = "0.1.0-beta.3" -
Add a concrete section to
CHANGELOG.md.Do not leave release notes only under
[Unreleased]. The binary release workflow extracts the section that matches the tag.## [0.1.0-beta.3] - 2026-04-29 ### Highlights - Added or changed something user-visible. - Fixed something release-worthy. -
Open a PR with the version bump and changelog entry.
The release-readiness workflow checks whether release metadata will be updated on merge and verifies that
CHANGELOG.mdalready contains concrete notes for the exactCargo.tomlversion.
Merge and Verify
-
Merge the release PR to
main. -
Wait for the merge pipelines to pass:
Continuous DeploymentBenchmarks (Post-Merge)
-
Confirm the release tag exists.
git fetch --tags origin git rev-parse v0.1.0-beta.3
Publish or Rerun Binaries
Use the Release workflow when binaries need to be built or repaired.
-
Open GitHub Actions.
-
Run the
Releaseworkflow manually. -
Enter the exact tag, including the leading
v.v0.1.0-beta.3 -
Wait for all release jobs to pass.
Expected platform archives:
direct_play_nice-aarch64-apple-darwin.tar.xzdirect_play_nice-x86_64-apple-darwin.tar.xzdirect_play_nice-x86_64-unknown-linux-gnu.tar.xzdirect_play_nice-x86_64-pc-windows-msvc.zip
The workflow also publishes checksums, installers,
dist-manifest.json, and the source archive.
Verify the Published Release
Check the GitHub release:
gh release view v0.1.0-beta.3 --json tagName,isDraft,isPrerelease,publishedAt,assets
Verify:
isDraftisfalse.isPrereleasematches the version suffix.- The release body contains the matching
CHANGELOG.mdsection. - All expected binary archives and checksum files are present.
Check crates.io:
curl -sS https://crates.io/api/v1/crates/direct_play_nice/0.1.0-beta.3
Notes
- Manual
Releaseworkflow reruns update an existing GitHub release and replace assets with the same names. - The workflow resolves the GitHub release target from the requested tag, not from the branch used to dispatch the workflow.
- Release-workflow benchmarks are skipped for manual binary reruns. The post-merge benchmark pipeline remains the release gate.