-
Notifications
You must be signed in to change notification settings - Fork 985
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
added aarch64 build binary for windows #10306
base: main
Are you sure you want to change the base?
Conversation
For some reason the "Approve workflow" button is missing — some GitHub bug. I'll push an empty commit to trigger the run. |
@zanieb sorry about that, idk how that got there, fixed it. |
@zanieb |
https://github.com/astral-sh/uv/actions/runs/12622606852/job/35170731355
|
I don't think the runner has rust/cargo installed, since rustc -vV should not have failed. Is this an issue in the runner setup @zanieb? |
Interesting. It looks like the aarch64 runner image is missing a bunch of the tools present on the x86_64 runners. Not much to do there but install what we need, I guess. I'd look for other people using the runner online and see if they have some standard setup we can copy. (I did not have alternative image options when setting up the runner) |
I tried https://github.com/dtolnay/rust-toolchain but it failed with |
I am trying to get clang working, its almost there, it fails while building ring, with I had the same issue with my local, I had to add VS component for clang, I tried adding that no luck, will try again in a while. |
- fixed uv.exe path - fixed git upload name - removed unused tools from vs install step
I'm impressed by your perseverance :) |
Not sure if perseverance or sunk-cost fallacy, but thanks :) |
@zanieb 19th try is the charm 🎉 Here is the run: https://github.com/astral-sh/uv/actions/runs/12664851516/job/35293615729, I downloaded the exe from:
Its working fine on my snapdragon x-elite windows aarch 64: 2 questions:
Let me know if there are any tests you want me to run/add to the CI! Thanks! |
Let me look at the logs.
This is our "regular" CI that runs on every pull request for testing. There's a separate workflow that build release binaries for distribution. |
@zanieb do you want me to add the tests that are there for x86 to aarch64? |
@kalradivyanshu that'd be great! I'm looking into making things faster over in #10402 |
Yes, it currently takes 25 mins, which is insane tbh. Also I will rename the windows step to windows-x86 to match macOS naming. |
It looks like we'll have to hold off on those failing system checks and integration tests until this runner is better supported. |
Wdyt of #10402 (comment) |
@zanieb I will try to get clang to work w/o using Native desktop.
But also, I agree with this? I feel like Also, i ran tests yesterday, many failed, will fix those in coming days. |
It might make sense to put up a separate pull request that just cross-compiles the binary then? We won't be able to test it, but at least we can say "it builds" in regular CI then follow by adding it tot he release process. My concern with
was that if we're not testing the build in CI the same way we do for releases, we can regress accidentally. |
I was thinking in this PR only, we add the aarch64 build via x86, and then run all the tests on aarch64, that way, we should be good, we can say it builds and passes all the tests in aarch64?
This makes sense, but if all the tests pass, we can build it for release in x86 only, it will be cheaper and faster, I think microsoft is pushing for windows on ARM so a proper aarch64 runner shouldn't be far away, then we can just have build on aarch64 too. If that works for you I can start testing it. |
Yeah I think we're aligned here. I'm also happy to just have the cross-build working then tackle testing in follow-up pull requests. |
(I suggested a separate PR for the cross-build approach so we can retain all the history here and start fresh on the conversation for a different approach) |
Oh ok, makes sense, I will open the new PR, will let you know. Thanks. |
Summary
Adds an aarch64 windows build to build for windows on arm. Addresses: #1141
Test Plan
I build uv for windows aarch64 locally by running
cargo build --target aarch64-pc-windows-msvc
, it worked.