Files
894dda5691 [BLD] Add win_arm64 wheel build to CI (#7447)
## Summary

Adds a **Windows ARM64 (`aarch64-pc-windows-msvc`)** wheel build leg to
the PyPI
release workflow, mirroring the existing `win_amd64` build as closely as
possible.

The wheel is `cp39-abi3-win_arm64` (from `pyo3` `abi3-py39`), matching
the abi3
tag produced on every other platform.

## Build validation ✅

The **build** leg was validated on a GitHub-hosted `windows-11-arm`
runner and
succeeded, producing `chromadb-*-cp39-abi3-win_arm64.whl` (~22.7 MB).

## Local test results (win_arm64, all `win_amd64`-equivalent jobs)

Even though no CI test job is added, the wheel was validated locally on
a native
Windows ARM64 host against the built `cp39-abi3-win_arm64` wheel
(`grpcio`/`grpcio-tools` supplied from prebuilt arm64 wheels;
`chroma-hnswlib`
built from source), using the exact CI targets and env
(`CHROMA_RUST_BINDINGS_TEST_ONLY=1`, `PROPERTY_TESTING_PRESET=normal`):

| CI job / target | Result |
| --- | --- |
| `test-rust-bindings` — core | **778 passed**, 152 skipped, 1 xfailed |
| `test-rust-bindings` — property | **98 passed**, 12 skipped, 2
xfailed, 2 xpassed |
| `test-rust-bindings-stress` | **2 passed** |
| `test-python-cli` | **3 passed** |
| `test-rust-single-node-integration` — core | **767 passed**, 164
skipped, 1 xfailed |
| `test-rust-single-node-integration` — property | **71 passed**, 7
skipped, 2 xpassed |
| `test-rust-single-node-integration` — stress | **2 passed** |
| `test-rust-thin-client` | **74 passed**, 13 skipped, 1 xfailed, 2
xpassed |
| `test-rust-bindings` — cross-version | ⛔ blocked (`pulsar-client` has
no win_arm64 wheel) |

`test-cluster-rust-frontend` is ubuntu-only and not part of the Windows
path.

## Future steps

- **Drop the `unpublished-` prefix** (in `_build_release_pypi.yml`'s
"Upload
wheels" step) once `grpcio` ships `win_arm64` wheels on PyPI, so this
leg
  publishes to PyPI and is attached to the GitHub release like the other
  platforms. A `TODO(win_arm64)` comment marks the exact spot.
- Optionally, add a win_arm64 **test** job at that point (also unblocked
by
grpcio; note `grpcio-tools` and `pulsar-client` likewise lack win_arm64
  wheels today).

from Microsoft

Co-authored-by: Yi Ren <reny@microsoft.com>
Co-authored-by: Robert Escriva <robert@trychroma.com>
2026-07-27 13:40:47 -07:00
..