cibuildwheel icon indicating copy to clipboard operation
cibuildwheel copied to clipboard

Support macOS universal2 wheel fusion?

Open henryiii opened this issue 4 years ago • 6 comments

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?

henryiii avatar May 28 '21 22:05 henryiii

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).

mayeut avatar May 29 '21 08:05 mayeut

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.

mattip avatar Nov 05 '21 09:11 mattip

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

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

isuruf avatar Nov 05 '21 23:11 isuruf

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.

henryiii avatar Nov 06 '21 02:11 henryiii

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 avatar Mar 16 '22 07:03 mattip

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

mattip avatar Mar 21 '22 16:03 mattip