Skip to content

Conversation

@tomjakubowski
Copy link
Contributor

@tomjakubowski tomjakubowski commented Dec 3, 2025

Add aarch64 Linux wheel to the build, and include it in the release artifacts.

Combined effort with @Oblynx from #3093.

Also:

  • Add a simple DCO check to the pre-push hook. This is not quite 100% foolproof, as it only checks HEAD, but can fix in a follow up.
  • Fix an issue in the build script where we were both building protoc from source and also downloading binaries to be installed.
  • Add some df -h invocations to the Python job to monitor disk free space.

@tomjakubowski tomjakubowski force-pushed the linux-aarch64 branch 7 times, most recently from 6b4c720 to a8dd2b4 Compare December 4, 2025 23:52
@tomjakubowski
Copy link
Contributor Author

Public note to self: I think maybe the action we use to install cmake is installing an x86-64 build of cmake on the arm runner. Will pick up on this thread next.

Screenshot 2025-12-04 at 5 23 04 PM

@@ -1,4 +1,3 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

husky was warning loudly that this is deprecated and will soon cause errors. The contents of that file now do nothing but echo that warning, so I think it is safe to heed it and remove this.

@tomjakubowski
Copy link
Contributor Author

It appears the setup_cmake action doesn't yet support arm64/aarch64.

See:

I'll fork, use the fork here to test it, then submit a PR to the action upstream.

@tomjakubowski
Copy link
Contributor Author

Pointed it to my fork of the cmake action. PR to upstream jwlawson/actions-setup-cmake#83

@Oblynx
Copy link
Contributor

Oblynx commented Dec 5, 2025

Hey @tomjakubowski thanks for working on this! I don't know if you were influenced by my issue #3091 ?

I ran into the same problems as you and propose solutions in #3093.

Signed-off-by: Tom Jakubowski <tom@prospective.dev>
@tomjakubowski tomjakubowski changed the title build aarch64 linux wheels Build arm64/aarch64 Linux wheels Dec 9, 2025
- Use fork of actions-setup-cmake install until arm support is
  upstreamed <jwlawson/actions-setup-cmake#83>
- Add arm runner to matrix + use manylinux container
- Upload built artifacts

Signed-off-by: Tom Jakubowski <tom@prospective.dev>
@tomjakubowski
Copy link
Contributor Author

@Oblynx continuing discussion from your related PR: #3093

Thanks again for your work! I've cherry-pick your commits onto my branch and fixed up a couple remaining items to get this ready to ship. It looks like correcting the unnecessary downloading of the protoc binary, which we discussed on your PR, is actually enough to fix the disk space issues in the Python builds for now. I've also added some df commands to the job so that we can keep an eye on disk usage going forward.

@tomjakubowski tomjakubowski marked this pull request as ready for review December 9, 2025 21:41
Oblynx and others added 4 commits December 9, 2025 14:00
- Ensure rustup gets the version appropriate for the architecture
- Add a manylinux container for arm
- Fix target for native arm compilation
- Fix cmake install in pagmo2/arm64
- Fix protoc arch in cmake

Signed-off-by: Konstantinos Samaras-Tsakiris <ksamtsak@gmail.com>
Signed-off-by: Tom Jakubowski <tom@prospective.dev>
- Simplify arch detection in cmake

- Try not reinstalling rustup

- Use the existing method of installing protoc correctly

Signed-off-by: Konstantinos Samaras-Tsakiris <ksamtsak@gmail.com>
Signed-off-by: Tom Jakubowski <tom@prospective.dev>
`Path::parent()` returns `None` for root and empty paths, so handle it
by panicking in this case.  In this case it should never happen under
non-contrived circumstances.

Signed-off-by: Tom Jakubowski <tom@prospective.dev>
These builds are on a knife's edge currently with respect to disk space.
I think it is worth logging `df` output so we can keep an eye on it.

Signed-off-by: Tom Jakubowski <tom@prospective.dev>
@Oblynx Oblynx mentioned this pull request Dec 14, 2025
Copy link
Member

@texodus texodus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! Looks good!

I have run a full build on this branch and it passed ... on the second try, failing the first due to disk space on the x64 python build step. I am a bit concerned we are so close to the disk space limit for these machines, this failure is going to be an ongoing problem for CI builds. Flattening out the protoc duplication is a great step!


- name: Run df -h
if: ${{ runner.os == 'Linux' }}
run: df -h
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate the thought to include these, but I may prune them in the future for brevity!

@texodus texodus merged commit d1f70e0 into perspective-dev:master Dec 15, 2025
72 of 75 checks passed
@texodus texodus added the enhancement Feature requests or improvements label Dec 15, 2025
@texodus texodus linked an issue Dec 16, 2025 that may be closed by this pull request
@Oblynx
Copy link
Contributor

Oblynx commented Dec 16, 2025

@texodus can we release the new wheels? Thanks for merging!

@perspective-dev perspective-dev locked as off-topic and limited conversation to collaborators Dec 16, 2025
@texodus
Copy link
Member

texodus commented Dec 16, 2025

CONTRIBUTING.md

Don't add comments asking when a feature will be delivered or a reported issue fixed.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

enhancement Feature requests or improvements

Development

Successfully merging this pull request may close these issues.

Provide linux aarch64 wheels

3 participants