Release checklist
Releases are fully automated by
release-plz (see Changelog
for the shipping flow, and Release process for the
cadence, versioning, and RC-to-stable policy). This checklist is the gate a
maintainer runs before merging the chore: release PR — merging that PR
tags the version and fires off the prebuilt binary builds.
Compatibility sign-off gate
Do not merge the chore: release PR until all of the following are true:
-
ci,host-matrix, andcompatibility-matrixGitHub Actions jobs are green on the PR. - Compatibility matrix still matches the BOINC branches we intend to support.
- A live
8.2.xBOINC daemon smoke has passed on at least one supported host OS against the PR's HEAD. - If BOINC-facing code changed in this release window, a live legacy
smoke (
7.16.xor7.20.x) also passed. - The smoke checklist was completed against the release candidate.
- The
CHANGELOG.mddiff in thechore: releasePR reads cleanly — every entry is a user-recognizable change, and no internal-only noise slipped in because achore:commit was mislabeled asfeat:/fix:.
Manual sign-off record
Capture the release sign-off in a comment on the chore: release PR using a
short record like this:
Compatibility sign-off:
- BOINC 8.2.x on <host OS>: PASS/FAIL
- BOINC 7.20.x or 7.16.x on <host OS>: PASS/FAIL (required for BOINC-facing changes)
- Smoke checklist: PASS/FAIL
- Compatibility CI fixtures: PASS/FAIL
Commands
Current-branch live validation:
BOINCRS_PASSWORD_FILE=/path/to/gui_rpc_auth.cfg \
cargo test --test live_local_boinc -- --ignored --nocapture
Fixture compatibility checks:
cargo test --test compatibility_matrix_tests
Full test + lint pass:
cargo fmt --check
cargo clippy -- -D warnings
cargo test --locked
cargo test --doc --locked
After you merge
You do not manually tag, publish, or upload binaries — that happens automatically:
- Merging the
chore: releasePR causes release-plz to push thevX.Y.Ztag and create the GitHub Release (notes sourced fromCHANGELOG.md). - The tag push triggers
.github/workflows/release.yml, which:- builds the Linux / macOS / Windows binaries,
- attaches them plus a
checksums.txt(SHA256) to the release, - regenerates
Formula/boincrs.rband commits it tomain(Homebrew tap), - builds the Chocolatey
.nupkg, attaches it, and — when theCHOCO_API_KEYsecret is set — pushes it to the community feed.
Confirm each of these after the workflow finishes:
- All four platform archives (linux, windows, mac arm64, mac x86_64) and
checksums.txtare attached to the release. - The
homebrewjob committed an updatedFormula/boincrs.rbonmainwith the new version and checksums. -
brew tap jakenherman/boincrs https://github.com/jakenherman/boincrs && brew install boincrsinstalls the new version andboincrs --versionreports it. - The
chocolateyjob attachedboincrs.<version>.nupkg. If publishing,choco install boincrs(or the pending community-feed approval) reflects the new version.
If an OS build fails, re-run that job; the release itself is already live and is
not affected. The homebrew and chocolatey jobs can also be re-run
independently — both are idempotent (the formula commit is skipped when
unchanged, and the .nupkg upload uses --clobber).
First release only.
Formula/boincrs.rbdoes not exist until the first tagged release creates it, and Chocolatey community-feed pushes require theCHOCO_API_KEYsecret. Seepackaging/README.mdfor local dry-runs and the one-time secret setup.