Skip to content

Replace 3.14t with 3.15t in the CI matrix - #224

Merged
jaraco merged 2 commits into
mainfrom
3.15t
Oct 20, 2026
Merged

jaraco merged 2 commits into
mainfrom
3.15t

Conversation

@jaraco

@jaraco jaraco commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Closes #223.

Replaces the free-threaded 3.14t entries (all three platforms) with 3.15t. 3.15t is the first free-threaded build with PEP 803 abi3t, which neither 3.14t nor 3.15 reaches. 3.15t is blocking. The pre-release handling in test-suite.yml is left alone; bumping Python versions now that 3.15 is out is a separate PR.

Stability assessment

I checked the latest main CI on 93 downstream projects that already run 3.14t, plus wheel availability and source builds on 3.15.0t:

  • Already green on 3.14t: about 87 of 93 projects. 3.15 (with the GIL) is green on 86.
  • No cp315t wheels: cryptography, cffi, lxml, pydantic-core, coverage, aiohttp, numpy, pymongo and others are fine. cryptography ships abi3t wheels. pyyaml, psutil, zstandard and pynacl have no cp315t wheels but build from source.
  • Expected to fail on 3.15t:
    • New failures: bcrypt 5.0.0 has no cp315t wheel, and its sdist pins PyO3 0.26, which can't build for 3.15. That affects everything that depends on fabric/paramiko: jaraco.fabric, jaraco.net and recapturedocs.
    • Already failing on 3.14t and likely to carry over: jaraco.home (pyobjc on Linux), jaraco.postgres (psycopg2-binary), configparser (2 test failures).

That makes about 6 expected failures. The affected projects can drop or skip 3.15t locally until their dependencies catch up (e.g. bcrypt shipping 3.15t wheels).

🤖 Generated with Claude Code

…ailures.

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 #223

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread .github/workflows/test-suite.yml Outdated
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') }}

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't want to conflate these concerns. The reason 3.15 is listed here is because it was a pre-release. It's no longer a pre-release, but I don't want to bump this to 3.16 here; that'll happen in a separate PR.

Comment thread .github/workflows/test-suite.yml Outdated
# (jaraco/skeleton#222).
if: >-
(inputs.python == '3.15' || startsWith(inputs.python, 'pypy'))
(startsWith(inputs.python, '3.15') || startsWith(inputs.python, 'pypy'))

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same concern as above.

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 <noreply@anthropic.com>
@jaraco jaraco changed the title Replace 3.14t with 3.15t in the CI matrix (non-blocking) Replace 3.14t with 3.15t in the CI matrix Oct 20, 2026
@jaraco
jaraco merged commit 4ed9709 into main Oct 20, 2026
32 of 36 checks passed
@jaraco
jaraco deleted the 3.15t branch October 20, 2026 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a free-threaded 3.15t entry to the test matrix

1 participant