Skip to content

Build and test Windows x86-64 wheels - #127

Merged
prrao87 merged 3 commits into
mainfrom
ci/windows-wheels
Nov 5, 2026
Merged

prrao87 merged 3 commits into
mainfrom
ci/windows-wheels

Conversation

@prrao87

@prrao87 prrao87 commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Windows users currently get only the sdist, which needs Rust and protoc to install. This adds a prebuilt Windows x86-64 wheel alongside the Linux and Apple Silicon ones.

Changes

  • build-windows job: builds the wheel natively on windows-2022 (MSVC) with protoc from Chocolatey, then runs twine check and uploads it as python-dist-windows-x64. sccache is off for this job: its Windows server dropped the connection while compiling lance. Without it the build takes about 52 minutes, under the same 90-minute timeout as the other builds.
  • test job: adds windows-2022 to the matrix, so the wheel is installed without Rust and tested on Python 3.12, 3.13 and 3.14, like the other wheels. The wheel path goes through cygpath -w so uv gets a Windows path.
  • publish: now waits for build-windows too, so a release publishes all three wheels or none.
  • python/.cargo/config.toml: the Windows target uses the same haswell / AVX2 flags as the Linux x86-64 wheel, so both x86-64 wheels have the same CPU baseline.
  • Docs and metadata: the README files list Windows and state the AVX2 requirement. pyproject.toml gains the Windows classifier, and RELEASE.md lists the new job.

The POSIX-permissions test in test_engine_csr_persist.py already skips on Windows.

Validation

This PR edits python-publish.yml, so the workflow builds and tests all wheels here without publishing. Run 41953498991 built all three wheels and passed all nine test jobs (three platforms × Python 3.12, 3.13, 3.14). A release now takes about 65 minutes instead of 50, because the Windows build is the slowest.

🤖 Generated with Claude Code

Windows users had only the sdist, which needs Rust and protoc. The wheel is
built natively on windows-2022 with the same Haswell baseline as the Linux
x86-64 wheel, tested on Python 3.12 to 3.14, and published with the others.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Deploying lance-csr with  Cloudflare Pages  Cloudflare Pages

Latest commit: a590a40
Status: ✅  Deploy successful!
Preview URL: https://58313706.lance-csr.pages.dev
Branch Preview URL: https://ci-windows-wheels.lance-csr.pages.dev

View logs

sccache's server closed its connection while compiling lance on windows-2022,
failing the build.
It took 52 minutes without sccache, so it now has the same 90-minute timeout
as the other builds and sets the release's critical path.
@prrao87
prrao87 merged commit cf445aa into main Nov 5, 2026
18 checks passed
@prrao87
prrao87 deleted the ci/windows-wheels branch November 5, 2026 15:02
prrao87 added a commit that referenced this pull request Nov 7, 2026
* docs: mention WSL2 as a way to use lance-csr on Windows

Also add Windows x86-64 to the getting-started wheel list and the
Python README requirements, which #127 missed.

* docs: restyle README badges and add downloads and crates.io

Use shields.io's for-the-badge style for every badge, and add total
PyPI downloads (pepy) and the crates.io version.

* docs: drop the downloads badge and lead with the license

The pepy count covers PyPI only, CI and mirror traffic included, so it
doesn't say much. Order the rest license, Rust, Python.
prrao87 added a commit that referenced this pull request Nov 7, 2026
Patch release: it adds the Windows x86-64 wheel built by #127 and
changes no Python or Rust API.
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