docs(native): host Homebrew contract + provisioning script#100
Merged
Conversation
Native jobs use the host's /opt/homebrew read-only (sandbox denies writes), so the host is the source of truth for build tooling: deps must be installed AND kept current, since jobs can't brew install/upgrade. - scripts/provision-native-macos.sh: installs the formula set native workflows need (llvm, llvm@17, autoconf, automake, libtool, pkgconf, bison, re2c, cmake, ninja) and, crucially, UPGRADES outdated ones — an outdated formula fails any job that runs `brew install <it>` because that attempts a sandbox-blocked upgrade (how a stale llvm broke a php-sdk build). --check reports without changing anything. - Rewrite arch-doc Decision 1 to match the shipped model (shared host prefix, read-only) instead of the abandoned per-job writable prefix, and explain why: the per-job empty Cellar made spc doctor think deps were missing and try to install them into the write-denied prefix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ChVRC9ZrvQarrctDwSy1S5
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.
What
Native jobs use the host's
/opt/homebrewread-only (the sandbox denies writes), so the host is the source of truth for build tooling — deps must be installed and kept current, since jobs can'tbrew install/brew upgrade.scripts/provision-native-macos.sh— installs the formula set native workflows need (llvm, llvm@17, autoconf, automake, libtool, pkgconf, bison, re2c, cmake, ninja) and, crucially, upgrades outdated ones. An outdated formula fails any job whose workflow runsbrew install <it>, because that attempts a sandbox-blocked upgrade — exactly how a stalellvmbroke a php-sdk macОS build this week.--checkreports without changing anything.spc doctorthink deps were missing and try to install them into the write-denied prefix.Context
Replaces the stale #94 (that branch predated the split PRs — its code and the arch docs are already on
mainvia #91/#95/#97/#98/#99, leaving only the provisioning script net-new). This is that script, updated with everything we learned getting php-sdk green on native, plus the doc correction. Closing #94 in favor of this.Verified
./scripts/provision-native-macos.sh --checkon the live runner reports all 10 formulae present and up-to-date.🤖 Generated with Claude Code