Release checklist
Release checklist
Section titled “Release checklist”Tagged releases are built by .github/workflows/release.yml for Linux, macOS
Intel, macOS Apple Silicon, and Windows.
Build profile
Section titled “Build profile”The root Cargo.toml explicitly configures [profile.release] with size-focused
optimization, LTO, one codegen unit, symbol stripping, and panic = "abort".
Do not rely on implicit Cargo defaults for release artifacts.
Artifact signing
Section titled “Artifact signing”Release archives are signed in the publish job with Cosign keyless blob signing.
Each archive should have a sibling *.bundle.sigstore.json bundle uploaded to
the GitHub release. The bundle contains the signature, certificate, and
transparency-log proof needed for verification.
Verification example:
cosign verify-blob \ --bundle asterel-x86_64-unknown-linux-gnu.tar.gz.bundle.sigstore.json \ asterel-x86_64-unknown-linux-gnu.tar.gzBefore tagging
Section titled “Before tagging”Use scripts/release/human_like_release_gate.sh as the source of truth for a
release-quality local gate. It currently runs:
cargo fmt -- --checkcargo clippy -- -D warningscargo check-allcargo testcargo fuzz-smokecargo audit- deterministic
eval baselinepre/post evidence comparison - bad-turn
eval replayevidence checks
Also run the docs build if documentation changed and confirm CHANGELOG.md has
release notes for the tag.