Releasing¶
A release is a tag vX.Y.Z on main. The release workflow builds the
static binaries for x86_64 and aarch64, tests each on its own architecture,
checks the version string against the tag, and opens a draft release with the
binaries, SHA256SUMS and build provenance attestations.
Release builds are reproducible: the same commit built with Zig 0.17.1 gives byte-identical binaries, so anyone can check a published binary by building the tag and comparing the sha256.
Checklist¶
versioninsrc/main.zigand.versioninbuild.zig.zonname the new version.README.mdandCOMPAT.mddescribe this version; a new deliberate difference from the shell script has its row inCOMPAT.mdand its label intests/differential.sh.CI on
mainis green, both architectures.Tag and push:
git tag -a vX.Y.Z -m vX.Y.Z && git push origin vX.Y.Z.Check the draft release: two binaries,
SHA256SUMS, attestations (gh attestation verify FILE --repo stackhands/eb-keep-logs).Build the tag locally with
zig build -Drelease=true -Dcommit=<7-char sha> -Dtarget=x86_64-linux-musland compare its sha256 withSHA256SUMS.Publish the draft.
Update the EasyBuild recipe: version and the checksum of each binary from
SHA256SUMS, then test-install it.