luminare.infra_edge · v0.2.1
0004. Draft releases with checksums and build provenance
- Status: accepted
- Date: 2026-10-06
Context
Releases should be reproducible from a tag, verifiable by anyone, and must not change after publication. Version numbers and the changelog come from Conventional Commit titles.
Considered options
- Tags and releases by hand.
- release-please, with the release published directly and files attached afterwards.
- release-please creating a draft release with its tag, files attached, then published.
Decision
Option 3. release-please (release-type: simple, draft with force-tag-creation) keeps a
release pull request open and, when it is merged, creates the tag and a draft release. The same
workflow run tests the tag, builds a git archive source tarball, writes SHA256SUMS, creates a
SLSA build provenance attestation with actions/attest (the successor of
actions/attest-build-provenance), attaches the files and publishes the release. Everything stays
in one run because a tag created with GITHUB_TOKEN does not start other workflows.
Consequences
- Good: works with immutable releases; a published release never changes.
- Good:
sha256sum -c SHA256SUMSandgh attestation verifyprove where an archive came from. - Bad: the release pull request has to be closed and reopened once so that the required checks run on it.
docs/adr/0004-draft-releases-with-checksums-and-provenance.md on GitHub
Licensed under Apache-2.0. Source: luminare-dev/ansible-collection-infra_edge at v0.2.1.