Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions .github/workflows/build-cysignals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,11 @@ jobs:
fail-fast: false
matrix:
version: ${{ fromJSON(needs.setup.outputs.versions) }}
python: ["cp312", "cp313", "cp314", "cp314t"]
# 1.13.0 raised requires-python to >=3.13 (was >=3.12 in 1.12.6), so
# cp312 is no longer a valid build target: cibuildwheel selects zero
# build identifiers for it and exits with "No build identifiers
# selected".
python: ["cp313", "cp314", "cp314t"]
libc: [manylinux, musllinux]

env:
Expand All @@ -67,6 +71,15 @@ jobs:
ref: ${{ env.CYSIGNALS_VERSION }}
persist-credentials: false

- name: Checkout python-wheels
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
path: python-wheels
persist-credentials: false

- name: Patch cysignals source
run: git apply python-wheels/patches/cysignals/${{ env.CYSIGNALS_VERSION }}/00*.patch

- name: Build wheels
uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0
with:
Expand All @@ -87,7 +100,10 @@ jobs:
for whl in sys.argv[1:]:
names = zipfile.ZipFile(whl).namelist()
assert any(n.startswith("cysignals/") and n.endswith(".so") for n in names), whl
assert any(n.endswith(".dist-info/LICENSE") for n in names), whl
# meson-python 0.22 implements PEP 639: license files land under
# <dist-info>/licenses/, not directly in <dist-info>/ as older
# (setuptools-era) tooling placed them.
assert any(n.endswith(".dist-info/licenses/LICENSE") for n in names), whl
print(whl, "ok")
EOF

Expand Down
1 change: 1 addition & 0 deletions docs/packages/cysignals.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ versions:
- filename: cysignals-1.12.6-cp314-cp314t-musllinux_1_2_riscv64.whl
sha256: a56bb87556d4d68c742a5fb7cf9ade409267917c39c139807008cf870f37c3b3
requires-python: '>=3.12'
- version: 1.13.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
From: Ludovic Henry <git@ludovic.dev>
Subject: [PATCH] Drop cpython-freethreading from the cibuildwheel enable
groups

cibuildwheel 3.0 removed the cpython-freethreading enable group -
free-threaded builds are selected by the build identifier itself now,
not an opt-in group - and its config parser rejects the value outright,
before any container starts and for every interpreter in the matrix:

Failed to parse enable group. Unknown enable group:
cpython-freethreading. Valid group names are: cpython-prerelease,
graalpy, pypy, pypy-eol, pyodide-eol, pyodide-prerelease

Upstream's own dev dependency group pins cibuildwheel>=2.23.3, where
the group is still valid and is what enables its cp313t wheels, so
dropping it upstream would lose those wheels there. Setting
CIBW_ENABLE="" in the workflow env does not help: cibuildwheel merges
the env var's groups into pyproject.toml's list rather than replacing
it, so an empty override leaves cpython-freethreading in place.

Upstream-Status: Inappropriate [needed only for cibuildwheel 3.0+, which python-wheels pins repo-wide; upstream pins cibuildwheel>=2.23.3]
---
pyproject.toml | 1 -
1 file changed, 1 deletion(-)

diff --git a/pyproject.toml b/pyproject.toml
index 1111111..2222222 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -52,6 +52,5 @@ dev = [
]

[tool.cibuildwheel]
-enable = ["cpython-freethreading"]
skip = ["*-win32", "cp313t-*"]
test-groups = ["dev"]
--
2.43.0
Loading