chore: add support for Python 3.14 - #834
Open
mconflitti-pbc wants to merge 1 commit into
Open
Conversation
|
☂️ Python Coverage
Overall Coverage
New FilesNo new covered files... Modified FilesNo covered modified files...
|
Test on Python 3.14 in CI and in `just all-tests`. macOS and Windows now run both 3.13 and 3.14, so the newest version gets cross-platform coverage without dropping the previous one. Python 3.14 makes `functools.partial` objects descriptors. httpretty 1.1.4 (the latest release) mocks TLS by assigning a partial to the `ssl.SSLContext.wrap_socket` class attribute, so the context is now bound as the first positional argument and httpretty mistakes it for the socket. This broke every HTTPS test. `conftest.py` drops the extra argument until httpretty ships a fix. The package needs no source changes: `requires-python` is `>=3.8` with no upper bound, and the full suite passes on 3.8, 3.13, and 3.14.
mconflitti-pbc
force-pushed
the
chore/py3.14
branch
from
August 4, 2026 16:23
4a4ea02 to
e9c8d00
Compare
mconflitti-pbc
requested review from
amol-,
edavidaja and
joshyam-k
and removed request for
edavidaja
August 4, 2026 18:43
amol-
approved these changes
Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Python 3.14 to the supported versions: CI matrix,
just all-tests, and the changelog. No source changes are needed —requires-pythonis>=3.8with no upper bound.CI matrix
The ubuntu matrix gains 3.14. macOS and Windows now run both 3.13 and 3.14, so 3.14 gets cross-platform coverage without dropping the previous version.
An earlier revision of this PR moved macOS/Windows from 3.13 to 3.14 instead of adding to it. That renamed two job names that
mainbranch protection requires, so the PR could never satisfy them. Running both versions restores those names.The conftest.py shim
Python 3.14 makes
functools.partialobjects descriptors. httpretty 1.1.4 (the latest release, from 2022) mocks TLS by assigning a partial to thessl.SSLContext.wrap_socketclass attribute. On 3.14 that partial now binds the context as the first positional argument, and httpretty mistakes it for the socket. This broke every HTTPS test.conftest.pywrapshttpretty.core.fake_wrap_socketand drops the leadingSSLContextargument. Anisinstancecheck makes it a no-op on 3.13 and earlier.Tracked for removal in #833, which proposes replacing httpretty with a maintained library (mocket).
Verification
Full suite run locally on 3.8, 3.13, and 3.14 (macOS):
rsconnect/pyproject.py, where five bare field annotations are statements on 3.13 but not on 3.14.Windows on 3.14 is untested locally, and the shim touches
ssland socket mocking — worth watching that job.Relates to #833.