Skip to content
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

Builds python wheels for linux/aarch64 #1820

Merged
merged 7 commits into from
Jun 29, 2024

Conversation

merschformann
Copy link
Contributor

Description

Modifies "build-wheels" workflows to also build for linux/aarch64 platform. Due to the lack of a Github runner for this platform, we use QEMU. While this works nicely, we need to split the build step to account for the conditional and the build using QEMU takes 5x as long. 😬

Changes

  • Adds QEMU setup step when build matrix is facing aarch64
  • Adds conditional build step for aarch64 to explicitly set CIBW_ARCHS_LINUX
    • Ternary unfortunately didn't work, so, I wasn't able to keep it in one step. There is probably another way, but I thought that the less I mingle with the other build targets the better. 😊
  • Did above changes for build-wheels-push.yml and build-wheels.yml alike

Notes

I was pinged by @ryanjoneil about wheels for linux/aarch64 (cc @galabovaa ). I had some time to spare tonight, so I just went for it. The approach seems to work nicely for Pyvroom (see their workflow).

Happy to assist with further work related to this.

Thanks again for this awesome project! 🤗

@galabovaa
Copy link
Contributor

Thank you, @merschformann! This is great ☺️ Merging this is master, so it will be included in the next release.

Aiming to make it over the next few days, Julian and I just need to discuss if there is anything else we need to add before we tag it.

Just a note, we usually open PRs to the branch latest, rather than master, to keep master consistent with the latest tagged release.

Thanks again for making this happen so quickly!

@merschformann
Copy link
Contributor Author

Oh sorry, I didn't know about using latest. My bad. I can change the base branch to latest quickly, if that helps.

And happy to help. Let me know if there is more to do. 😊

@jajhall
Copy link
Member

jajhall commented Jun 29, 2024

It's not a problem, we can change the base, but there's always the chance that we don't spot it

@merschformann
Copy link
Contributor Author

Makes sense. Is it possible to change the default branch to latest, or does that mess with other things? (just to mitigate the risk)

@galabovaa
Copy link
Contributor

We’d like master to be stable and consistent with the latest release, and latest to contain our latest changes. Latest gets broken sometimes, as we develop, so it’s best to have master as the general default.

There may be a setting for a default branch just for new PR’s that we have not come across yet, is that what you meant? I just did a quick search but could not find anything obvious

@galabovaa
Copy link
Contributor

For this PR going to master is OK, because it only changes a workflow and not the HiGHS code. I make exceptions occasionally for testing edits, but we make sure to merge master in latest afterwards and ideally it would be a one way communication

@galabovaa galabovaa merged commit a2e89c0 into ERGO-Code:master Jun 29, 2024
109 checks passed
@merschformann
Copy link
Contributor Author

Yeah, that makes sense. I will keep it in mind now.
And yes, I meant changing the default branch in general. That of course has other potential drawbacks, like newcomers checking out a potentially unstable branch.

Anyway, thanks again for your work! Have a great remaining weekend! ❤️

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.

3 participants