arrow
arrow copied to clipboard
GH-47196: [CI][Python] Add support for building PyArrow library on Windows ARM64
Rationale for this change
- The adoption of Windows on ARM (WoA) devices is steadily increasing, yet many Python wheels are still not available for this platform.
- GitHub Actions now offers native CI runners for Windows on ARM devices (windows-11-arm), enabling automated builds and testing.
- Currently, official PyArrow Python wheels are not provided for Windows ARM64, and users and developers face difficulties using the popular PyArrow library natively.
- This PR introduces support for building PyArrow wheels on Windows ARM64, improving accessibility for developers and end users on this emerging platform.
What changes are included in this PR?
- The current Windows x64 CI pipeline depends on a Windows Docker container. Windows ARM64 Docker support is still experimental and does not yet support Windows ARM64 containers.
- To overcome this limitation, this PR uses the native GitHub Windows ARM64 environment instead of relying on Docker containers.
- The following changes are made to add wheel builder support for PyArrow on Windows ARM64:
- Added a Windows ARM64 build configuration in task.yml.
- Added a new GitHub workflow file (github.windows.arm64.yml) for building PyArrow.
- Added a batch script invoked by the workflow to build both the C++ and Python components of Arrow using the MSVC toolchain.
- Updated vcpkg.json to exclude the xsimd dependency on Windows ARM64 due to MSVC compatibility issues.
Are these changes tested?
- Yes, built locally and test its functionality on Native Windows ARM64 device.
Are there any user-facing changes?
- No
Github Issue: https://github.com/apache/arrow/issues/47195
- GitHub Issue: #47196