test: don't try to use Xcode SDK for build requirement #10048
Merged
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.
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?brew man
locally and committed any changes?Previously, running
brew test
failed if the formula had an Xcode build requirement but the user did not have Xcode installed.brew
would see the Xcode requirement and default to the Xcode SDK. However, for formula that only need Xcode to build, this check is unnecessary when simply testing the formula. I ran into this in Homebrew/homebrew-core#67043 withdeno
:I don't have code installed, so
Xcode.sdk.path
failed (Xcode.sdk
isnil
).My solution is to, when testing, pass a flag to the
macosxsdk
method to determine whether to check only runtime requirements. When this is false (the default), any Xcode requirement will require the use of the Xcode SDK. When set to true (only inbrew test
), build-only Xcode requirements will not necessarily require the Xcode SDK.I'm marking this PR as
critical
because I believe it fixes a bug. However, I'm not familiar at all with the files that I'm changing so it's entirely possible that this change will have unintended consequences. I will not merge until I have approvals from other maintainers who are more familiar with this code.