homebrew: require prior bottles for consumer dependencies#900
homebrew: require prior bottles for consumer dependencies#900brandonpayton wants to merge 1 commit into
Conversation
Force each same-tap runtime dependency through Homebrew's bottle-only path before a consumer source build. Bind the exact resolved closure, installed receipts, Formula digests, bottle identities, and bounded pour evidence into the credential-free publish handoff so later runners can reject source fallbacks or tap drift.
33462ec to
655e62f
Compare
|
Exact-head CI classification for
Base staging evidence: https://github.com/Automattic/kandelo/releases/tag/pr-885-staging The exact publication/provenance gates were rerun locally after the final hardening and pass. I am not rerunning or bypassing this required CI gate; it becomes meaningful after the #881 → #887 → #890 → #885 base stack lands and its package keys are durable (or if CI gains explicit stacked-base staging selection). No broad green claim is made. |
Purpose
Make dependency-first Homebrew publication an enforced build invariant. At the pinned Homebrew commit (
34c40c18ffa2029b611b61c73273e32c003d0842),brew install --build-bottleapplies the source-build request to the selected Formula, but dependency installers are constructed withforce_bottle: false. A missing dependency bottle can therefore fall back to a source build and make a consumer bottle appear independent of the previously published Kandelo bottle.Stack
This is one focused commit on top of #885 at exact parent
d2696657d0a75a66c1b6bacbf7e346a2769f27a2. It should merge only after the existing Homebrew publisher stack. The inherited Vitest teardown failure is already isolated by #889 and is unrelated to these package-publishing changes.Changes
--force-bottle --as-dependency --ignore-dependenciesbefore starting the consumer source build.INSTALL_RECEIPT.jsonclosure.dependency-provenance.jsonby SHA-256 and byte count.No ABI, kernel/runtime behavior, Formula, bottle, or package artifact changes are included.
Validation
./scripts/dev-shell.sh bash scripts/test-homebrew-publish-workflow.sh./scripts/dev-shell.sh bash scripts/test-homebrew-tap-native-sidecars.shruby scripts/check-homebrew-publish-workflow-trust.rbgit diff --checkactionlintis not present in the declared dev shell, so I did not use the host installation; hosted preflight remains the actionlint evidence.