Python 3.15 support: blocked on pydantic-core wheels
Author: jbarlow83Created Sep 14, 2026Updated Sep 14, 2026
Labelsthird party issuedependencies
Python 3.15 test jobs have been removed from CI because two dependencies cannot be installed on 3.15 from wheels, so the jobs failed at uv sync before running any tests. This issue tracks what has to happen before the 3.15 jobs are re-enabled.
Blockers
- pydantic-core — pydantic 2.13.5 pins
pydantic-core==2.46.5, which has no cp315 wheels. Wheels exist for pydantic-core 2.49.0, pinned by pydantic 2.14.0b2. Waiting on the pydantic 2.14 release.- pydantic/pydantic#13173
- pi-heif — no cp315 wheels, and none are coming: upstream discontinued the package and 1.4.0 is its final release (bigcat88/pillow_heif#431). Switched to optional pillow-heif.
- lxml — resolved by updating
uv.lockto lxml 6.1.3, which has cp315 wheels.
Neither pi-heif nor pillow-heif is packaged by Debian, Fedora or Ubuntu, so either choice stays a PyPI-only optional dependency.
Re-enabling
Add "3.15" back to the python: lists in the test_linux, test_macos and test_windows matrices in .github/workflows/build.yml, with an experimental: true include entry while 3.15 is pre-release. The continue-on-error: ${{ matrix.experimental || false }} switch is still in place for this.
Source: ocrmypdf/OCRmyPDF