Release process¶
A release starts when a version tag reachable from main is pushed.
CHANGELOG.md has one section
per version. That section becomes the release description.
Versioning¶
The module follows semantic versioning under the
Compatibility policy. Release tags are stable versions such as
v0.1.0. The release workflow refuses any other tag form.
Steps¶
- On
dev, complete the section of the new version inCHANGELOG.mdand date it on the release day. -
Run the checks:
make lint make test make docs-build VERSION=vX.Y.Z make release-checkThe release check exports
HEADwithgit archive, then verifies, builds, vets and tests the export and imports it from a separate module. It catches files that are untracked or only present locally. WithVERSIONset it also checks that the changelog has a dated heading for the version and no Unreleased section. -
Merge
devintomain, create a signed tag and pushmainand the tag:git tag -s vX.Y.Z -m 'vX.Y.Z' git push origin main vX.Y.Z -
The release workflow checks that the tag belongs to the default branch, repeats the release check, builds source archives, an SBOM and checksums, attests their provenance and creates a draft release with the changelog section as its description. Review the draft and publish it.
Do not publish a release from the GitHub UI. Publishing creates the tag, which starts the workflow.
The workflow then refuses to rebuild a release that is already published. To recover, delete the
release and its tag with gh release delete vX.Y.Z --cleanup-tag --yes and push the tag again.
A draft that already exists for the tag is updated with the new assets and description. The
workflow can also be started by hand for an existing tag.
Release assets¶
| Asset | Content |
|---|---|
go-pki-scep-vX.Y.Z-source.zip and .tar.gz |
The complete tagged source tree |
go-pki-scep-vX.Y.Z-sbom.cdx.json |
A CycloneDX software bill of materials |
go-pki-scep-vX.Y.Z_SHA256SUMS.txt |
SHA-256 checksums of the archives and the SBOM |
go-pki-scep-vX.Y.Z.intoto.jsonl |
The signed build provenance of the assets |