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 · 33 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
MaxRev-Dev added a commit to MaxRev-Dev/gdal.netcore that referenced this issue Nov 13, 2024
jessesquires added a commit to jessesquires/ReactiveCollectionsKit that referenced this issue Nov 13, 2024
Recent changes to GH Actions:

actions/runner-images#10703
jessesquires added a commit to jessesquires/ReactiveCollectionsKit that referenced this issue Nov 13, 2024
Recent changes to GH Actions:

actions/runner-images#10703
MaxRev-Dev added a commit to MaxRev-Dev/gdal.netcore that referenced this issue Nov 13, 2024
* Use poppler library from vcpkg

* Enable private API for poppler

* Fix macos-14 runner due to actions/runner-images#10703
@tsal
Copy link

tsal commented Nov 13, 2024

Looking at the PR's that have been mentioned in this issue and the thumbs down emoticons from people, a very large number of people don't like this change and is blocked by this change.

This change has completely disrupted our release process, and it was with zero notice. This PR doesn't satisfy any kind of "notice".

And to rub salt in that, we've been getting billed for the minimum time, every. time. we. restart.

Why? because this has been intermittently failing our builds, but today it's been near-every-time.

Since this wasn't any kind of notification, we assumed it was something wrong with our builds, then later chalked up to "that terrible github experience" - turns out we were correct, just the reasons for the terrible experience were outright choices on GH's end.

Fix this; revert it and give us time.

@charlesroddie
Copy link

It makes no sense to remove new software from a system (XCode 16) while preserving older software (XCode 15), unless there are known problems with the newer software. If you want to keep just one version, keep XCode 16.

This change forced us to migrate to macos-15, but this doesn't work because of microsoft/azure-pipelines-tasks#20628 (comment) .

brentvatne pushed a commit to expo/expo that referenced this issue Nov 13, 2024
# Why

Due to this incomprehensible decision:
actions/runner-images#10703

# How

Updated workflows from macos-14 runners to macos-15

# Test Plan

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

Co-authored-by: Tomasz Sapeta <[email protected]>
madsmtm added a commit to madsmtm/objc2 that referenced this issue Nov 14, 2024
Xcode 16 was removed from the macOS 14 runner images:
actions/runner-images#10703
saghul added a commit to saghul/jitsi-meet that referenced this issue Nov 14, 2024
We need Xcode 16 and that version is now only available on macOS 15
action runners: actions/runner-images#10703
kirillzyusko added a commit to kirillzyusko/react-native-keyboard-controller that referenced this issue Nov 14, 2024
## 📜 Description

An attempt to fix iOS 18 e2e tests. 

## 💡 Motivation and Context

First of all I ahd to run e2e tests on `macos-15` runner because of a
recent changes introduced in
actions/runner-images#10703

I did it, but then turned out, that `macos-15` doesn't have iPhone 14 by
default. I re-generated assets for iPhone 16 Pro, now e2e tests can
start successfully, but for some reasons they don't want to pass - many
of tests that rely on matching screenshots detects a difference.
Unfortunately I can not detect the diff, because we exceed 90 minutes.

Taking all information above I decided, that current changes are good
enough to be merged - later on I can restore iOS 18 e2e tests in CI, but
tight now I want to unblock the process of merging other important PRs.

Also iOS 18 tests were not very stable. When I added them I used older
macos and older iOS to generate screenshots. Now I updated to necessary
XCode version, so I should be able to have 1:1 environment, let's see!

<!-- Why is this change required? What problem does it solve? -->
<!-- If it fixes an open issue, please link to the issue here. -->

## 📢 Changelog

<!-- High level overview of important changes -->
<!-- For example: fixed status bar manipulation; added new types
declarations; -->
<!-- If your changes don't affect one of platform/language below - then
remove this platform/language -->

### E2E

- changed iPhone 14 to iPhone 16 Pro (to match previous versions);
- regenerated assets;
- lock simulator18 version;

### CI

- run iOS 18 tests on macos-15;
- exclude iOS 18 testing from CI;

## 🤔 How Has This Been Tested?

Tested on CI.

## 📝 Checklist

- [x] CI successfully passed
- [x] I added new mocks and corresponding unit-tests if library API was
changed
Calinteodor pushed a commit to jitsi/jitsi-meet that referenced this issue Nov 14, 2024
We need Xcode 16 and that version is now only available on macOS 15
action runners: actions/runner-images#10703
@ddramowicz
Copy link

Can you please clarify what the final decision is on this? It appears that this was implemented in this PR #10834 and then reverted again yesterday in this PR #10962 ...

@erik-bershel
Copy link
Contributor Author

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.

@dsmitchell
Copy link

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

ldionne added a commit to llvm/llvm-project that referenced this issue Nov 14, 2024
…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
AArnott added a commit to nerdcash/Nerdbank.Cryptocurrencies that referenced this issue Nov 15, 2024
This is necessary due to this breaking change in Azure Pipelines/GitHub's hosted agents:
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