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
test and build infrastructure for arm64 support #24002
Comments
This issue/PR has been automatically marked as stale because it has not had any update (including commits, comments, labels, milestones, etc) for 30 days. It will be closed automatically if no further update occurs in 7 day. Thank you for your contributions! |
Any news on this? it could be really helpful for some of my projects if there would be a way to enable arm64 builds! Best Guthom |
I'm not really sure what the answer should be here. The gRPC team realizes that the importance of ARM64 is growing and we are actually making steps towards supporting it. As expressed before, the main challenge is setting up the test infrastructure and integrating it with the tests we currently have. gRPC is not a small project and its testing infrastructure is quite complicated and there are many kinds of tests in 10 languages and a ton of support scripts in bash and python. The volume of our testing is also quite high (we run hundreds of hours worth of tests on each pull request and also continuously). Our current CI plaform has currently no way of integrating with ARM64 servers. Altogether, figuring out the question of how to test on ARM in a way that's feasible, reliable maintainable and cost efficient way is not an easy task - it's not as simple as just grabbing an ARM server and starting to running tests on it, there's tens of smaller subproblems to solve (and many of them require in-depth knowledge of gRPC's testing infrastructure and the tests themselves). This is also the reason why a cannot give you a one paragraph summary of "what's needed" (there's a lot of things) and how you can make progress (which is also quite complicated once you go beyond the obvious "try to build and run on a ARM64 server and if you find a bug, come back with a PR that fixes it") That said, ARM64 support is something we're actively investigating so over time you should be seeing more and more progress towards this goal. Hope this makes sense and thanks for coming up with a list of the ARM related issues. |
Dear Mr Tattermusch |
Just to provide a quick update here: the gRPC team is actively working on providing official ARM64 linux support (including official packages in package managers and continuous tests in place). Please stay tuned. |
@jtattermusch Dear Mr Tattermusch, |
A blog post at https://grpc.io/blog/grpc-on-arm64/ has lots of updates! Thanks @jtattermusch for all your work. I note in that post that there's a gap in Ruby support. The Ruby team just spun up some systems for build/test on arm64 at @WorksOnArm - let me know if I can make any introductions. |
Yes, we don't provide native ruby gems, this is tracked as #26391 and protocolbuffers/protobuf#8682. The main blocker there is lack of support for aarch64 linux crosscompilation in rake-compiler-dock (which is what we use for building the native gems) - see rake-compiler/rake-compiler-dock#47. |
Since linux arm64 support is now official (as announced in https://grpc.io/blog/grpc-on-arm64/), it makes sense to close this issue. Feel fee to open separate issues for arm64 on Mac and arm64 on Windows - but as mentioned in the blogpost we don't have a clear plan there yet. |
Is your feature request related to a problem? Please describe.
Multiple projects on arm64 are blocked because of lack of arm64 support for
grpc
.If "gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere", then it should run anywhere including on arm64.
It has been pointed out several times that arm64 support is limited in part
because of lack of test and build infrastructure.
arm64 support is relevant to several sets of devices, including the following:
Describe the solution you'd like
Address the question of test and build infrastructure - what is
needed, where could it be hosted, and what tooling someone
internal or external to the project would need to make progress on this.
Note that Bazel as of bazelbuild/bazel#8833 includes
arm64 support, so that there's some tooling available.
Describe alternatives you've considered
There isn't really a good alternative to working within the existing project;
the build infrastructure is sufficiently complex to make it unwise to fork
it.
Additional context
Related issues:
The text was updated successfully, but these errors were encountered: