Repository navigation
ci: test on Python 3.14 and add its classifier - #326
Conversation
Bumps grpcio, grpcio-status, pyyaml, markupsafe, msgpack and google-crc32c in uv.lock so the 3.14 job installs wheels instead of building from source.
There was a problem hiding this comment.
Code Review
This pull request adds Python 3.14 to the list of supported Python version classifiers in pyproject.toml. The reviewer correctly points out that Python 3.14 is not yet officially released and its classifier is unsupported by PyPI, which will cause package validation or upload failures. It is recommended to remove this classifier.
ajperel
left a comment
There was a problem hiding this comment.
Thanks!
For my own learning can you explain the uv.lock changes at a high level and why we needed to do them more. I'm not too familiar with python package management.
|
@ajperel Thanks for the review! Yeah so uv.lock is basically package-lock.json, it pins exact versions so everyone installs the same thing. This PR bumps six packages that contain compiled C code to releases with python 3.14 builds, otherwise the new CI job would have had to compile them from source (slow and flaky to do in CI). You rarely see this in node because most npm packages are pure js and work on any node version. python packages with C code ship a separate prebuilt binary per OS and python version. uv.lock has to list all of these binaries which is why the diff is quite large even though we are only bumping 6 packages. |
Python 3.14 is a supported Cloud Functions runtime and the test suite already passes on it, but CI only exercises 3.10 and 3.12.
This adds 3.14 to the CI test matrix and the package classifiers, keeping 3.10 and
requires-pythonunchanged.Verified by running pytest on 3.10, 3.12 and 3.14 locally, plus ruff and mypy on 3.10.