Skip to content

ci: build wheels for all supported Python versions and platforms#3

Merged
sandeepkunkunuru merged 1 commit into
mainfrom
ci/wheel-coverage
Apr 23, 2026
Merged

ci: build wheels for all supported Python versions and platforms#3
sandeepkunkunuru merged 1 commit into
mainfrom
ci/wheel-coverage

Conversation

@sandeepkunkunuru

Copy link
Copy Markdown
Contributor

Summary

Fixes the wheel-coverage gap that blocks optimization/ from bumping its rao-algorithms pin past 0.6.1.

Problem: v0.9.3 and v0.10.0 on PyPI only shipped three wheels:

  • cp312-macosx_11_0_arm64
  • cp312-win_amd64
  • cp38-manylinux_x86_64

No Intel-Mac wheels, no Linux py310/311/312 wheels, no sdist. Pip on Intel Mac + py312 can't install any 0.9+ release.

Root causes in the workflow:

  1. macos-latest runner is now arm64; no Intel macOS runner in the matrix.
  2. maturin-action had no -i interpreter list, so it built for whichever python3 happened to be on PATH per OS.
  3. No sdist step, so platforms without binary wheels had no source fallback.

Fix:

  • Add macos-13 (Intel) alongside macos-latest (arm64).
  • Pass -i python3.10 python3.11 python3.12 python3.13 to maturin.
  • Add a build-sdist job.

Test plan

  • Merge this PR.
  • Tag a new release (e.g. v0.10.1).
  • Verify PyPI shows 8 wheels (4 OS × 4 Python) + 1 sdist.
  • On an Intel Mac: pip install rao-algorithms>=0.9.3 should succeed.
  • Follow-up PR in optimization/ bumping all rao-algorithms pins to >=0.9.3.

Prior to this, `maturin-action` was invoked without an explicit interpreter
list, so it only built one cp version per OS (cp312 on mac/win, cp38 on
linux). Combined with `macos-latest` now being arm64-only, the v0.9.3 and
v0.10.0 releases shipped just three wheels — leaving Intel-Mac and
current-Python Linux users unable to install.

- Add `macos-13` (Intel) alongside `macos-latest` (arm64).
- Pass `-i python3.10 python3.11 python3.12 python3.13` so maturin builds
  wheels for every interpreter installed by `setup-python`.
- Add a `build-sdist` job so platforms not covered by binary wheels can
  still fall back to a source build.

After merging, tag a new release (e.g. v0.10.1) to re-publish with
complete wheel coverage; the `optimization/` repo can then bump its pins
to `>=0.9.3` without breaking developers on Intel Macs / Linux+cp312.
@sandeepkunkunuru
sandeepkunkunuru merged commit 2d56320 into main Apr 23, 2026
1 check passed
@sandeepkunkunuru
sandeepkunkunuru deleted the ci/wheel-coverage branch April 23, 2026 07:37
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