-
Notifications
You must be signed in to change notification settings - Fork 253
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
Only build x86_64 / Intel 10.9+ on macOS #220
Conversation
8b02d38
to
a754b1d
Compare
bfbc981
to
8414d90
Compare
It probably should be the default.
PS: I'm not sure that i686/x86_64 actually reflect the flavor of python running (I download one of my wheel from a 10.14 system from python3.7-32 and I can't see it in the stats while I'm sure it wasn't cached). Given that python runs x86_64 as a default when possible, it shouldn't change much the outcome. |
Tbh I'm on board with 64bit only default on Mac too, if there are no major objections. I can't remember my last 32bit mac, but it was a loong time ago! The only thing I don't know (agreeing with your suspicion with those figures) is if people are still running python-32 on a 64bit machine (for binary compat reasons), but I'd say it was an edge case. I think Also, I'm thinking this PR could remove the arch from build identifier, so it'd be just What do you think @mayeut? |
EDIT: see #220 (comment) for more discussion on this - I've changed my mind a bit |
I think your proposal is much clearer for the end user (and even for me) but for consistency sake, I went with
Ok, so default to |
8414d90
to
cd026d8
Compare
In combination with #156, aren't we leaving the minimum version up to the user to decide and to be checked by |
Let's wait for #156 to be merged-in, I'll rework this after. |
0db3757
to
58d6212
Compare
58d6212
to
983cbd9
Compare
#156 is waiting on a pypa/wheel release, which might be a while yet...
For the sake of simplicity, I'm happy to just do the above - drop |
983cbd9
to
dc7c55c
Compare
x86_64
only on macOSda835c5
to
0e0478a
Compare
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.
Feeling good about how this simplifies things :) let me know what you think about the build identifier change!
cibuildwheel/macos.py
Outdated
PythonConfiguration(version='2.7', identifier='cp27-macosx_10_9_x86_64', url='https://www.python.org/ftp/python/2.7.17/python-2.7.17-macosx10.9.pkg'), | ||
PythonConfiguration(version='3.5', identifier='cp35-macosx_10_9_x86_64', url='https://www.python.org/ftp/python/3.5.4/python-3.5.4-macosx10.6.pkg'), | ||
PythonConfiguration(version='3.6', identifier='cp36-macosx_10_9_x86_64', url='https://www.python.org/ftp/python/3.6.8/python-3.6.8-macosx10.9.pkg'), | ||
PythonConfiguration(version='3.7', identifier='cp37-macosx_10_9_x86_64', url='https://www.python.org/ftp/python/3.7.6/python-3.7.6-macosx10.9.pkg'), |
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.
Aha, so we have a little snag here - the build identifiers are changing - both the machine and the macos system.
Previously I've mused about renaming these e.g. cp37-macosx_10_9_x86_64
→ cp37-macosx
. Thinking about this fresh...
The architecture isn't needed any longer, since we only build x86_64. Should we remove it? Will we ever need an architecture switch on macos again? Hm, well, ARM Macs might exist one day! And, all other platforms contain an architecture flag, so keeping it retains consistency.
Then there's the 10_9
bit - we expect to remove this part because #156 should be making this conditional on the MACOSX_DEPLOYMENT_TARGET var instead.
So here's what I'm thinking... rather than making users update their settings from cp37-macosx_10_6_intel
to cp37-macosx_10_9_x86_64
and then from cp37-macosx_10_9_x86_64
to cp37-macosx_x86_64
when #156 lands, let's pull in the build selector migration and go to the cp37-macosx_x86_64
format in this PR.
Thoughts @YannickJadoul @Czaki ?
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.
Depends a bit on when we can merge #156, i.e., when a new wheel version will be released.
If that's before you plan a new release, I'd argue to keep this as it is now and not mix different PRs. If wheel won't release too soon, then yeah, maybe. But maybe that's still another clean PR, then?
(I've asked, btw: pypa/wheel#314 (comment); let's see what comes out of that.)
On keeping the architecture: I don't think that's really bothering? It even keeps things clear, that wheels will only be built for 64-bit, I'd say. And with the wildcard matching on *-macosx_*
, most users might not even need to change too much (I'd hope users don't depend on this 10_6/10_9 too much?). And indeed: keeping it would be good for the sake of consistency with manylinux_x86_64
/manylinux_i686
/ win32
/win_amd64
, where also now always have architecture, but not the platform's version :-)
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.
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.
Thanks for getting in touch with the wheel folks! I had been trying to unblock a few PRs but hopefully that's moving now.
Afterthought: is there any reason to use the 10.9 packages from Python.org?
I think this is more convenient because the 10.9 packages build a x86_64 wheel by default, but I'll let @mayeut correct me if I'm wrong...
| Python 3.5 | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| Python 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| Python 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | | ||
| Python 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
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.
Ahhhh :)
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.
Don't merge #185, then :-/
c4c9eba
to
7aff399
Compare
I think this PR can get moving again! @mayeut, are you able to rebase/merge master? |
I've made the changes you suggested @Czaki @YannickJadoul, and I think I'm happy with it. Any further comments? |
Looks good to me! One thing I can still think of: now that If not, go ahead and merge, as far as I'm concerned :-) |
I try to build quite big python 3.5 depend project. I takes about an hour to finish build. In few hour i will give information if it pass. |
It works. |
Hurray! Thanks for testing, @Czaki!
Then it's just this. Any thoughts, @Czaki? Because maybe this should have already be done in #156, actually. |
Ah! Yes, good catch, thank you @YannickJadoul ! |
But so, worth taking into account that it also already changed in #156. So you might want to check for |
Indeed. We haven't released that migration, so they can maybe be merged together. |
in #156 system version is removed only. I do not do any changes with |
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.
Yesss, nice! :-)
Yes |
Fixed; quickly pushed ffec9ae to master. |
Hi, is it possible to have a release with this in a near future? Our project needs 10.9 for C++11 support and the previous release only have it for Python 3.8. |
Hi @McSinyx. Only thing you need is to define |
Thank you @Czaki for the tip. How do I specify the Python version then? Is the following OK?
I see the linked documentation is built on GitHub master instead of the released one though. I've just checked out |
Handling of MACOSX_DEPLOYMENT_TARGET is in
because next release should be in short time I suggest usage
|
Thanks, I was wondering why it isn't prefixed with |
Because this is MacOs system variable used to control compatibility .
Why you use separate job for each build? Maybe try: |
We want to make use of some parallelism, but mainly it's for better Python compatibility test (e.g. if 3.6 fails we would still want to know if 3.7 passes). |
Only build x86_64 / Intel 10.9+ on macOS