From dcc8a9442d75370bee308a2dc6f74e5ed6aaf1fa Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Thu, 30 Jul 2026 13:22:14 +0200 Subject: [PATCH] fix(ci): pin both cp314 and cp314t ABIs explicitly for Python 3.14 The previous fix pinned only the free-threaded variant (*_cp314t) and left the GIL variant relying on a bare `conda build --python 3.14`. That default is no longer reliable: conda-forge bumped the free-threaded python_abi to a higher build number (8_cp314t), so conda-build's solver now resolves a bare `--python 3.14` to cp314t rather than cp314. As a result both 3.14 build jobs produced cp314t artifacts, the GIL build disappeared, and the two upload jobs collided again on the identical cp314-cp314t wheel filename. Fix: remove 3.14 from every base `python` list and define both ABIs as explicit, pinned matrix entries (3.14.* *_cp314 for GIL and 3.14.* *_cp314t for free-threading) across all matrix blocks in both workflows. This makes the build/test/install steps request an explicit ABI instead of trusting whichever python_abi build number the solver happens to prefer. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/conda-package.yml | 30 ++++++++++++++----- .../workflows/run-tests-from-dppy-bits.yaml | 8 +++-- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index be4b1ea231..1b6d24cbeb 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -26,9 +26,11 @@ jobs: strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' - python: '3.14' python_spec: '3.14.* *_cp314t' steps: @@ -101,9 +103,11 @@ jobs: strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' - python: '3.14' python_spec: '3.14.* *_cp314t' steps: @@ -176,9 +180,13 @@ jobs: strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' + experimental: false + runner: ubuntu-22.04 - python: '3.14' python_spec: '3.14.* *_cp314t' experimental: false @@ -291,9 +299,13 @@ jobs: shell: cmd /C CALL {0} strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' + experimental: false + runner: windows-latest - python: '3.14' python_spec: '3.14.* *_cp314t' experimental: false @@ -480,9 +492,11 @@ jobs: timeout-minutes: 20 strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' - python: '3.14' python_spec: '3.14.* *_cp314t' steps: @@ -527,9 +541,11 @@ jobs: shell: cmd /C CALL {0} strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' - python: '3.14' python_spec: '3.14.* *_cp314t' steps: @@ -573,7 +589,7 @@ jobs: strategy: matrix: python: ['3.14'] - python_spec: [''] + python_spec: ['3.14.* *_cp314'] experimental: [false] runner: [ubuntu-latest] include: diff --git a/.github/workflows/run-tests-from-dppy-bits.yaml b/.github/workflows/run-tests-from-dppy-bits.yaml index 3cd684df64..d310263629 100644 --- a/.github/workflows/run-tests-from-dppy-bits.yaml +++ b/.github/workflows/run-tests-from-dppy-bits.yaml @@ -27,9 +27,11 @@ jobs: strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' - python: '3.14' python_spec: '3.14.* *_cp314t' experimental: [false] @@ -86,9 +88,11 @@ jobs: shell: cmd /C CALL {0} strategy: matrix: - python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + python: ['3.10', '3.11', '3.12', '3.13'] python_spec: [''] include: + - python: '3.14' + python_spec: '3.14.* *_cp314' - python: '3.14' python_spec: '3.14.* *_cp314t' experimental: [false]