Skip to content

Handle builds against various python versions with cibuildwheel#34

Merged
peytondmurray merged 1 commit intodeshaw:mainfrom
peytondmurray:combine-builds
Mar 20, 2026
Merged

Handle builds against various python versions with cibuildwheel#34
peytondmurray merged 1 commit intodeshaw:mainfrom
peytondmurray:combine-builds

Conversation

@peytondmurray
Copy link
Copy Markdown
Collaborator

@peytondmurray peytondmurray commented Mar 20, 2026

This PR fixes an issue with uploading our wheels to PyPI.

I'm really not sure why this change works, but I noticed that

  1. We were splitting the task of building against different versions of python across different CI jobs using a matrix
  2. cibuildwheel can handle building against multiple versions of python just fine
  3. The wheels built here contain pure rust code (see maturin.bindings = 'bin' in pyproject.toml). As a result the wheels are compatible with all python versions
  4. When I made cibuildwheel build the various python versions, the job was able to successfully upload to test.pypi.org. Furthermore, cibuildwheel doesn't bother building wheels if the ones it has already built are already compatible across versions, so we're really not losing much here in the way of build time if we compare to splitting python versions across a CI matrix. In fact we are doing considerably less work overall (since those "duplicate" build jobs get skipped by cibuildwheel), though it probably is a tiny bit slower.

Again, I'm not sure why PyPI is rejecting our wheels if we build them one-by-one, but given that this is a perfectly valid way of building these, I'm fine with this change.

@peytondmurray peytondmurray requested a review from mlucool March 20, 2026 07:11
@peytondmurray peytondmurray merged commit 9a732d5 into deshaw:main Mar 20, 2026
7 checks passed
@peytondmurray peytondmurray deleted the combine-builds branch March 20, 2026 19:18
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.

2 participants