mirror of
https://github.com/chroma-core/chroma.git
synced 2026-10-29 01:15:11 +08:00
## 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>