No release ships without a green main and a completed checklist.
Pick the bump per versioning-policy.md by inspecting
the merged commits since the last tag. If a commit is ambiguous, treat it as
user-visible.
git log --oneline "$(git describe --tags --abbrev=0)"..HEAD
release/vX.Y.Z from main; no new features land in the
branch.## [Unreleased] to ## [vX.Y.Z] - YYYY-MM-DD in
CHANGELOG.md, grouping entries under Added / Changed / Deprecated / Removed /
Fixed / Security. Open a fresh empty ## [Unreleased] section above it.KROOT_* change is documented in this
repository, in the same release.make ci plus make vuln green on the release branch, and
the integration suite run once manually.git tag -s vX.Y.Z -m "kroot vX.Y.Z".SHA256SUMS), an SBOM (spdx-json) and the changelog excerpt.rc/alpha/beta.main; bump the development
version if the project tracks one.Steps 6–8 are automated by the release workflow; the rest are a human responsibility and are recorded in the release PR description.
| Artifact | Purpose |
|---|---|
kroot_<version>_<os>_<arch> binaries |
direct download |
SHA256SUMS |
integrity verification |
sbom.spdx.json |
software bill of materials |
CHANGELOG excerpt |
release notes body |
Builds are reproducible: fixed toolchain version, pinned dependencies, no network access at build time beyond the module proxy.
vX.Y.Z+1 that reverts the change, and mark the broken release
as such in its GitHub Release notes.security-policy.md
for coordinated disclosure and the advisory.