MetalToolchain and auto updates...

Hello,

I can understand why you do not ship the MetalToolchain with the default Xcode installation any more due to the relatively low usage and high download size.

That said, every time Xcode runs an auto update it wipes MetalToolchain and breaks my local development build.

It would be nice if the updates would be smart enough to honor the fact that. I have already run: "xcodebuild -downloadComponent MetalToolchain" and include that in the update, rather than deleting the module.

Thanks, Chris

Answered by DTS Engineer in 888707022

Thanks for the well-formed report — you've correctly identified the design rationale (Metal Toolchain is opt-in to keep the base Xcode download small) and proposed a sensible remedy.

The behavior you're describing — needing to re-fetch the toolchain after each Xcode auto-update — is worth framing carefully before filing. Each Metal Toolchain build is versioned to match a specific Xcode build (visible in xcodebuild -showComponent MetalToolchain), so after an Xcode update the previously downloaded toolchain is genuinely stale and a re-fetch of the new matching version is required by design. That makes this a feature request rather than a bug: what you're asking for is that Xcode, on auto-update, automatically re-fetch the new matching version of any optional components you'd previously installed, so you don't have to do it manually.

Feedback Assistant is the channel that routes feature requests like this to the Xcode engineering team. A complete FB would include:

  • the Xcode version pair (before and after the auto-update where you observed the wipe)
  • the macOS version
  • the exact command you used to install the component (xcodebuild -downloadComponent MetalToolchain)
  • a brief description of what your local build needs Metal Toolchain for, so the team has the use-case context

The current workflow after an Xcode update is to re-run xcodebuild -downloadComponent MetalToolchain to fetch the matching toolchain version (verified just now: it re-downloads and installs cleanly). The feature request would automate that step.

If you post the FB number here, I can route it internally.

Thanks for the well-formed report — you've correctly identified the design rationale (Metal Toolchain is opt-in to keep the base Xcode download small) and proposed a sensible remedy.

The behavior you're describing — needing to re-fetch the toolchain after each Xcode auto-update — is worth framing carefully before filing. Each Metal Toolchain build is versioned to match a specific Xcode build (visible in xcodebuild -showComponent MetalToolchain), so after an Xcode update the previously downloaded toolchain is genuinely stale and a re-fetch of the new matching version is required by design. That makes this a feature request rather than a bug: what you're asking for is that Xcode, on auto-update, automatically re-fetch the new matching version of any optional components you'd previously installed, so you don't have to do it manually.

Feedback Assistant is the channel that routes feature requests like this to the Xcode engineering team. A complete FB would include:

  • the Xcode version pair (before and after the auto-update where you observed the wipe)
  • the macOS version
  • the exact command you used to install the component (xcodebuild -downloadComponent MetalToolchain)
  • a brief description of what your local build needs Metal Toolchain for, so the team has the use-case context

The current workflow after an Xcode update is to re-run xcodebuild -downloadComponent MetalToolchain to fetch the matching toolchain version (verified just now: it re-downloads and installs cleanly). The feature request would automate that step.

If you post the FB number here, I can route it internally.

MetalToolchain and auto updates...
 
 
Q