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] Support policy changes; Xcode 14 and 16 will be removed from macOS 14 on November 4 #10703

Open
6 of 14 tasks
erik-bershel opened this issue Sep 30, 2024 · 22 comments
Open
6 of 14 tasks

Comments

@erik-bershel
Copy link
Contributor

erik-bershel commented Sep 30, 2024

Breaking changes

Current support policy:

- all OS compatible versions side-by-side
- for beta, GM versions - latest beta only
- old patch versions are deprecated in 3 months

New support policy:

- only one major version of Xcode will be supported per macOS version
- all minor versions of the supported major version will be available
- beta and RC versions will be provided "as-is" in the latest available macOS image only no matter of beta/GA status of the image
- when a new patch version is released, the previous patch version will be replaced
  • What does it means in general terms? Starting from the specified date, all minor versions of Xcode 14 and Xcode 16 will be removed from the macOS-14 image.
  • What about other images? These changes will not affect macOS-12 and macOS-13 images. The changes will affect macOS-14 and all subsequent images. As a result, macOS-14-based images will contain only Xcode 15.x versions, macOS-15 images will contain only Xcode 16.x versions, and so on.
  • What happens when a new major Xcode beta is released and there is no next revision of the macOS image? Such a beta will be shipped as part of the latest macOS image that supports this Xcode, until the next base macOS image is released, for example: Xcode 16 was shipped as part of macOS-14 until we released macOS-15.

Target date

November 4, 2024

The motivation for the changes

Recently, mainly due to the introduction of the new visionOS platform, macOS-based images have grown to such sizes that they are becoming more difficult to maintain, and users are experiencing difficulties with available disk space, which is critical for completing builds. Parent issue:

Possible impact

Workflows based on macOS-14 will stop running if they depend on Xcode 14 and/or Xcode 16

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
  • macOS 15
  • macOS 15 Arm64
  • Windows Server 2019
  • Windows Server 2022

Mitigation ways

Users whose workflows depend on Xcode 14 and/or Xcode 16 will be forced to use the macOS-13 image for Xcode-14 and the macOS-15 image for Xcode-16, respectively. Be aware that macos-13 YAML label refer to Intel-based image.

@Cheesebaron
Copy link

This is a bit messed up since macos-15 is not available in Azure DevOps Pipelines. Will they be available in time for this change?

vszakats added a commit to vszakats/curl that referenced this issue Oct 1, 2024
vszakats added a commit to curl/curl that referenced this issue Oct 1, 2024
- Days of `macos-12` are numbered:
  actions/runner-images#10721
  Drop 5 affected jobs, replaced by `macos-15` ones added earlier today.

- Drop Xcode 14 and 16 from `macos-14` jobs.
  Following up upstream announcement:
  actions/runner-images#10703
  (No active jobs are affected by this.)

Follow-up to 4b4ff44 #15108
Closes #15113
@LotskiAndrej
Copy link

This is a bit messed up since macos-15 is not available in Azure DevOps Pipelines. Will they be available in time for this change?

Can we get a response on this?

@erik-bershel
Copy link
Contributor Author

Hey @Cheesebaron and @LotskiAndrej!

We are working on adding macOS-15 to ADO, but no ETA or promises are available now. I'll publish info in #10686 once available.

@mjosipovic-tgr
Copy link

Is there any way to use Xcode 16 currently using macOS-14 ? I run task for checking Xcode version on ADO and got this, but it says it cannot locate xcode 16
Xcode.app
Xcode_14.3.1.app
Xcode_14.3.app
Xcode_15.0.1.app
Xcode_15.0.app
Xcode_15.1.0.app
Xcode_15.1.app
Xcode_15.2.0.app
Xcode_15.2.app
Xcode_15.3.0.app
Xcode_15.3.app
Xcode_15.4.0.app
Xcode_15.4.app
Xcode_16.0.0.app
Xcode_16.0.app
Xcode_16.1.0.app
Xcode_16.1.app
Xcode_16.1_beta_2.app
Xcode_16.app

@erik-bershel
Copy link
Contributor Author

Is there any way to use Xcode 16 currently using macOS-14 ?

Yes, we have not removed Xcode 16 from macOS-14. It will be done on October 28.

I run task for checking Xcode version on ADO and got this, but it says it cannot locate xcode 16

Recommended task: https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/xcode?view=azure-devops

@mjosipovic-tgr
Copy link

mjosipovic-tgr commented Oct 4, 2024

Thanks for the response, but since I'm using MAUI, I cannot add xcWorkspacePath, and ADO crashes if I don't enter anything.
I tried like this also

- task: Bash@3
  displayName: 'Set Xcode Version to 16'
  inputs:
    targetType: 'inline'
    script: |
      sudo xcode-select -s /Applications/Xcode_16.0.app/Contents/Developer

But it cannot locate the file

@randyburden
Copy link

@mjosipovic-tgr, I am currently using the same command line command you are using with macOS-14 to set it to use Xcode 16 and it works fine.

sudo xcode-select -s /Applications/Xcode_16.app/Contents/Developer

I'm using the classic pipeline editor:

image

@mjosipovic-tgr
Copy link

I tried it few times, changed the order of the tasks in yaml, and managed to get it to work, tnx for the responses.

tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 9, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
tgoyne added a commit to realm/realm-swift that referenced this issue Oct 10, 2024
Xcode 16 will be removed from macos-14 to cut down on the image size:
actions/runner-images#10703
messmerd added a commit to messmerd/lmms that referenced this issue Nov 5, 2024
tcbrindle added a commit to tcbrindle/flux that referenced this issue Nov 5, 2024
The version of AppleClang shipping with XCode 16 now has complete enough C++20 support to compile Flux, so we should start testing with it regularly.

Unfortunately Github are enacting a policy of only providing a single XCode major version with each MacOS image (actions/runner-images#10703), so if we want to test with e.g. XCode 17+ in future we'll have to run them on different images. But that's tomorrow's problem...
tcbrindle added a commit to tcbrindle/flux that referenced this issue Nov 5, 2024
The version of AppleClang shipping with XCode 16 now has complete enough C++20 support to compile Flux, so we should start testing with it regularly.

Unfortunately Github are enacting a policy of only providing a single XCode major version with each MacOS image (actions/runner-images#10703), so if we want to test with e.g. XCode 17+ in future we'll have to run them on different images. But that's tomorrow's problem...
@thisisthekap
Copy link

@mjosipovic-tgr Were you able to solve your issue? I am asking because I am facing the same issue currently.

@bengavin
Copy link

bengavin commented Nov 5, 2024

@mjosipovic-tgr Were you able to solve your issue? I am asking because I am facing the same issue currently.

We just do our Android builds on macos-14, which continues to work fine :)

@thisisthekap
Copy link

@bengavin I get your point, but I prefer to have all systems (including dev machines) on the same os.

messmerd added a commit to LMMS/lmms that referenced this issue Nov 6, 2024
* Use macOS 13

See: actions/runner-images#10721

* Upgrade to XCode 15.2

XCode 15.2 is the default on macOS 13

* Fix unqualified call to std::move warning

* Fix sprintf deprecated warnings

* Upgrade macOS 14 ARM64 builds to XCode 15.4

See: actions/runner-images#10703

* Fix unused lambda capture warnings in Fader.cpp

* Fix unused variable warnings

* Fix formatting warning

Cannot format `const void*` as a string

* Force lambda conversion to function pointer
lawrence-forooghian added a commit to ably-labs/ably-chat-swift that referenced this issue Nov 7, 2024
A recent GitHub policy change [1] means that Xcode 16 is now only
available on macOS 15 runners. (macos-latest still points to macOS 14,
hence needing to now be explicit about OS verison.)

[1] actions/runner-images#10703
lawrence-forooghian added a commit to ably-labs/ably-chat-swift that referenced this issue Nov 7, 2024
A recent GitHub policy change [1] means that Xcode 16 is now only
available on macOS 15 runners. (macos-latest still points to macOS 14,
hence needing to now be explicit about OS version.)

[1] actions/runner-images#10703
lawrence-forooghian added a commit to ably-labs/ably-chat-swift that referenced this issue Nov 7, 2024
A recent GitHub policy change [1] means that Xcode 16 is now only
available on macOS 15 runners. (macos-latest still points to macOS 14,
hence needing to now be explicit about OS version.)

I’ve had to bump the iOS and tvOS versions used for testing, to match
what’s available on these runners.

[1] actions/runner-images#10703
@zjhch123
Copy link

zjhch123 commented Nov 7, 2024

macOS-15 is available using Azure DevOps 🚀 More info: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml

Hi @erik-bershel , Is there any plan to support macOS-15-arm in ADO?

@erik-bershel
Copy link
Contributor Author

Hey @zjhch123!

Not at the moment as I know. Updates will be available here: #8971
List of available images and related updates also are available to track here.

@ADKaster
Copy link

ADKaster commented Nov 7, 2024

@erik-bershel It would be nice if in the future blog posts like this one included ALL breaking changes upcoming. https://github.blog/changelog/2024-11-05-notice-of-breaking-changes-for-github-actions/

Since this change was not in the blog post, we were blind sided by this change, as we don't check the runner-images repository regularly for CI that has continued to work for a long time.

trflynn89 added a commit to trflynn89/ladybird that referenced this issue Nov 7, 2024
For some reason, Microsoft have decided to remove Xcode 16 from macOS 14
images. We require Xcode 16 for Swift 6.

See: actions/runner-images#10703

Because macOS 15 images are still in preview, their availability is much
lower than macOS 14 images. To hopefully alleviate the amount of time we
are waiting in the runner queue, for now this only upgrades the workflow
which uses Swift.
trflynn89 added a commit to LadybirdBrowser/ladybird that referenced this issue Nov 8, 2024
For some reason, Microsoft have decided to remove Xcode 16 from macOS 14
images. We require Xcode 16 for Swift 6.

See: actions/runner-images#10703

Because macOS 15 images are still in preview, their availability is much
lower than macOS 14 images. To hopefully alleviate the amount of time we
are waiting in the runner queue, for now this only upgrades the workflow
which uses Swift.
cgrindel added a commit to bazel-contrib/rules_bazel_integration_test that referenced this issue Nov 8, 2024
Apparently, Xcode 16 was removed from `macos-14` back in October. I am
not sure why it is just failing now.

Related to actions/runner-images#10703.
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