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 · 50 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
@yasali
Copy link

yasali commented Nov 15, 2024

Hey there! 👋
Due to a combination of factors (including some unexpected issues with dependencies on Xcode 16), we've decided to mitigate the issue by reverting Xcode 16 to macOS-14 images. We'll be working on the notification model and testing, and will be back with more details on upcoming changes and plans.

@erik-bershel I hope you don't remove it from macOS-15 since I managed to got it to work.

Which Xcode version it works for you in macOS-15?

@yasali , what fix you have given to make xcode16 work on macOS-15. Can you please help me.
We are using Xcode 16.1 with macOS-15, it works well now.

@erik-bershel
Copy link
Contributor Author

Hey there again! 👋

When we will be able to see the changes, Xcode 16 is still not available with macos-14-xlarge runner?

At the same time with the Standard Runners and Microsoft Hosted Runners. We are working on providing ETA and details.

@erik-bershel Will this happen on Azure DevOps as well? We have there the same issues like on GitHub Runners, but still don't have the Xcode 16 on mac os 14 again. Our builds are blocked right now.

Yeah, it will be there too. The deployment of changes has not yet begun due to preparatory work. But we understand how pressing this issue is and we are really making every effort to speed up the solution to the problem.

Please keep Xcode 16. Thanks to Xamarin.UITest we need to build IPA's with Xcode 16 and run the tests with Xcode 15.4

It seems we forced to keep it, yes. We will work on another strategy to reduce disk space usage after mitigating the current situation with the macos-14.

@erik-bershel
Copy link
Contributor Author

Hey @yasali and @yeftha!

I will be very grateful if you share the problems you have when migrating from macos-14 to macos-15 or simply when using the macos-15 image. This can be done either as a separate issue or here. Sooner or later the macos-15 image will be the latest and we would like to resolve all possible problems by then.

@dsmitchell
Copy link

@erik-bershel if space is an issue, might I suggest keeping only the latest Xcode 14, latest Xcode 15, and Xcodes 16.x.

It's no accident, for example, that when I create a new Xcode app and target a lower iOS version (e.g. iOS 16), by default Apple targets 16.6, not 16.0.

This gives us the most stable of each previous version, and a fallback when current versions introduce a bug.

Hope this helps

@yeftha
Copy link

yeftha commented Nov 15, 2024

Hey @yasali and @yeftha!

I will be very grateful if you share the problems you have when migrating from macos-14 to macos-15 or simply when using the macos-15 image. This can be done either as a separate issue or here. Sooner or later the macos-15 image will be the latest and we would like to resolve all possible problems by then.

Hi @erik-bershel ,

I am running the pipeline in Azure DevOps, using xcode16.1 with macOS-15, getting below error at install apple certificate task.

Error message
Error outputting keys and certificates
40AB5345F87F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:355:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()
Could not find certificate from
##[warning]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[error]Error: /usr/local/bin/openssl failed with return code: 1
Finishing: InstallAppleCertificate

can you please help me on this

@MerSpyro
Copy link

@yeftha For this you can check th solution provided by mjosipovic-tgr in
#10703 (comment)

@erik-bershel
Copy link
Contributor Author

erik-bershel commented Nov 15, 2024

Heads up! ⏰

To provide immediate mitigation, we have decided to roll back the current macos-14 images in production to the previous stable version from October 22. This should take about 24 hours, but may take up to 48 hours for some specific cases that can be worked around with a restart.

carsonRadtke added a commit to carsonRadtke/GSL that referenced this issue Nov 15, 2024
Looks like actions/runner-images#10703 took
away support for xcode 14. That is why the latest action failed. There
an active PR adding support for xcode 16 to the macos runner
(actions/runner-images#10967). This commit will
fail until that has been merged, but it is probably worth waiting for.
carsonRadtke added a commit to carsonRadtke/GSL that referenced this issue Nov 15, 2024
Looks like actions/runner-images#10703 took
away support for xcode 14. That is why the latest action failed. There
an active PR adding support for xcode 16 to the macos runner
(actions/runner-images#10967). This commit will
fail until that has been merged, but it is probably worth waiting for.
@yeftha
Copy link

yeftha commented Nov 16, 2024

@yeftha For this you can check th solution provided by mjosipovic-tgr in #10703 (comment)

@MerSpyro This fix is working fine . Thank you

@woutermeuwis
Copy link

woutermeuwis commented Nov 18, 2024

XCode 16 still does not seem available in the macOS-14 image?
When will this be available again?

ILLINK : warning MT0079: The recommended Xcode version for Microsoft.iOS 18.0.8314 is Xcode 16.0 or later. The current Xcode version (found in /Applications/Xcode_15.4.app/Contents/Developer) is 15.4. [/Users/runner/work/1/s/src/RmoniWeb.Maui/RmoniWeb.Maui.csproj::TargetFramework=net8.0-ios]

@erik-bershel
Copy link
Contributor Author

@woutermeuwis please switch to Xcode 16 before running your workflow. Issue states that the current Xcode version is set to 15.4, but it does not mean that there is no Xcode 16 at all.
Example action: https://github.com/maxim-lobanov/setup-xcode

akshayrdeodhar pushed a commit to akshayrdeodhar/llvm-project that referenced this issue Nov 18, 2024
…lvm#116216)

After a recent Github Actions runner policy change [1], the version of
Xcode included in the macos-14 image went from Xcode 16 to Xcode 15,
breaking our build bots.

This moves the bots to the macos 15 (public preview) image, which
contains Xcode 16.

Also, adjust an UNSUPPORTED annotation that was incorrectly targeting
macos 13.7 when it should have been targeting a version of AppleClang.

[1]: actions/runner-images#10703
ishwar-raut1 pushed a commit to ishwar-raut1/onnxruntime that referenced this issue Nov 19, 2024
- Work around Xcode 16 iOS test build issue: `error: Multiple commands produce '.../PlugIns'`.
- Fix link error in iOS static framework test.
- Update build.py to check for the right kind of build before running iOS tests on the simulator.
- Update Xcode 16 build images to 'macos-15' because that's the only image that will have Xcode 16 soon. See actions/runner-images#10703.
mfkrause added a commit to kuatsu/react-native-voicekit that referenced this issue Nov 20, 2024
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