actions / runner-images

GitHub Actions runner images
MIT License
9.17k stars 2.84k forks source link

Please add Xcode 15.3 for macOS runners #9459

Closed 3a4oT closed 1 month ago

3a4oT commented 2 months ago

Tool name

Xcode 15.3

Tool license

Free

Add or update?

Desired version

Version 15.3 (15E204a)

Approximate size

No response

Brief description of tool

No response

URL for tool's homepage

No response

Provide a basic test case to validate the tool's functionality.

No response

Platforms where you need the tool

Runner images where you need the tool

Can this tool be installed during the build?

No response

Tool installation time in runtime

No response

Are you willing to submit a PR?

No response

jozefizso commented 2 months ago

The Xcode 15.3 changed the format of the Package.resolved file and it is not compatible with previous versions.

This blocks our builds.

erik-bershel commented 2 months ago

Hey @3a4oT and @jozefizso! Thank you for bringing it to our attention. We'll work on adding new Xcode 15.3 ASAP. πŸš€ πŸš€ πŸš€

Coco-Kong commented 2 months ago

Hey @3a4oT and @jozefizso! Thank you for bringing it to our attention. We'll work on adding new Xcode 15.3 ASAP. πŸš€ πŸš€ πŸš€

Hi @erik-bershel , we have strategic customer asking for Xcode 15.3 and this needs MacOS 14.4 and later. Is there any ETA for this? Thank you!

erik-bershel commented 2 months ago

Hey there! We would not like to publish any promises or assumptions. New versions of Xcode, when released, open the gates to a world of adventure and incompatibility, which makes it impossible for us to say anything with certainty. I can say that we are already working on preparing the release of this update and truly understand the community's need for it. cc @Coco-Kong

allenhumphreys commented 2 months ago

@erik-bershel Has your organization considered publishing and committing to an update policy similar to bitrise's

I realize there are a lot of complexities with updates, but if you set public targets then it might help ensure time is allocated accordingly to meet established goals. For CI/CD, this kind of policy is just as important as uptime as far as managing operations.

2sem commented 2 months ago

The Xcode 15.3 changed the format of the Package.resolved file and it is not compatible with previous versions.

This blocks our builds.

I just modified the file like this and works

  "version" : 2
}

Package.resolved file is corrupted or malformed; fix or delete the file

setoelkahfi commented 2 months ago

@erik-bershel We would like to have this as well. Any updates on the timeline?

erkanyildiz commented 2 months ago

Considering that https://github.com/actions/runner-images/pull/9505 is merged, should we expect it to be ready soon?

ivfomenko commented 1 month ago

Unfortunately, Xcode 15.3 still not available even after merge.

I can see Xcode 15.3 in toolset for mac-os14, but assume it's not the same as available Xcodes in image itself.

For now, only way to fix it - it's downgrade project & affected CI's to Xcode 15.2 and await for updates.

image
runs-on: macos-14
    steps:
    - uses: maxim-lobanov/setup-xcode@v1
      with:
        xcode-version: '15.3'
aetherealtech commented 1 month ago

I have a suggestion for the team working on this.

Apple expects developers to adopt tool upgrades immediately after they are published. This is why they don't make it easy to downgrade. Instead, what they do to make the adoption smooth for developers is share public betas.

I have worked on Apple apps where it was critical that they support new major version of Xcode as soon as it is released, because this coincided with new OS releases that could and did break our app, and we can't tell users not to upgrade iOS (and Apple makes it nearly impossible to downgrade OS). So what we did was, as soon as the first beta for a new major version was released, we started testing the code in the Xcode betas and fixed any issues we saw on the newer OS. For build issues we would prepare a separate branch that we would switch over to on release day. By the time the new version is officially released, we've been testing against the RC, we've already upgraded the live app version to one that works with the new OS, and we have a branch that builds correctly in the new Xcode.

For developer tools, it is really necessary to do this with not just major upgrades but minor upgrades too (especially when it comes with a new version of Swift). As soon as an Xcode beta version is released by Apple, that is when you should create the ticket to support that next version, and that should give you time to apply fixes so that by the time the new Xcode version goes live, your project already works with it.

In this example, the first beta of Xcode 15.3 was released on Jan. 25. The final release was on Mar. 5. That was almost six weeks to get ahead of any issues that arose.

kylemay-gridstone commented 1 month ago

Any update on an ETA? This is not an acceptable delay. 2 weeks since https://github.com/actions/runner-images/pull/9505 was merged.

Maybe time to move to Xcode Cloud instead of waiting months for every Xcode and macOS release. πŸ™„

setoelkahfi commented 1 month ago

I have a suggestion for the team working on this.

Apple expects developers to adopt tool upgrades immediately after they are published. This is why they don't make it easy to downgrade. Instead, what they do to make the adoption smooth for developers is share public betas.

I have worked on Apple apps where it was critical that they support new major version of Xcode as soon as it is released, because this coincided with new OS releases that could and did break our app, and we can't tell users not to upgrade iOS (and Apple makes it nearly impossible to downgrade OS). So what we did was, as soon as the first beta for a new major version was released, we started testing the code in the Xcode betas and fixed any issues we saw on the newer OS. For build issues we would prepare a separate branch that we would switch over to on release day. By the time the new version is officially released, we've been testing against the RC, we've already upgraded the live app version to one that works with the new OS, and we have a branch that builds correctly in the new Xcode.

For developer tools, it is really necessary to do this with not just major upgrades but minor upgrades too (especially when it comes with a new version of Swift). As soon as an Xcode beta version is released by Apple, that is when you should create the ticket to support that next version, and that should give you time to apply fixes so that by the time the new Xcode version goes live, your project already works with it.

In this example, the first beta of Xcode 15.3 was released on Jan. 25. The final release was on Mar. 5. That was almost six weeks to get ahead of any issues that arose.

Thanks for the suggestion. This has been our workflow since I joined the company and this issue is something that we can't control. This should be part of the GitHub SLA. So, any update on the ETA?

mk-openpath commented 1 month ago

+1. This is a blocking concern for us

vmanot commented 1 month ago

+1 on this, our builds have been failing for quite some time now due to this exact issue. What is the ETA?

tkersey commented 1 month ago

I don't know about the rest of you but since the afternoon (PDT) Friday, March 29th, I've been able to use Xcode 15.3 using GitHub's runners.

allenhumphreys commented 1 month ago

That’s not indicated in the image readmes

tkersey commented 1 month ago

I will trust working code over documentation any day.

ffried commented 1 month ago

Apparently it depends on which runner you get...

Both of the following jobs request macos-14.

This one is an older version w/o Xcode 15.3:

image

This one is a newer one, where Xcode 15.3 is installed:

image
erik-bershel commented 1 month ago

Hey there! Heads up. Image rollout of the macOS-14-arm64 image with the Xcode 15.3 on board is in progress. You can track it via PR here: https://github.com/actions/runner-images/pull/9579. It will be done with the closure of this PR.

3a4oT commented 1 month ago

Hey there!

Heads up. Image rollout of the macOS-14-arm64 image with the Xcode 15.3 on board is in progress. You can track it via PR here: https://github.com/actions/runner-images/pull/9579. It will be done with the closure of this PR.

Can you please highlight availability on Azure Devops? Is it related to mentioned PR?

erik-bershel commented 1 month ago

Hi @3a4oT! I should note that Xcode 15.3 is only available for macOS-14 and higher according to the page (and based on hours of trying to run it on a previous OS with no unpredictable results). macOS-14 images are not yet available in Azure Pipelines as I remember and according to the doc here. And I have no information about when they will appear there or whether they will appear at all. It's better to track it here: https://github.com/actions/runner-images/issues/8971.

allenhumphreys commented 1 month ago

I will trust working code over documentation any day.

@tkersey it seems to be a lengthy process and we should wait for docs before expecting all runners to be updated.

3a4oT commented 1 month ago

Hi @3a4oT! I should note that Xcode 15.3 is only available for macOS-14 and higher according to the page (and based on hours of trying to run it on a previous OS with no unpredictable results). macOS-14 images are not yet available in Azure Pipelines as I remember and according to the doc here. And I have no information about when they will appear there or whether they will appear at all. It's better to track it here: #8971.

Hey, @erik-bershel. Thanks for the reply and the progress you have made so far. I was expecting that GitHub's runners pool == Azure's runners pull since they pointed to this repository last time I asked for support.

mikhailkoliada commented 1 month ago

Should be deployed!

jbiel commented 1 month ago

We're waiting for this on Azure Pipelines as well. Unfortunately the more relevant ticket #8971 has been locked for discussion.

larry-cariq commented 1 month ago

With this new macos-14 runner using Xcode 15.3, should I remove the use of yeetd?

kylemay-gridstone commented 1 month ago

Still not available for Azure Pipelines, why is the ticket closed? What a joke Azure Pipelines has become.

faizy-ahmed commented 3 weeks ago

macOS-14 agent is still not available on Azure Pipeline. We can't comment on the more relevant thread (link) as we are not contributors. Can anyone from the contributors comment here on the ETAs, please? April 29, 2024, is the last date for the submission of apps from older Xcode. We have a requirement that we can't use Xcode 15.2, we must use Xcode 15.3.

pbudzinsky commented 3 weeks ago

macOS-14 agent is still not available on Azure Pipeline. We can't comment on the more relevant thread (link) as we are not contributors. Can anyone from the contributors comment here on the ETAs, please? April 29, 2024, is the last date for the submission of apps from older Xcode. We have a requirement that we can't use Xcode 15.2, we must use Xcode 15.3.

The older Xcode requirement is related to Xcode 14. You'll still be able to submit apps built with Xcode 15.2

abdulkarimkhaan commented 3 weeks ago

There is a huge following waiting for its update. Can we have any update on the timeline from contributors? This is not an acceptable delay.

Starting April 29, 2024, all iOS and iPadOS apps must be built with the iOS 17 SDK or later, included in Xcode 15 or later, in order to be uploaded to App Store Connect or submitted for distribution.

Note: We have a requirement where we can't use 15.2. Any latest update would be of great help. Looking forward to it.

faizy-ahmed commented 3 weeks ago

@pbudzinsky As I have already mentioned that

We have a requirement that we can't use Xcode 15.2, we must use Xcode 15.3.

More Details: When we build our macOS app from Xcode 15.2 there is an issue with compiler flags, the macOS app crashes on Intel-based processors. We have same repo and same pipeline for iOS and macOS app. So, our app is stable on either Xcode 15.3 or Xcode 14.2. After April 29, 2024 we won't be able to submit the app through Xcode 14.2. That's why we need Xcode 15.3 on Azure.

@pbudzinsky It would be of great help if you could escalate this issue before April 29, 2024 otherwise we need work on some work around.

faizy-ahmed commented 3 weeks ago

@mikhailkoliada Can you please help us in escalating the above issue?

faizy-ahmed commented 2 weeks ago

Just got the update and Azure DevOps has now enabled the macOS 14 agent. Now you all can build your apps on macOS 14 and Xcode 15.3.