Releasing
Releases are built by GitHub Actions. Nothing needs to be installed locally beyond git.
What a release produces
Section titled “What a release produces”One run of the Release workflow (.github/workflows/release.yml) on a vX.Y.Z tag:
| Asset | Built on | Notes |
|---|---|---|
pkgr-linux-x86_64 |
Linux runner | static musl, pinned nightly Rust with panic=immediate-abort |
pkgr-windows-x86_64.exe |
Windows runner | stable Rust |
pkgr-macos-arm64 |
macOS (Apple silicon) runner | stable Rust; not signed or notarised |
pkgr-macos-x86_64 |
macOS runner, cross-compiled | stable Rust; not signed or notarised |
SHA256SUMS |
checksums of every file above |
flowchart LR tag[Tag vX.Y.Z] --> check[check-version: tag equals Cargo.toml] check --> linux[linux x86_64] check --> win[windows x86_64] check --> mac[macOS arm64 + x86_64] linux & win & mac --> pub[publish: SHA256SUMS + notes from CHANGELOG.md]
Every job runs the same gates as an ordinary commit (fmt, clippy -D warnings, tests) before building. Release notes come from the matching ## X.Y.Z section of CHANGELOG.md; the run fails if that section is missing. Tags containing a - are published as pre-releases.
Cutting a release
Section titled “Cutting a release”-
Bump
versioninCargo.tomlandCargo.lock, andversionindocs/src/site.config.mjs. -
Add a
## X.Y.Z - datesection toCHANGELOG.md(and mirror it in the docs changelog), plus a page indocs/src/content/docs/releases/and a row in its index. Give the new page the lowestsidebar.order. -
Commit, then tag and push:
Terminal window git tag v0.0.2git push origin main v0.0.2 -
Watch Actions → Release.
Trying it without publishing
Section titled “Trying it without publishing”Open Actions → Release → Run workflow. A manual run builds every platform and keeps the files as artifacts; it skips the version check and the publish job, so nothing is released.
The documentation site
Section titled “The documentation site”The Docs workflow (.github/workflows/docs.yml) builds this site and deploys it to GitHub Pages whenever docs/ changes on main. Enable Pages once under Settings → Pages → Source: GitHub Actions.
Support the project: Buy Me a Coffee or GitHub Sponsors.