Use this checklist every time you publish a new release to the organization.
# Full CI-equivalent gate — must pass with zero warnings
prek run cargo-qa
# Supply-chain gate — advisories, licenses, bans, sources
prek run cargo-supply-chainBoth must succeed on a clean working tree before continuing.
- Move entries from
[Unreleased]to a new versioned section, e.g.## [0.2.0] --- YYYY-MM-DD. - Update the comparison URLs at the bottom of
CHANGELOG.md.
Bump version in [workspace.package] inside the root Cargo.toml. All crates
inherit this version automatically via workspace = true.
# Verify consistency
grep -r '^version' apps/*/Cargo.toml crates/*/Cargo.tomlgit add -A
git commit -m "chore: release vX.Y.Z"
git tag -s vX.Y.Z -m "Release vX.Y.Z" # signed tag (preferred)
git push origin main --follow-tagsAnnotated, signed tags (-s) are required for org-policy compliance.
Wait for all CI jobs to pass on the tagged commit: - native (check + test +
doc) - wasm (wasm32 type-check) - clippy - fmt - supply-chain
Do not publish Docker images or Pages artifacts until all jobs are green.
The pipeline builds and pushes automatically on main. Verify the image tag
exists before advertising it:
docker pull codeberg.org/YOUR_ORG/lotus-api:vX.Y.Z
docker pull ghcr.io/YOUR_ORG/lotus-api:vX.Y.Z- Create a new release on the forge, pointing at the signed tag.
- Title:
vX.Y.Z - Body: paste the relevant
CHANGELOG.mdsection. - Attach any binary artifacts if applicable.
- Update
[Unreleased]inCHANGELOG.mdto start accumulating the next cycle's entries. - Announce internally / in the project channel.
- If the release addressed security issues, make sure
SECURITY.mdadvisory notes are published.
After each release, run:
cargo update
prek run cargo-qa
prek run cargo-supply-chainReview and commit Cargo.lock with any intentional updates. Treat each
lock-file commit as a mini release validation.