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

Add support for Xcode 15.0 (Conan 1.x) #14533

Merged
merged 1 commit into from
Sep 5, 2023

Conversation

janosvitok
Copy link
Contributor

@janosvitok janosvitok commented Aug 21, 2023

Changelog: Feature: Add support fox Xcode 15.
Docs: Omit

#14494

@CLAassistant
Copy link

CLAassistant commented Aug 21, 2023

CLA assistant check
All committers have signed the CLA.

Copy link
Member

@memsharded memsharded left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @janosvitok

Thanks for your contribution.

At this moment we are only accepting changes in the Conan 1.X that are strictly necessary. With XCode and all these new versions being beta, this PR seems a bit beyond what is expected.

Adding the minimum necessary OSX (Macos) and XCode versions when Apple finally releases them could be ok and necessary due to Apple forced updates, but all the newer versions for all the Apple platforms like iOS, watchOS might not be that critical or necessary.

I suggest putting this on hold until Apple releases mandate the updates, and restrict them to the bare minimum to not break, and target this PR to the release/2.0 branch for the Conan 2.0 releases.

@janosvitok
Copy link
Contributor Author

Hi @memsharded,

our situation is this:

  • we need to prepare our program so that it works with the new version of iOS once it is released. To compile for iOS beta, we need to use Xcode beta. I don't really mind the various iOS versions, I've added them for completeness sake.

  • we store our package in gitlab conan repository, and unfortunately, gitlab does not support conan 2.x yet. So we have to stay with conan 1.x for now. We can manage this by editing the settings manually, if xcode 15 support does not make it to the 1.x series.

There is approximately 1 month left before Apple releases iOS 17. They will release Xcode 15 about the same time, since its crucial to develop apps for iOS 17. It would be great if support for Xcode 15 in conan will be released prior to Xcode 15 release, otherwise people will have to manually edit their conan settings files.

What do you think? Should I remove iOS/watchOS versions? Should I split it to two PRs: one for 1.x with Xcode 15 only, and one for 2.x with all the versions?

@memsharded
Copy link
Member

Thanks very much for the feedback @janosvitok!

Let me explain our point of view 🙂 : Conan 2.0 beta versions are already more than 1 year old now (https://docs.conan.io/2/changelog.html) and alphas date back to Nov-2021 (https://github.com/conan-io/conan/releases/tag/2.0.0-alpha1). I understand the will and need to use latest versions of other tools, but we cannot keep indefinitely adding things to Conan 1.X to support them, as it is equally important to update to Conan 2.0, also because ConanCenter will keep moving forward and stop building some 1.X configurations to build them for 2.0, as the resources are not infinite, and eventually 1.X support will be frozen in ConanCenter.

Also every review takes time, and then things need to be merged forward to 2.0 (there are always conflicts, etc). Then things might start failing with the latest iOS version with the latest CMake version, because some policy changed, and users will keep asking for 1.X support, because the settings are already defined built-in. At some points limits have to be defined, the effort of developing, migrating and maintaining Conan 1.X and 2.0 simultaneously is huge and exhausting, and can't be sustained forever.

we store our package in gitlab conan repository

The API v2 has been out for more than 4 years, and it is all is needed to run Conan 2.0. Conan 2.0 do not need a new API or new support, just the revisions-capable API v2 that was introduced more than 4 years ago. So this is unfortunate, but this is something that should be fixed from their side, I suggest pushing them until they do. And if they don't fix it, we have the completely free ArtifactoryCE, it is not that challenging to run and maintain in your own server, I'd suggest giving it a try.

In summary, we all need to move forward, and the only sustainable way is to stop supporting newer platforms in older versions of the tools. As users wanting to stay in Conan 1.X can easily add their own settings.yml and share it with conan config install (which always has been the recommended way to share profiles and other stuff), this shouldn't be a blocker. So I'd suggest the following path:

  • Do a PR with the full thing to Conan 2.0
  • Do a PR with the bare minimum to not break when XCode 15 is out: I think at this stage the only really breaking thing would be the apple-clang 15.0 version, as all the other things are opt-in
  • Users wanting to use newer versions of iOS, Macos sdk, etc, with Conan 1.X will need to add them to their own settings.yml

Please let me know what you think.

@janosvitok
Copy link
Contributor Author

janosvitok commented Aug 21, 2023

Sounds reasonable.

I'm aware that it's gitlab fault, but I'm afraid we're too small to force them to do something (unless we implement it ourselves, which we don't have capacity for). Edit: It seems that there is a work in progress: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121860

So I will:

  • strip everything but Xcode 15 from this PR
  • create another PR targeted at release/2.0 with all changes

@janosvitok
Copy link
Contributor Author

Note: Xcode 15 was added to 2.x branch in #14302.

@janosvitok janosvitok changed the title Add support for Xcode 15.0, iOS 17, tvOS 17, watchOS 10, macOS 14 Add support for Xcode 15.0 (Conan 1.x) Aug 22, 2023
@H-G-Hristov
Copy link

Thanks. We'll also have to live with Conan 1.x for a long while due to a large amount of customized recipes.
So for us getting new Xcode version and C++ language versions (C++26) in Conan 1.x is essential.

@memsharded memsharded added this to the 1.61 milestone Aug 28, 2023
@memsharded memsharded merged commit 49726f6 into conan-io:develop Sep 5, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants