Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[macOS] Xcodes visionOS platform will be removed from macOS-14 images on September 23, 2024 #10559

Open
4 of 12 tasks
erik-bershel opened this issue Sep 5, 2024 · 11 comments
Open
4 of 12 tasks

Comments

@erik-bershel
Copy link
Contributor

erik-bershel commented Sep 5, 2024

Breaking changes

visionOS platform will not ship with Xcode pre-installed in macOS-14 based images

Target date

September 23, 2024

The motivation for the changes

The macOS-14 images have grown so large that there is insufficient disk space for running tasks. To address this, we need to temporarily remove one of the components that takes up significant space on the disk. This is part of our broader effort to optimise the image for better performance and flexibility, while minimising disruptions. We will re-evaluate our software support policy in order to free up disk space and slim the images down.

Related issue: #10511

Possible impact

If your builds or tests depend on visionOS SDK or simulator runtimes they can be broken.

Platforms affected

  • Azure DevOps
  • GitHub Actions

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • Windows Server 2019
  • Windows Server 2022

Mitigation ways

  • Run next before accessing the visionOS platform tools on macOS-14 based images:
            sudo xcodebuild -runFirstLaunch
            sudo xcrun simctl list
            sudo xcodebuild -downloadPlatform visionOS
            sudo xcodebuild -runFirstLaunch
  • Use macOS-13 based images.
@StephenHodgson
Copy link

StephenHodgson commented Sep 6, 2024

To be frank, I don't think removing a platform is the right move.
There seems to be too many versions of xcode. I can't believe all 6 versions are necessary. (including 2 betas)

44G	/Applications
 11G	/Applications/Xcode_14.3.1.app
 4.9G	/Applications/Xcode_15.4.app
 4.9G	/Applications/Xcode_15.3.app
 4.8G	/Applications/Xcode_15.2.app
 4.5G	/Applications/Xcode_15.1.app
 4.5G	/Applications/Xcode_15.0.1.app
 4.3G	/Applications/Xcode_16_beta_6.app
 4.3G	/Applications/Xcode_16.1_beta.app

The whole point to use the macOS-14 image for us to do expressly make visionOS builds since no other image supports it.

@erik-bershel erik-bershel pinned this issue Sep 9, 2024
@erik-bershel erik-bershel changed the title [macOS] Xcodes' visionOS platform will be removed from macOS-14 images on September 23, 2024 [macOS] Xcodes' visionOS platform will be removed from macOS-14 images on September 23, 2024 Sep 9, 2024
@erik-bershel erik-bershel changed the title [macOS] Xcodes' visionOS platform will be removed from macOS-14 images on September 23, 2024 [macOS] Xcodes visionOS platform will be removed from macOS-14 images on September 23, 2024 Sep 9, 2024
@Alexdelgadodiaz
Copy link

To be frank, I don't think removing a platform is the right move. There seems to be too many versions of xcode. I can't believe all 5 versions are necessary. (including 3 betas) The whole point to use the macOS-14 image for us to do expressly make visionOS builds since no other image supports it.

44G	/Applications
 11G	/Applications/Xcode_14.3.1.app
 4.9G	/Applications/Xcode_15.4.app
 4.9G	/Applications/Xcode_15.3.app
 4.8G	/Applications/Xcode_15.2.app
 4.5G	/Applications/Xcode_15.1.app
 4.5G	/Applications/Xcode_15.0.1.app
 4.3G	/Applications/Xcode_16_beta_6.app
 4.3G	/Applications/Xcode_16.1_beta.app

Hi there, I agree with @StephenHodgson, maybe is better solution to remove old xcode versions rather than removing features that might be necessary.

@workingjubilee
Copy link

Many people test against the oldest supported major version of Xcode so it doesn't make sense to remove older versions of just XCode just because they're old.

...oldest supported major is the key there.
I don't think we need all of 15.0, 15.1, 15.2, 15.3, and 15.4? That seems a bit much.

@Saadnajmi
Copy link

This will break a lot of workflows we depend on. visionOS support is key for our pipeline.

@fbartho
Copy link

fbartho commented Sep 12, 2024

Architecturally, I’m a bit surprised that there’s not a combinatoric method of expressing the necessary tool-versions in our workflow files.

@StephenHodgson
Copy link

StephenHodgson commented Sep 12, 2024

Architecturally, I’m a bit surprised that there’s not a combinatoric method of expressing the necessary tool-versions in our workflow files.

Whole heartedly agree. For example setup-node/setup-dotnet:

      - uses: actions/setup-node@v4
        with:
          node-version: 18
      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.x'

I suspect that it is bc of some restriction on the way the apple sdks need to be downloaded/provisioned or the bandwidth and size of the binaries.

      - uses: actions/setup-xcode@v1
        with:
          version: 15.0.x

@erik-bershel
Copy link
Contributor Author

This will break a lot of workflows we depend on. visionOS support is key for our pipeline.

To be frank, I don't think removing a platform is the right move.
There seems to be too many versions of xcode. I can't believe all 5 versions are necessary. (including 3 betas)

I think I need to add some clarifications. 👀
Unfortunately, previous versions of Xcode are also popular - they are used both for builds and for tests. We know about this and cannot ignore the interests of other users. I should also note that installing the visionOS platform in runtime does not take much time (it took me three minutes) and can be done in literally one or three commands, unlike Xcode, which will require a lot of effort and time. At the same time, we could hypothetically remove Xcode 14, since it is available in the previous version of macOS, but this will not give a significant increase in space, and it is also worth considering that the main image of macOS-13 is provided publicly on Intel.
We are working to avoid this measure, but it is quite possible that the decision will remain in force and for some time developers of applications for visionOS will have to add a couple of small steps to their workflows.

I suspect that it is bc of some restriction on the way the apple sdks need to be downloaded/provisioned or the bandwidth and size of the binaries.

Yep. Both.

@StephenHodgson
Copy link

We are working to avoid this measure, but it is quite possible that the decision will remain in force and for some time developers of applications for visionOS will have to add a couple of small steps to their workflows.

can we get these instructions to get a head start mitigating this change?

three minutes

Adds up over a number to builds esp when the mac runners are x10 the price.

@erik-bershel
Copy link
Contributor Author

can we get these instructions to get a head start mitigating this change?

Of course. I placed an initial command to the mitigation ways section of the announcement. In some cases it will require simctl to be reloaded, so the final version should be like I did here:

      - name: Download visionOS
        run: |
            sudo xcodebuild -runFirstLaunch
            sudo xcrun simctl list
            sudo xcodebuild -downloadPlatform visionOS
            sudo xcodebuild -runFirstLaunch

@philipphofmann
Copy link

philipphofmann commented Sep 16, 2024

Unfortunately, previous versions of Xcode are also popular - they are used both for builds and for tests.

I'm sure one of the primary the reasons is that older Xcode versions are paired with older iOS versions. You have to do some hacks to run tests with the latest Xcode version on an older iOS version, such as a symlink as pointed out here: #551 (comment).

@fbartho
Copy link

fbartho commented Sep 16, 2024

Shouldn't there be a different image for older Xcode versions? Just like older macOS versions that are often needed for them?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants