letmaik / rawpy

📷 RAW image processing for Python, a wrapper for libraw
https://pypi.python.org/pypi/rawpy
MIT License
587 stars 67 forks source link

Add linux aarch64 wheel build support #160

Closed odidev closed 2 years ago

odidev commented 2 years ago

Add linux aarch64 wheel build support.

Related to https://github.com/letmaik/rawpy/issues/159 @letmaik Could you please review this PR?

letmaik commented 2 years ago

Thanks for this, seems to work fine, the only concern I have is CI runtime. Normally, a job takes not more than 5 min. Here, due to QEMU, the longest one took 3 hours (Python 3.6). The fastest 42 min (Python 3.9). The reason for the big differences is that older Python versions tend to not have aarch64 wheels for dependencies available, so need to be built from source.

I would say, because aarch64 is cutting edge and those users likely run the latest Python version I would be ok with only providing aarch64 wheels for Python >= 3.9. Let me know if that works for you, giving that you're an early adopter :)

If you're happy with that, just remove the older entries from the CI yaml. Also, it would be good if you could do a little test by manually installing the aarch64 wheel from the CI artifacts: https://github.com/letmaik/rawpy/actions/runs/1452826967 (see bottom).

odidev commented 2 years ago

For all python versions which is taking more time if we can increase the version of the dependencies for which Linux AArch64 wheels are available, will this be ok for you? else you could go with releasing wheel for python-version >= 3.9.

Also, it would be good if you could do a little test by manually installing the aarch64 wheel from the CI artifacts: https://github.com/letmaik/rawpy/actions/runs/1452826967 (see bottom).

I have manually tested the Linux aarch64 wheels and it is working fine.

letmaik commented 2 years ago

For all python versions which is taking more time if we can increase the version of the dependencies for which Linux AArch64 wheels are available, will this be ok for you? else you could go with releasing wheel for python-version >= 3.9.

This affects numpy as build dependency, and matplotlib and scikit-image as test dependencies. For the test dependencies, the latest versions are already used, and there are just no aarch64 wheels for Python 3.6. Given that Python 3.6 is EOL very soon, I would not worry about that and remove it from the matrix (for aarch64). Regarding numpy, increasing the minimum version seems ok. Could you figure out what the minimum numpy version for 3.7 and 3.8 is that has aarch64 wheels and then use that?

odidev commented 2 years ago

@letmaik I have updated the code with minimum numpy version.