PRD-25: release evidence that opens - #25
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The release page's SBOM listed nothing and the attestations lived only in GitHub's store. Now the SBOM lists the package and every locked runtime dependency (and the release fails if it does not), the three Sigstore bundles are release assets in
SHA256SUMS, and the release job verifies the attestations before it publishes.Verified locally against real data
file:on the wheel) would have shipped the same empty SBOM. syft 1.42.3, the version insideanchore/sbom-action@e22c389, scanningshim-0.3.1-py3-none-any.whlas a file: zero components. Scanning the build job's existing benchmark venv (tagged wheel--no-depsoverrequirements.lock --require-hashes): 11 library components with versions (shim, annotated-doc, click, markdown-it-py, mdurl, phonenumbers, pygments, rich, shellingham, tomli-w, typer). The step now scans that venv.KeyError: 'components'), on a wheel-file SBOM, on the venv SBOM withrichremoved ([('rich', '15.0.0')]), and on a version mismatch.tomliandcoloramaare not asserted: the lock pins them only under markers (python_version < "3.11", Windows), so they are not installed on 3.13. The assertion checks every unmarked pin.sbom-actionfile→file:,path→dir:;actions/attestoutputbundle-path,subject-pathaccepts newline lists and globs, one bundle per step in a fresh temp dir.gh attestation verifyagainst 0.3.1:--repoexits 0;--bundlewith the provenance line exits 0; the SBOM bundle needs--predicate-type https://cyclonedx.org/bom, which the record includes.SHA256SUMS, all OK.Requirements
tests/contracts/test_workflows.py::test_the_sbom_scans_the_installed_wheel_and_is_checked.shim-<v>.intoto.jsonl,shim-<v>-py3-none-any.whl.sigstore.json,shim.pyz.sigstore.json;shim.pyza subject of both attest steps):test_the_attestation_bundles_are_hashed_and_attached.shim.pyz;attestations: read):test_the_release_verifies_attestations_before_it_publishes.docs/compatibility.mdrow with the component count and both--bundlecommands; README "How this is verified" row;SECURITY.mdsentence with link.path, missing permission, missing pyz verify).Deviations
file: *.whl.buildtoattest, where the bundles exist, and covers all 14 files.releasedownloads a newattested-distartifact (an artifact name cannot be re-uploaded);publishstill usesrelease-dist.shim.pyz.sigstore.jsonis a copy of the provenance bundle (the pyz is a subject of it).This runs for real on the 0.3.2 tag.
🤖 Generated with Claude Code