Skip to content

ci: test Python 3.15 and 3.15t as supported versions - #298

Merged
lesnik512 merged 2 commits into
mainfrom
ci/python-3.15
Oct 22, 2026
Merged

lesnik512 merged 2 commits into
mainfrom
ci/python-3.15

Conversation

@lesnik512

@lesnik512 lesnik512 commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Summary

CPython 3.15.0 is out. This adds 3.15 to the pytest matrix and the 3.15 classifier.

The free-threaded smoke job gains a 3.15t entry with the same extras as 3.14t.

3.15 stays out of the floors matrix 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, and pytest covers those. Add 3.15 to floors once those are resolved.

Changes

  • _checks.yml: add 3.15 to pytest. Add a 3.15t entry to free-threaded.
  • pyproject.toml: add the Programming Language :: Python :: 3.15 classifier.
  • README.md says lite-bootstrap runs on free-threaded 3.14t and 3.15t.
  • tests/test_types.py: test repr(UNSET) directly. On 3.14 the only caller was dataclasses itself: it formats the class signature when FastAPIConfig is created, and that formats the UNSET default. 3.15 no longer does that at class creation, so UnsetType.__repr__ dropped out of coverage and the 3.15 pytest job failed the 100% gate.

Checklist

  • The free-threaded smoke job passes locally on 3.15.0t
  • The new test passes on 3.15.0 and covers lite_bootstrap/types.py fully; the full suite stays at 100% on 3.14
  • The full pytest job on 3.15.0 runs only in CI: pyroscope-io has no 3.15 wheel and builds from source with Rust, which the machine I tested on lacks
  • The floors install fails locally on 3.15 for the reason above

@lesnik512
lesnik512 merged commit 8dae606 into main Oct 22, 2026
32 checks passed
@lesnik512
lesnik512 deleted the ci/python-3.15 branch October 22, 2026 06:26
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.

1 participant