Repository navigation
ci: pin the Python interpreter to 3.14 - #146
Merged
Merged
Conversation
Nothing pinned the interpreter, so uv started downloading CPython 3.15.0 once it was released. The min-ha group locks pillow 12.2.0, which ships no 3.15 wheel, so the install fell back to a source build and failed on the missing libjpeg headers before any test ran. Home Assistant runs on 3.14 at both ends of the supported range, so that is the interpreter both legs should test against.
The bump to Home Assistant 2026.10.1 left serialx at 1.8.2, because the bump workflow ran a plain uv lock and the requirement is unpinned. 2026.10.1's usb component imports PortSettingsUpdate, which needs serialx 1.11.0, so the latest leg failed while loading conftest. The floor cannot follow: serialx 1.11.0 does not import against the aioesphomeapi that 2026.7.0 resolves. Pin the floor leg to the 1.8.2 its usb manifest asks for and let the latest leg move to 1.11.0. The bump workflow now upgrades the unpinned component requirements so the next Home Assistant bump picks them up.
g4bri3lDev
force-pushed
the
ci/pin-python-3.14
branch
from
October 12, 2026 15:29
90227a0 to
7df5a9e
Compare
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.
Problem
pytest (min-ha)fails on the release PR (#142) duringuv sync, before any test runs.Nothing pins the interpreter: there is no
.python-versionandrequires-pythonis>=3.14.2with no upper bound. The failing run installed uv 0.13.0, which downloaded CPython 3.15.0. The min-ha group lockspillow==12.2.0, which has no cp315 wheel, so uv built it from source and failed withRequiredDependencyException: jpeg.The last green run on
main(same lockfile) used uv 0.12.24 and CPython 3.14.8.Fix
Add
.python-versioncontaining3.14. uv reads it in CI (both test legs and ruff) and locally, soscripts/testand CI agree. Home Assistant runs on 3.14 across the supported range, so thehacs.jsonfloor does not need to move.Verification
Run locally on Python 3.14 with the pin in place:
scripts/test --min-ha: 240 passedscripts/test: 240 passedruff check .andruff format --check .: clean