oconnor663 / blake3-py

Python bindings for the BLAKE3 cryptographic hash function
Other
148 stars 14 forks source link

Linux wheel for aarch64 and armv7 architecture ? #28

Closed dulfox closed 2 days ago

dulfox commented 2 years ago

I've seen that you've provided lots of wheel package but could you please provide linux wheel for aarch64 and armv7 architecture ?

oconnor663 commented 2 years ago

Currently all the wheels are built by GitHub Actions, in this job: https://github.com/oconnor663/blake3-py/blob/master/.github/workflows/push.yml

GitHub doesn't directly support ARM runners as far as I know (but I could be wrong), so getting additional wheels up probably requires some sort of virtualization. I'm sure something with QEMU is possible, but I don't have a ton of experience with this. Things might get a lot easier if we could use https://github.com/rust-embedded/cross directly for this, but I'm not sure.

dulfox commented 2 years ago

It does seem that it is not as simple and straightforward as I thought. Maybe some hope via this link: https://github.com/uraimo/run-on-arch-action Thanks for answering anyway.

strayer commented 2 years ago

https://github.com/pypa/cibuildwheel uses Docker and qemu to run emulated aarch64 containers to build wheels. I'm currently working on getting this to work with pytaglib and it seems to do its job (although slow, unsurprisingly).

robd003 commented 1 year ago

I found a build service that's half the price of GitHub actions and has support for arm64 https://buildjet.com/for-github-actions/pricing

robd003 commented 8 months ago

Great news @oconnor663 GitHub has a beta for arm64 runners!

You can sign-up here: https://resources.github.com/devops/accelerate-your-cicd-with-arm-and-gpu-runners-in-github-actions/

ddelange commented 2 months ago

you can simply use the maturin-action like pydantic does: https://github.com/pydantic/pydantic-core/blob/e0b4c94054b4bca649d63a8f18843c3baadee1c4/.github/workflows/ci.yml#L395

ddelange commented 2 months ago

I saw you use python scripts to upload as release assets.

in constrast, pydantic uses github artifacts for uploading the wheels, and downloads them again in the publish step.

then, you can upload them as release assets and to pypi using dedicated actions (example) too. you won't need PyGithub or your python scrips anymore. 100% yml :)

this example ^ uses pypi trusted publishing (no user/pass). all you need to do is add oconnor663/blake3-py as trusted publisher here and add the permissions in the github action as per the example.

ddelange commented 2 months ago

opened #45, everybody here, please add your review (and test the wheels) 🙏