You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For those of us using ARM, having ARM builds published to PyPI would significantly speed up initial installs of this library. When technologies such as Docker are being used, these builds are done quite often and additional dependencies may be required to build this dependency.
GitHub Actions have been slow to add Windows on ARM runners, so though we ask cibuildwheel for auto64, we don't get ARM builds there. However, we could explicitly start asking for ARM64 builds, which would be cross-compiled, and untested.
Apologies. I'll admit I'm not very familiar with how Pip works under the hood. Just saw builds happening that don't on x86 and jumped to some evidently incorrect conclusions. I'm working off Alpine Linux which uses Musl. I really appreciate y'all sharing your knowledge on all this and steering me in the right direction. This has been very educational.
It appears that cibuildwheel offers a musllinux_aarch64 target which would be what I want, but that seems to have been intentionally disabled. I assume that's probably for a good reason, but couldn't find why this was setup this way. Definitely don't want to drop additional work on your plate, especially if this only benefits a very small subset of users of this package. I'd be happy to take a stab at getting this working if the lack of support for musllinux is just down to lack of demand or resources to invest in getting it working.
Did some looking into what this would take. It seems like the musllinux ARM build just works, but it does double build times on this already lengthy CI step since we'd be doubling the number of builds. Opened a PR to simply re-enable this build, but I assume this was disabled because of how lengthy this makes builds. If this is a concern, I can look into splitting these builds out across more runners to mitigate this.
A note on this, Github recently enabled native ARM runners that we have started using for CIBW, and it is significantly faster than even the x86-64 builds now, to my understanding.
It may be worth revisiting this discussion. (To be clear, this is not a guarantee we would accept it now where we wouldn't before, but the availability and speed of native ARM builds was one of the primary sticking points to my recollection.)
Could we consider reviewing this decision? Native Linux arm runners are available now, and Alpine on a Raspberry Pi or similar device is a pretty common deployment scenario. Native pre-builds would save us hours of time and needing to build wheels in our own emulators.
Activity
ksunden commentedon Jul 12, 2024
We do have ARM builds uploaded to pypi already (at least for manylinux (glibc) and MacOS)
https://pypi.org/project/matplotlib/3.9.1/#files
Is there something we are missing?
We do not currently build windows ARM wheels, and I did not see Linux wheels using musl, are either of those cases what you are referring to?
tacaswell commentedon Jul 12, 2024
I think this is an illustration of one the of the major issues with pip/wheel (https://pypackaging-native.github.io/meta-topics/pypi_social_model/) as it pushes the user expectation of building ever more wheels on to the projects.
We can do what ever cibuildwheel makes easy.
I think in most cases either the packing of the underlying OS or conda is a better choice.
QuLogic commentedon Jul 12, 2024
GitHub Actions have been slow to add Windows on ARM runners, so though we ask cibuildwheel for
auto64, we don't get ARM builds there. However, we could explicitly start asking for ARM64 builds, which would be cross-compiled, and untested.korverdev commentedon Jul 12, 2024
Apologies. I'll admit I'm not very familiar with how Pip works under the hood. Just saw builds happening that don't on x86 and jumped to some evidently incorrect conclusions. I'm working off Alpine Linux which uses Musl. I really appreciate y'all sharing your knowledge on all this and steering me in the right direction. This has been very educational.
It appears that
cibuildwheeloffers amusllinux_aarch64target which would be what I want, but that seems to have been intentionally disabled. I assume that's probably for a good reason, but couldn't find why this was setup this way. Definitely don't want to drop additional work on your plate, especially if this only benefits a very small subset of users of this package. I'd be happy to take a stab at getting this working if the lack of support formusllinuxis just down to lack of demand or resources to invest in getting it working.[-][MNT]: ARM builds[/-][+][MNT]: ARM builds for musllinux[/+]korverdev commentedon Jul 19, 2024
Did some looking into what this would take. It seems like the
musllinuxARM build just works, but it does double build times on this already lengthy CI step since we'd be doubling the number of builds. Opened a PR to simply re-enable this build, but I assume this was disabled because of how lengthy this makes builds. If this is a concern, I can look into splitting these builds out across more runners to mitigate this.ksunden commentedon Jan 22, 2025
A note on this, Github recently enabled native ARM runners that we have started using for CIBW, and it is significantly faster than even the x86-64 builds now, to my understanding.
It may be worth revisiting this discussion. (To be clear, this is not a guarantee we would accept it now where we wouldn't before, but the availability and speed of native ARM builds was one of the primary sticking points to my recollection.)
ianthomas23 commentedon Jan 23, 2025
FWIW both
contourpyandkiwisolverpublish musllinux aarch64 wheels.khmyznikov commentedon Jan 29, 2025
Any plans for Windows Arm64? actions/python-versions#291
QuLogic commentedon Jan 30, 2025
That's support in the images; there's still no Windows on ARM runners available.
#28554
strophy commentedon Sep 28, 2026
I see in the cibuildwheel job and on PyPI that musllinux aarch64 wheels are still deliberately excluded using
skip_config:Could we consider reviewing this decision? Native Linux arm runners are available now, and Alpine on a Raspberry Pi or similar device is a pretty common deployment scenario. Native pre-builds would save us hours of time and needing to build wheels in our own emulators.