jyksnw / install-jdk

install-jdk is a Python library for easily installing the latest OpenJDK for a given major version. Supports builds from Adoptium and Corretto. Simplify your Java development with the latest OpenJDK builds.
https://pypi.org/project/install-jdk/
MIT License
18 stars 3 forks source link

Guidance to add `aarch64` support #18

Closed villares closed 1 year ago

villares commented 1 year ago

Dear @jyksnw,

Context: @claudefalbriard and I would like to add support to Rasberry Pi, because we'd like to use it for educational activities involving py5 (@py5coding). We use @tabreturn's Thonny IDE plugin (https://github.com/tabreturn/thonny-py5mode) that helps set up JDK for py5 and depends on install-jdk.

I have experimented with os.uname().machine and it looks promissing to identify architecture.

Also, visiting https://api.adoptopenjdk.net/ I saw a warning about moving to https://api.adoptium.net and this guide: https://api.adoptopenjdk.net/migration.html

Would you like to guide us to a PR (or maybe more than one) that could address these issues?

jyksnw commented 1 year ago

Hi, @villares; sorry for the delay. I had yet to learn that this project was being so widely used. I will move this client over to the Adoptium API while adding support for other architectures to the support list.

villares commented 1 year ago

Cool! Maybe @MarcScott will be able to help with this when the time comes for the new architectures support!

jyksnw commented 1 year ago

That would be awesome! It will be easy to add other architectures as long as Adoptium has the binaries for that architecture (it appears they have both arm and aarch64, so we should be good at supporting a Raspberry Pi). Plus, it gives me a project to justify pulling out my Raspberry Pi for testing. The hardest part of the implementation, which should already be in place, is ensuring that the method calls that handle downloading and installing are cross-platform.

jyksnw commented 1 year ago

@villares, the current main branch (not what is in PyPI yet) should have support for aarch64 now. It also switches to using Adoptium by default with an option to switch to using Corretto (both of which should have aarch64 support). I still need to validate this and will test it out over the coming days. I would love to get some additional help testing these changes before I cut the v1.0 release and push it into PyPI for broader distribution.

jyksnw commented 1 year ago

Thank you for using the library and helping contribute to its forward progression and adoption! Release 1.0.1 has been pushed with added support for aarch64. The library has also been updated to do its best to detect both arm and aarch64. Please pull the latest release from PyPI and let me know if you have any further issues with install-jdk supporting the new architectures.