Skip to content

Updated GitHub actions to support arm runners #131

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Zuzu-Typ
Copy link

@Zuzu-Typ Zuzu-Typ commented Nov 24, 2024

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/

@johnnynunez
Copy link

and arm runners?

@Zuzu-Typ
Copy link
Author

Zuzu-Typ commented Feb 3, 2025

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.

@johnnynunez
Copy link

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...

commit f053687
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 13:43:02 2025 +0100

    Removed temporary comments

commit 839d1f7
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 12:59:28 2025 +0100

    Fixed some oversights

commit 35ac3eb
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 12:55:34 2025 +0100

    Excluded ppc64le and s390x

commit 7598bb6
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 12:43:45 2025 +0100

    Try running Python 3.10 builds only for ppc64le and s390x

commit 141e188
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 12:12:04 2025 +0100

    Skipping outdated Python versions

commit d536992
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 12:06:49 2025 +0100

    Using ubuntu-latest with qemu for ppc64le and s390x

commit 8384975
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 11:37:14 2025 +0100

    Commented out ifs for testing purposes

commit 7726b71
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 11:32:52 2025 +0100

    Fixed needs requirement in workflow

commit e01989c
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 11:31:33 2025 +0100

    Fixed needs requirement in workflow

commit 9cb660e
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 11:27:53 2025 +0100

    Fixed incorrect indentation

commit 96ed215
Author: Zuzu-Typ <[email protected]>
Date:   Mon Feb 3 11:25:21 2025 +0100

    Add support for arm builds and runners
@Zuzu-Typ
Copy link
Author

Zuzu-Typ commented Feb 3, 2025

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).

@johnnynunez
Copy link

johnnynunez commented Feb 3, 2025

@Zuzu-Typ FYI: also window arm is coming for Q2 2025 github/roadmap#1098

@johnnynunez
Copy link

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

@Zuzu-Typ Zuzu-Typ changed the title Updated GitHub actions versions Updated GitHub actions to support arm runners Feb 3, 2025
@johnnynunez
Copy link

johnnynunez commented Feb 3, 2025

cc @mcfletch could you merge it ASAP?
image

@johnnynunez
Copy link

johnnynunez commented Feb 3, 2025

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

@Zuzu-Typ
Copy link
Author

Zuzu-Typ commented Feb 4, 2025

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.

@johnnynunez
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants