#1746·OCRmyPDF

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.lock to 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.