-
-
Notifications
You must be signed in to change notification settings - Fork 507
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
increase minimum macOS deployment target to 10.13 #5829
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
|
True thanks, I had forgotten that we're still setting this in the global pinning. I guess this could be phased out eventually, but shouldn't hold us up here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to change the macos_machine variable too? I honestly do not know what that is.
|
This is is the Darwin Kernel version. We should update it. According to https://en.wikipedia.org/wiki/MacOS_High_Sierra#Release_history we should set it to |
Is this value anywhere else in our compiled packages such that changing it would create issues? To clarify, I mean in the already built compiler packages or even downstream packages built by the compilers. Clearly we need to change the feedstocks @h-vetinari found. |
Thanks!
Shouldn't we then set it to 17.7.0? For 10.9, 13.4 we also used the latest available minor version. Though OTOH, for osx-arm, we did take
I think this value is pretty arbitrary in the sense that it's only the name of our internal target triple, and updating the version only really serves the accuracy of our triples (to a relatively pedantic degree; our Nothing else but our compiler infrastructure depends on it AFAICT (though a small number of non-compiler feedstocks hard-code the full path to clang instead of using |
Ok. I guess we'd have to patch all of the compiler feedstocks so that packages with the new target triple don't interact with packages using the old target triple. That's a pain but possible. |
I don't even think that's necessary? The packages remain compatible, in the sense that we're only moving to a newer C stdlib evolution state, but that wasn't a problem previously either (as evidenced by all the feedstocks bumping That's why I'm tempted to remove the version - it serves no purpose (that I can see) now that we have |
I suspect the triple might be hard coded in some of the paths. |
What kind of paths could that be? Shouldn't everything installed be in the PREFIX and undergo relocation by conda? Not saying this isn't possible, but I'm not sure what kind of scenario could cause that. Would very much appreciate your input here @isuruf. 🙏 |
Oh sorry I mean in the names of compilers or other tools. |
If you click the link under "hard-code" above, I did exactly that search in conda-forge, and there's not more than a handful (that aren't compiler-related). |
None of the feedstocks that @h-vetinari linked uses the
Packages like mpich, perl harcode the compiler name (not the path) at build time. That's why we still have If there's a triplet that works without macos version, that'd be great, but autoconf has some checks for the darwin kernel for existence of |
Note this was just a simple github search. Indeed it's mostly feedstocks that override this value themselves, but it's an illustration of where it's actually being used and not just part of the config.
Ah OK, thanks.
OK. Given all that, do you think we should:
|
I would go with either 1 or 4. |
Fine with both, but if we do 1, we should add a comment in the cbc.yaml that it is intentionally outdated. |
Thanks for the inputs! I think we should do 1. now, and 4. potentially later. I'll add a comment. |
Given the overall agreement here, I'm going to put this in. Thanks for the reviews/inputs! |
osx-64 build failed when merging into main because libcxx was updated from 16.x.x to 17.x.x between the time of the MR and the merge. libcxx 17.x.x requires MacOS >=10.13 (see conda-forge/libcxx-feedstock#131) My understanding is that a re-render should fix it due to conda-forge/conda-forge-pinning-feedstock#5829
This tiny change has been a long time coming, for a taste of the journey check out:
{{ stdlib("c") }}
migration conda-forge.github.io#2102Closes conda-forge/conda-forge.github.io#1844
We've already announced the move last August, but needed a whole bunch of new functionality to make things work.
I proposed in the core call just now to do this separately for macOS (as we've promised to move to glibc 2.17 on linux in June, and this will probably be an even bigger change), so that we get to test it in real life, and also since all the prerequisites are there now.
In particular, feedstocks that haven't yet been touched by the stdlib-piggyback migrator (which will keep running; it adds the required
{{ stdlib("c") }}
to the recipes whenever a migrator or version bump comes by) will now get a linter warning to add it (as of conda-smithy 3.35), so that a warning-free feedstock will continue to produce correct artefacts. This was what had been agreed in the last core call, and people were fine to bump this in the core call just now as well.Still, CC @conda-forge/core if anyone has input. Otherwise I'll merge this in ~48h.