Skip to content

feat: add Linux aarch64 wheel builds via ubuntu-24.04-arm runner#90

Open
KE7 wants to merge 1 commit intoBerkeleyAutomation:masterfrom
KE7:feat/linux-aarch64-wheels
Open

feat: add Linux aarch64 wheel builds via ubuntu-24.04-arm runner#90
KE7 wants to merge 1 commit intoBerkeleyAutomation:masterfrom
KE7:feat/linux-aarch64-wheels

Conversation

@KE7
Copy link

@KE7 KE7 commented Mar 10, 2026

Summary

Linux aarch64 (ARM64) wheels are not currently available on PyPI for python-fcl, making it uninstallable on platforms such as NVIDIA Jetson, DGX Spark, AWS Graviton, and other aarch64 servers. This PR adds native Linux ARM64 wheel builds.

Approach

Follows the same pattern used to add macOS ARM support in #74: add a native ARM runner to the platform matrix rather than using QEMU emulation.

  • Add ubuntu-24.04-arm to the platform matrix in push.yml and release.yml
  • Remove the explicit archs = ["x86_64"] restriction from pyproject.toml so cibuildwheel auto-detects the native arch per runner (x86_64 on ubuntu-latest, aarch64 on ubuntu-24.04-arm)
  • No changes to build_dependencies/install_linux.sh — it builds all C++ deps (eigen, libccd, octomap, fcl) from source via cmake, which is architecture-agnostic

Testing

All 15 tests pass on linux/aarch64 (verified locally on a native ARM64 machine):

platform linux -- Python 3.11.14, pytest-9.0.2
collected 15 items

tests/test_fcl.py::TestFCL::test_managed_collisions PASSED
tests/test_fcl.py::TestFCL::test_managed_distances PASSED
tests/test_fcl.py::TestFCL::test_many_objects PASSED
tests/test_fcl.py::TestFCL::test_nearest_points PASSED
tests/test_fcl.py::TestFCL::test_pairwise_collisions PASSED
tests/test_fcl.py::TestFCL::test_pairwise_continuous_collisions PASSED
tests/test_fcl.py::TestFCL::test_pairwise_distances PASSED
tests/test_fcl.py::TestFCL::test_updates PASSED
tests/test_precision.py::TestPrecision::test_mgr_mgr_coll PASSED
tests/test_precision.py::TestPrecision::test_mgr_mgr_signed_distance PASSED
tests/test_precision.py::TestPrecision::test_mgr_obj_coll PASSED
tests/test_precision.py::TestPrecision::test_mgr_obj_signed_distance PASSED
tests/test_precision.py::TestPrecision::test_obj_obj_coll PASSED
tests/test_precision.py::TestPrecision::test_obj_obj_signed_distance PASSED
tests/test_precision.py::TestPrecision::test_obj_obj_simple_distance PASSED

15 passed in 0.08s

Adds native Linux ARM64 (aarch64) wheel builds using GitHub's
ubuntu-24.04-arm runner, mirroring how macOS ARM was added in BerkeleyAutomation#74.

- Add ubuntu-24.04-arm to the platform matrix in push.yml and release.yml
- Remove explicit archs = ["x86_64"] restriction so cibuildwheel
  auto-detects the native arch on each runner (x86_64 on ubuntu-latest,
  aarch64 on ubuntu-24.04-arm)
- Bump version to 0.7.0.11

All 15 tests pass on linux/aarch64 natively.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant