From 73241305fa266eaca0aee51662ed6a299025052a Mon Sep 17 00:00:00 2001 From: David Seddon Date: Thu, 10 Sep 2026 10:04:05 +0100 Subject: [PATCH] Fix missing macOS wheels for regular Python 3.14+ Co-installing the regular and free-threaded interpreters in the same setup-python step and relying on `maturin build --find-interpreter` causes the free-threaded interpreter to shadow the regular one on PATH on macOS (both install a `python3.14` binary), so no regular cp314 wheel gets built. This is the same class of issue already fixed for Windows in ec5eca2; apply the same separate-steps fix to the macos job. Fixes https://github.com/python-grimp/grimp/issues/317. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/release.yml | 25 ++++++++++++++++++++++--- CHANGELOG.rst | 6 ++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 53ddd691..08cf2781 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -170,16 +170,35 @@ jobs: 3.12 3.13 3.14 - 3.14t 3.15 - 3.15t allow-prereleases: true - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter + args: --release --out dist --interpreter 3.10 3.11 3.12 3.13 3.14 3.15 + sccache: 'true' + + # setup-python installs the free-threaded interpreter's binary under the + # same name as the regular one (e.g. `python3.14`), so co-installing + # both and using --find-interpreter silently drops the regular wheel + # (whichever interpreter is installed second shadows the other on + # PATH). Building free-threaded wheels in a separate step avoids this. + # See https://github.com/pyo3/maturin-action#windows-build-the-regular-and-free-threaded-interpreters-in-separate-jobs + # and https://github.com/python-grimp/grimp/issues/317. + - uses: actions/setup-python@v6 + with: + python-version: | + 3.14t + 3.15t + allow-prereleases: true + - name: Build free-threaded wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --interpreter 3.14t 3.15t sccache: 'true' + - name: Upload wheels uses: actions/upload-artifact@v4 with: diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 09661ce1..8ee3b38a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog ========= +latest +------ + +* Fix missing macOS wheels for regular (non-freethreaded) Python 3.14+ + (https://github.com/python-grimp/grimp/issues/317). + 3.17 (2026-09-04) -----------------