You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The GitHub Actions themselves are commit-pinned and the resulting artifacts are hashed/attested, but attestations only prove what this run produced. A mutable toolchain can change artifact bytes or expose the release path to a newly compromised dependency without a repository diff.
Scope
Define a reviewed constraint/lock mechanism for release-only build and validation tools, including transitive dependencies where practical.
Make the package job install that exact toolchain with integrity verification.
Add an intentional update workflow and compatibility test for toolchain refreshes.
Check build reproducibility or explain every accepted nondeterministic field.
Acceptance Criteria
Release builds do not install unconstrained latest build, twine, setuptools, wheel, or their release-path dependencies.
The resolved versions and integrity data are reviewable in the repository.
Dependency updates arrive through a reviewed automated PR or documented maintenance command.
Two clean builds of the same source revision and toolchain produce identical wheel/sdist digests, or CI reports a precise reviewed exception.
SBOM/provenance metadata identifies the build toolchain as well as the source revision.
TestPyPI, PyPI, smoke, attestation, and GitHub Release jobs consume the same reviewed artifacts.
Build twice in isolated clean environments; compare artifacts and metadata; test a deliberate constraint drift and hash mismatch; run TestPyPI rehearsal.
Non-Goals
Do not freeze consumer runtime dependency windows to one version.
Do not replace PyPI trusted publishing or GitHub attestations.
Goal
Make release artifacts derive from a reviewed, reproducible build toolchain instead of mutable latest packages.
Background
The release workflow installs unversioned latest
buildandtwineimmediately before creating distributions:base-cli/.github/workflows/package.yml
Lines 95 to 107 in 8a93d22
setuptools>=68,<77build requirement at run time:base-cli/pyproject.toml
Lines 1 to 5 in 8a93d22
The GitHub Actions themselves are commit-pinned and the resulting artifacts are hashed/attested, but attestations only prove what this run produced. A mutable toolchain can change artifact bytes or expose the release path to a newly compromised dependency without a repository diff.
Scope
Acceptance Criteria
build,twine,setuptools,wheel, or their release-path dependencies.Validation
Build twice in isolated clean environments; compare artifacts and metadata; test a deliberate constraint drift and hash mismatch; run TestPyPI rehearsal.
Non-Goals
Project Fields
Ownership