Repository navigation
ci: test Python 3.15 and 3.15t as supported versions - #298
Merged
Merged
Conversation
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.
Summary
CPython 3.15.0 is out. This adds 3.15 to the
pytestmatrix and the 3.15 classifier.The
free-threadedsmoke job gains a 3.15t entry with the same extras as 3.14t.3.15 stays out of the
floorsmatrix for now. Every target fails there: the orjson floor (3.11.1) predates the first 3.15 wheels (3.12.0), the fastapi and faststream targets pin pydantic floors whose pydantic-core predates the first 3.15 wheels (2.48.0), and the fastmcp and litestar targets pull PyYAML, which has no 3.15 wheels in any release. The floors job installs with--no-build, so it cannot pass on 3.15. Users on 3.15 get newer versions that install, andpytestcovers those. Add 3.15 tofloorsonce those are resolved.Changes
_checks.yml: add 3.15 topytest. Add a 3.15t entry tofree-threaded.pyproject.toml: add theProgramming Language :: Python :: 3.15classifier.README.mdsays lite-bootstrap runs on free-threaded 3.14t and 3.15t.tests/test_types.py: testrepr(UNSET)directly. On 3.14 the only caller wasdataclassesitself: it formats the class signature whenFastAPIConfigis created, and that formats theUNSETdefault. 3.15 no longer does that at class creation, soUnsetType.__repr__dropped out of coverage and the 3.15pytestjob failed the 100% gate.Checklist
free-threadedsmoke job passes locally on 3.15.0tlite_bootstrap/types.pyfully; the full suite stays at 100% on 3.14pytestjob on 3.15.0 runs only in CI:pyroscope-iohas no 3.15 wheel and builds from source with Rust, which the machine I tested on lacksfloorsinstall fails locally on 3.15 for the reason above