build(release): bind reviewed source to SBOM and provenance evidence - #164
build(release): bind reviewed source to SBOM and provenance evidence#164seonghobae wants to merge 16 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Review-driven release-boundary repair on the current lineage:
This head supersedes |
Integrate #77 at 2856bab without rewriting #164 history. Compared against the shared 2f96565 base, all nine incoming paths are disjoint from the four release-evidence paths. Preserve those four child blobs byte-for-byte and inherit every other path from the current parent tree. This repairs stale ancestry while #77 is still open; it does not merge either PR, publish a release, or transfer predecessor checks. Revalidate the exact resulting head and keep #164 Draft pending protected prerequisites.
chore(restack): adopt current Rust foundation into release evidence
|
Fresh execution on unchanged exact child The parent remains exact #77 |
Purpose
Advance release/supply-chain evidence without publishing from an unready product head. This Draft is a repository-owned foundation slice: one reviewed Rust source identity produces a deterministic binary archive, source/build hashes, SPDX JSON SBOM and machine-readable manifest; only a protected-main manual-dispatch attestation job may mint provenance/SBOM attestations.
This PR remains stacked on Rust-toolchain prerequisite #77. It is not a release or promotion vehicle and does not create a tag, GitHub Release, container image, registry object, deployment or production promotion.
Retained RED → GREEN lineage
bf6ba08557b0900ef7959d8e9e2b83b0ad0f7fe9introduced the release-evidence contract before the workflow existed.5ce56d19e2c37ce1824b1d4d8657f6391387238fadded source/version binding, locked quality gates, deterministic archive construction, SPDX generation and immutable action pins.26541c9558b3c64363318e3042f787df3d019f65proved scanning only the ELF could omit the locked dependency graph;2bacb6c1b330e6c657195f2b77b32e9862479df6packages Cargo manifests/toolchain beside the binary and scans that package directory.ea56a03acf747a0fc14ee85690cfce0eeeae1a56rejected attestation authority on a PR-executable build job;c3b450ee321ff399a67d1d9d4d8d1f5ca0936b63isolates it in a protected-main dispatch-only job.3634074e2061c1f7b66a5de2fec0ce1e695a73e2rejected unnecessaryartifact-metadata: write;b040c878b9809a80f87d5bb52c3125512e4ba622removed it.33806510290exposed invalid job-levelrunner.temp; regression3a34d35de477155c4bdb2d45f7f09db830f31800and fix1d3f5a4bd618084031f3e722804b7c61303baeb5move runner-only paths into step/runtime scope.Current stack and standards state — refreshed 2026-09-11 KST
Protected/default main is exact
f8260f1e03836039ff9463dd99fa982e4e270c4b. Parent #77 adopted that protected auth/security baseline through ordinary reverse-direction restack #307 and is exact1349b75b6e1441e531ebb443b32546ff707ac467.Dependency-first restack #308 adopted that exact parent into this branch by ordinary merge without force or destructive rebase. Current exact #164 head is
5f0be7710d3d36c4847e0c2f0a39de116dcf35e7on exact parent #77. The child-owned effective delta remains four release-evidence paths; protected auth and Rust-toolchain authority are inherited rather than copied.The retained doctoring records SLSA v1.2 as an Approved Specification and SPDX 3.0.1 as the stable SPDX specification while 3.1-RC1 remains a release candidate. It does not infer SLSA conformance from attestation presence alone.
Exact-current execution
All predecessor execution evidence became historical after #308. Fresh exact-current CI
34569305587is now terminal SUCCESS on unchanged5f0be7710d3d36c4847e0c2f0a39de116dcf35e7; the earlier queued snapshot is superseded.That success proves only the repository-owned release-evidence build/test path on this stacked child. It does not make the parent protected truth, mint provenance, or substitute for security/CodeQL/review/coverage/package/SBOM/provenance/governance evidence that becomes applicable at protected integration. Parent #77 itself now has CI/Fuzz/Security/Semgrep GREEN but required CodeQL RED at the central delegated settlement boundary, so this child must not outrun it.
Security and publication boundary
The PR-executable build job has only
contents: read: it may build/test/SBOM/upload evidence but cannot mint OIDC-backed attestations. The separate protected-main dispatch job must bind requested version, protected source, manifest identity and recorded hashes before attestation. PR-side attestation is intentionally inapplicable; protected-main attestation remains unexecuted until its actual dispatch gate is met.This slice does not close #84. Full release readiness still requires protected auth/egress/data/enforcement prerequisites, explicit exact-head owned-production coverage/rustdoc evidence, final container-filesystem SBOM and immutable OCI digest, signature/provenance verification before admission/promotion, deployment/attack evidence, migration compatibility, canary criteria, independent evidence retention, reproducibility comparison, and measured rollback/roll-forward. Fresh Wardnet GitHub Release inventory remains empty.
Keep Draft behind exact #77 until that prerequisite becomes protected truth or a verified complete successor carries it. Parent movement must be adopted non-destructively and invalidates child evidence. No self/model approval, routine administrator bypass, force push/destructive rebase, feature-branch publication, weakened gates, mutable foreign-owner dependency, or predecessor-evidence reuse. PR #130 remains the sole product-gap-baseline writer.