Repository navigation
fix(deps): pin cp314-wheel versions for Python 3.14 to avoid source builds - #1107
Conversation
|
Understand this PR’s impact Explore downstream dependencies and potential security impact with Blast Radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe Python workspace now constrains Python 3.14 dependency resolution to package releases with pre-built ChangesPython 3.14 wheel resolution
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit reads each line, Comment |
…uilds On Python 3.14, uv resolved several native packages (grpcio, aiohttp, cffi, rpds-py, markupsafe, msgpack, pyyaml, gpiod) to versions that only ship cp312/cp313 wheels, forcing slow source builds in CI. Add constraint-dependencies with python_version >= '3.14' markers to steer the resolver to the first releases that ship pre-built cp314 wheels. Versions for Python <3.14 remain unchanged. This should significantly reduce CI time for Python 3.14 jobs by eliminating source compilation of native packages like grpcio.
a04d8a8 to
a1ca8b4
Compare
Problem
On Python 3.14, the
uv.lockfile resolved several native packages to versions that only shipcp312/cp313wheels, forcing slow source builds from sdist in CI. The CI job took 22+ minutes, with much of that time spent compiling packages likegrpciofrom source.Root Cause
The existing
constraint-dependenciesinpython/pyproject.tomlonly covered 5 packages (pydantic, pillow, scipy, numpy, pywavelets), but 8 more native packages were still being resolved to versions withoutcp314wheels:Changes
python/pyproject.toml— Added 8 newconstraint-dependencieswith; python_version >= '3.14'markers, forcing uv to resolve versions that shipcp314wheels on Python 3.14. Versions for Python <3.14 are unchanged.python/uv.lock— Regenerated with split resolutions: older versions for Python <3.14 (backward-compatible) and newer versions withcp314wheels for Python ≥3.14..github/workflows/python-tests.yaml— Updated theUV_LOCK_TIMEOUTcomment.Expected Impact
CI on Python 3.14 should see a significant speedup — no native packages will need source compilation, bringing 3.14 job times closer to 3.12/3.13.