pyopengl icon indicating copy to clipboard operation
pyopengl copied to clipboard

Updated GitHub actions to support arm runners

Open Zuzu-Typ opened this issue 1 year ago • 10 comments

Added support for arm architectures and extended manylinux and musllinux versions

  • Windows on ARM
  • MacOS on arm
  • manylinux2014 (x86_64, i686, aarch64, armv7l)
  • manylinux_2_28 (x86_64, aarch64, armv7l) - i686 is not supported
  • musllinux_1_2 (x86_64, i686, aarch64, armv7l)

Removed support for Python 3.6-3.8 builds

Newer manylinux and musllinux distros do not come with older Python versions. Python 3.8 is at end of life by now.

Switched to experimental arm runners (for vastly improved build times for aarch64 and armv7l)

See https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

Zuzu-Typ avatar Nov 24 '24 10:11 Zuzu-Typ

and arm runners?

johnnynunez avatar Feb 02 '25 19:02 johnnynunez

and arm runners?

Good idea. It would require some additional testing though. That would potentially include the following architectures:

  • MacOS apple silicon (arm64) (or universal2)
  • Windows on Arm
  • manylinux & musllinux aarch64, ppc64le, s390x and armv7l

It's not entirely clear though if all of those binaries can actually be built without modifying the code.

I can try, but it'll take a while.

Zuzu-Typ avatar Feb 03 '25 09:02 Zuzu-Typ

and arm runners?

Good idea. It would require some additional testing though. That would potentially include the following architectures:

  • MacOS apple silicon (arm64) (or universal2)
  • Windows on Arm
  • manylinux & musllinux aarch64, ppc64le, s390x and armv7l

It's not entirely clear though if all of those binaries can actually be built without modifying the code.

I can try, but it'll take a while.

yes, also you have arm runners now to test it: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

digits, jetson thor, cuda arm laptops are coming...

johnnynunez avatar Feb 03 '25 09:02 johnnynunez

yes, also you have arm runners now to test it: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

Nice, thanks for the heads-up! I implemented the runners into a new workflow setup. I tested it and it seems to work quite well. ppc64le and s390x will not be supported, because NumPy does not support them. I added the code anyway, but it's commented out until that changes (if ever).

Zuzu-Typ avatar Feb 03 '25 12:02 Zuzu-Typ

@Zuzu-Typ FYI: also window arm is coming for Q2 2025 https://github.com/github/roadmap/issues/1098

johnnynunez avatar Feb 03 '25 12:02 johnnynunez

Thanks for your runners, I really appreciate it from Nvidia (Digits, Thor and Cuda ARM laptops)

johnnynunez avatar Feb 03 '25 12:02 johnnynunez

cc @mcfletch could you merge it ASAP? image

johnnynunez avatar Feb 03 '25 12:02 johnnynunez

One question, Is it necessary mantain old python <3.9? https://devguide.python.org/versions/ i mean in terms of cost, efficiency and security

I mean

johnnynunez avatar Feb 03 '25 21:02 johnnynunez

One question, Is it necessary mantain old python <3.9? https://devguide.python.org/versions/ i mean in terms of cost, efficiency and security

Are you asking me or mcfletch?

I believe it isn't strictly necessary. I think it's generally a good idea to support older versions if there is no downside (no workarounds, no features that can't be used). Then the users of those platforms can still use the latest version with all bugfixes. Most packages (e,g, numpy) don't do this though so one might run into compatibility problems.

I removed <=3.8 from the build script, because they might not be supported on all manylinux or musllinux images.

Zuzu-Typ avatar Feb 04 '25 10:02 Zuzu-Typ

One question, Is it necessary mantain old python <3.9? https://devguide.python.org/versions/ i mean in terms of cost, efficiency and security

Are you asking me or mcfletch?

I believe it isn't strictly necessary. I think it's generally a good idea to support older versions if there is no downside (no workarounds, no features that can't be used). Then the users of those platforms can still use the latest version with all bugfixes. Most packages (e,g, numpy) don't do this though so one might run into compatibility problems.

I removed <=3.8 from the build script, because they might not be supported on all manylinux or musllinux images.

I hope that @mcfletch merge ASAP

johnnynunez avatar Feb 04 '25 10:02 johnnynunez