pypa / cibuildwheel

🎡 Build Python wheels for all the platforms with minimal configuration.
https://cibuildwheel.pypa.io
Other
1.84k stars 236 forks source link

Support macOS universal2 wheel fusion? #705

Open henryiii opened 3 years ago

henryiii commented 3 years ago

In the future, would it make sense to support macOS universal2 wheel fusion, like multibuild does? Either automatically when all three arches are chosen, for example? Or maybe just provide an example how how to do it if you have the two dedicated wheels?

mayeut commented 3 years ago

I'm +1 on this, that was one workflow that made sense to me https://github.com/pypa/cibuildwheel/issues/473#issuecomment-748471250 From the link you provided to multibuild, seems delocate already support this which is good news (I didn't check back in December that it was the case).

mattip commented 2 years ago

FWIW, multibuild is backtracking and will also create thin wheels. A problem was discovered with universal2 and NPY_SIZEOF_LONGDOUBLE and NPY_SIZEOF_COMPLEX_LONGDOUBLE for numpy, which was fixed in numpy/numpy#20270, but the problem may appear in other projects so it is safer to distribute separate wheels.

isuruf commented 2 years ago

FWIW, multibuild is backtracking and will also create thin wheels.

Not true. multibuild has always created thin wheels and did wheel fusion.

henryiii commented 2 years ago

Yes, this is not related. NumPy is just shipping the thin wheels now. This issue is about wheel fusion, that is, making the thin wheels and then post processing them into a universal wheel, specifically making sure it's easy to do that combination step.

mattip commented 2 years ago

As I commented elsewhere I don't really see the need for cibuildwheel to provide this option. I haven't heard a clear need for pip install <universal2wheel>, and for app packagers I think the correct place to fuse wheels is when creating the application. Please correct me if I am mistaken.

mattip commented 2 years ago

xref https://github.com/numpy/numpy/pull/20787