From b5bbb906dc0ef3cce192093ae6824a556da145c6 Mon Sep 17 00:00:00 2001 From: "riseproject-dev[bot]" <330740410+riseproject-dev[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 08:00:14 +0000 Subject: [PATCH 1/5] cysignals: Add version 1.13.0 Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com> --- docs/packages/cysignals.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/packages/cysignals.yaml b/docs/packages/cysignals.yaml index a2a7e4d0667..9a52c3c4d57 100644 --- a/docs/packages/cysignals.yaml +++ b/docs/packages/cysignals.yaml @@ -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 From 5d8fd7422956cae4c6499cb5bd4741c659dd81df Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 1 Oct 2026 08:50:23 +0000 Subject: [PATCH 2/5] cysignals: blank CIBW_ENABLE to override upstream's removed enable group Upstream's pyproject.toml (new in 1.13.0) sets tool.cibuildwheel.enable = ["cpython-freethreading"], needed back when free-threaded wheels were opt-in. cibuildwheel v4.2.0 (pinned in this workflow) has removed that enable group entirely, so it hard-errors parsing an unknown group instead of ignoring it: cibuildwheel: Failed to parse enable group. Unknown enable group: cpython-freethreading. Free-threaded builds are unconditional now and cp314t is already in this matrix, so the setting is a no-op to override. --- .github/workflows/build-cysignals.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build-cysignals.yml b/.github/workflows/build-cysignals.yml index 2ff7a5ab47a..a7e04ae11b3 100644 --- a/.github/workflows/build-cysignals.yml +++ b/.github/workflows/build-cysignals.yml @@ -79,6 +79,14 @@ jobs: # crashes cibuildwheel's post-build audit step on our self-hosted # runner, which has no host `uv` (gotcha 13). CIBW_BUILD_FRONTEND: build + # Upstream's pyproject.toml (new in 1.13.0) also sets + # tool.cibuildwheel.enable = ["cpython-freethreading"], needed back + # when free-threaded wheels were opt-in. cibuildwheel v4.2.0 (pinned + # above) has removed that enable group entirely - free-threaded + # builds are unconditional now, cp314t is already in this matrix - + # so it hard-errors parsing an unknown group instead of ignoring it. + # Blank it out to override upstream's setting. + CIBW_ENABLE: "" - name: Check the wheel ships the extensions and licence run: | From 069025d7775c38268ab8bec28289758ec6f8adda Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 1 Oct 2026 10:01:38 +0000 Subject: [PATCH 3/5] cysignals: patch out the cpython-freethreading enable group instead of overriding via env The earlier CIBW_ENABLE="" env override didn't work: cibuildwheel merges the env var's enable groups into pyproject.toml's list rather than replacing it, so the unknown cpython-freethreading group (removed in cibuildwheel 3.0, which this repo pins) stayed in effect and the build kept failing with the same 'Failed to parse enable group' error. Patch the setting out of pyproject.toml instead, the same fix already used for pemja's identical issue (patches/pemja/0.6.2/0001-...). Added the missing python-wheels checkout + patch-apply steps this package's workflow didn't have yet. --- .github/workflows/build-cysignals.yml | 17 +++++---- ...ethreading-from-the-cibuildwheel-ena.patch | 38 +++++++++++++++++++ 2 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 patches/cysignals/1.13.0/0001-Drop-cpython-freethreading-from-the-cibuildwheel-ena.patch diff --git a/.github/workflows/build-cysignals.yml b/.github/workflows/build-cysignals.yml index a7e04ae11b3..08fca202059 100644 --- a/.github/workflows/build-cysignals.yml +++ b/.github/workflows/build-cysignals.yml @@ -67,6 +67,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: @@ -79,14 +88,6 @@ jobs: # crashes cibuildwheel's post-build audit step on our self-hosted # runner, which has no host `uv` (gotcha 13). CIBW_BUILD_FRONTEND: build - # Upstream's pyproject.toml (new in 1.13.0) also sets - # tool.cibuildwheel.enable = ["cpython-freethreading"], needed back - # when free-threaded wheels were opt-in. cibuildwheel v4.2.0 (pinned - # above) has removed that enable group entirely - free-threaded - # builds are unconditional now, cp314t is already in this matrix - - # so it hard-errors parsing an unknown group instead of ignoring it. - # Blank it out to override upstream's setting. - CIBW_ENABLE: "" - name: Check the wheel ships the extensions and licence run: | diff --git a/patches/cysignals/1.13.0/0001-Drop-cpython-freethreading-from-the-cibuildwheel-ena.patch b/patches/cysignals/1.13.0/0001-Drop-cpython-freethreading-from-the-cibuildwheel-ena.patch new file mode 100644 index 00000000000..1725f30ac3b --- /dev/null +++ b/patches/cysignals/1.13.0/0001-Drop-cpython-freethreading-from-the-cibuildwheel-ena.patch @@ -0,0 +1,38 @@ +From: Ludovic Henry +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 From 566f94d06bb6f44e7a95209d6b7e5ff63bf2a59a Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 1 Oct 2026 11:33:10 +0000 Subject: [PATCH 4/5] cysignals: fix the licence-file check for meson-python's PEP 639 path The build now succeeds (both earlier fixes held) but the post-build check failed asserting a '.dist-info/LICENSE' entry. meson-python 0.22.0 (the version this workflow's unpinned build dependency resolves to today) implements PEP 639, which places declared license-files under /licenses/ rather than directly in / - the convention older (setuptools-era) tooling used. The wheel does ship the licence, just at '.dist-info/licenses/LICENSE'; only the check's expected path was stale. --- .github/workflows/build-cysignals.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-cysignals.yml b/.github/workflows/build-cysignals.yml index 08fca202059..5d85efa8890 100644 --- a/.github/workflows/build-cysignals.yml +++ b/.github/workflows/build-cysignals.yml @@ -96,7 +96,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 + # /licenses/, not directly in / as older + # (setuptools-era) tooling placed them. + assert any(n.endswith(".dist-info/licenses/LICENSE") for n in names), whl print(whl, "ok") EOF From fa58a991156f9b70e840717a3039f91001821b05 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 1 Oct 2026 14:30:08 +0000 Subject: [PATCH 5/5] cysignals: drop cp312 from the build matrix, unsupported since 1.13.0 1.13.0 raised requires-python from >=3.12 (1.12.6) to >=3.13, so cibuildwheel selects zero build identifiers for cp312 and exits with 'No build identifiers selected' - a real, version-bump break, not something either of the previous two fixes (the enable-group patch, the licence-path check) touches. cp313/cp314/cp314t are unaffected. --- .github/workflows/build-cysignals.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-cysignals.yml b/.github/workflows/build-cysignals.yml index 5d85efa8890..b4277d9aede 100644 --- a/.github/workflows/build-cysignals.yml +++ b/.github/workflows/build-cysignals.yml @@ -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: