From 1270e3326b4d8dff1782fce0c0f06e963ecac62e Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Mon, 19 Oct 2026 13:30:49 -0700 Subject: [PATCH 1/2] Replace free-threaded 3.14t with 3.15t in the CI matrix, tolerating failures. Free-threaded 3.15 exercises PEP 803 abi3t paths that neither 3.14t nor 3.15 reach. Several downstream dependencies lack cp315t wheels and fail to build from source (e.g. bcrypt, via fabric/paramiko), so the job is allowed to fail for now. Closes jaraco/skeleton#223 Co-Authored-By: Claude Opus 5.5 --- .github/workflows/main.yml | 2 +- .github/workflows/test-suite.yml | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 54c9000e..b607a5ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,7 +23,7 @@ jobs: python: - "3.10" - "3.14" - - "3.14t" + - "3.15t" platform: - ubuntu-latest - macos-latest diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 10d412f4..ce6f5119 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -33,7 +33,9 @@ jobs: run: runs-on: ${{ inputs.platform }} # Tolerate failures on pre-release Pythons (jaraco/skeleton#199) - continue-on-error: ${{ inputs.python == '3.15' }} + # and on free-threaded 3.15, where several dependencies (e.g. bcrypt) + # don't yet build (jaraco/skeleton#223). + continue-on-error: ${{ startsWith(inputs.python, '3.15') }} permissions: contents: read steps: @@ -45,7 +47,7 @@ jobs: # (jaraco/skeleton#161) and PyPy, which often lags on wheels # (jaraco/skeleton#222). if: >- - (inputs.python == '3.15' || startsWith(inputs.python, 'pypy')) + (startsWith(inputs.python, '3.15') || startsWith(inputs.python, 'pypy')) && inputs.platform == 'ubuntu-latest' run: | sudo apt update From 34b3e4816c2e032eb1ab0478d1cd77b20b4952ec Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Tue, 20 Oct 2026 09:26:23 -0700 Subject: [PATCH 2/2] Make 3.15t blocking; keep the pre-release handling scoped to 3.15. Per review, the 3.15 special-casing in test-suite.yml exists because 3.15 was a pre-release, a separate concern from free-threading. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/test-suite.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index ce6f5119..10d412f4 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -33,9 +33,7 @@ jobs: run: runs-on: ${{ inputs.platform }} # Tolerate failures on pre-release Pythons (jaraco/skeleton#199) - # and on free-threaded 3.15, where several dependencies (e.g. bcrypt) - # don't yet build (jaraco/skeleton#223). - continue-on-error: ${{ startsWith(inputs.python, '3.15') }} + continue-on-error: ${{ inputs.python == '3.15' }} permissions: contents: read steps: @@ -47,7 +45,7 @@ jobs: # (jaraco/skeleton#161) and PyPy, which often lags on wheels # (jaraco/skeleton#222). if: >- - (startsWith(inputs.python, '3.15') || startsWith(inputs.python, 'pypy')) + (inputs.python == '3.15' || startsWith(inputs.python, 'pypy')) && inputs.platform == 'ubuntu-latest' run: | sudo apt update