[codex] Use only hermetic Swift toolchains#1816
Draft
dzbarsky wants to merge 1 commit into
Draft
Conversation
Member
|
I think we should move to hermetic toolchains for windows / linux (and maybe provide toolchain entrypoints for the non-hermetic ones?) but for macOS you're not "allowed" to ship app store apps with the swift.org toolchains, so we have to keep using xcode for that. i do also like the idea of dropping the custom toolchain support and instead use macOS hermetic ones for local testing of new toolchains, but that wouldn't support custom build toolchains either so we'd have to still make it work with that |
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.
Summary
swift_autoconfiguration,@rules_swift_local_config, hostswiftclookup, and the Xcode toolchain lookup fallbackswift.toolchainand update repository setup, release notes, and CI configurationMotivation
Host Swift discovery made compiler selection depend on
PATH, installed Xcode toolchains, and repository evaluation environment. The registered Swift compiler should instead be an explicit, versioned Bazel input.User impact
Root modules must declare the
swiftextension, select their build-host platforms, and register@swift_toolchain//:all. Apple builds still require Xcode for SDKs and linking, but Swift compiler actions use the downloaded hermetic toolchain.Validation
buildifierandclang-formatbazel build //examples/apple/objc_interop:objc_interop //test/fixtures/synthesize_interface:synthesized_interfaceexternal/+swift+swift_toolchain_xcode/usr/bin/swiftcThe broader
//test:precompiled_modulessuite is blocked locally because the Xcode 15.4-generated@system_sdkrepository does not containTesting; the directly affected precompiled-module test passes.