fix: cap requires-python <3.14 so uv can't pick a Python that fails to build litellm/pyo3#49
Closed
shehabyasser-scale wants to merge 1 commit into
Closed
fix: cap requires-python <3.14 so uv can't pick a Python that fails to build litellm/pyo3#49shehabyasser-scale wants to merge 1 commit into
shehabyasser-scale wants to merge 1 commit into
Conversation
…o build litellm/pyo3
The v0.5 package (vero/pyproject.toml) declares requires-python = ">=3.11",
which is too permissive. `uv run` picks the newest installed interpreter
(e.g. Python 3.14). The transitive dependency litellm 1.92.0 (pulled via
scale-vero[optimize] -> openai-agents[litellm]) has a Rust/PyO3 core that
fails to build on Python 3.14:
error: the configured Python interpreter version (3.14) is newer than
PyO3's maximum supported version (3.13)
Repro on a machine whose default uv-managed Python is 3.14:
cd vero
uv run vero harbor run ...
uv resolves to Python 3.14 (satisfies >=3.11), then the litellm build fails
with the PyO3 error above. Pinning to <3.14 forces uv to select 3.11-3.13,
matching PyO3's max supported version. Change is limited to vero/pyproject.toml.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
|
Landed on We hit this exact PyO3-on-3.14 build failure ourselves while running the benchmarks, so this is a real fix — thanks. The cap is now on the SSoT pr2 branch and pr3 is rebased on top; full suite green. We're keeping the manual |
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.
Bug
The v0.5
scale-veropackage (vero/pyproject.tomlonpr2-add-vero) declaresrequires-python = ">=3.11", which is too permissive.uv runpicks the newest installed interpreter (e.g. Python 3.14). The transitive dependencylitellm==1.92.0(pulled viascale-vero[optimize]->openai-agents[litellm]>=0.18.3,<0.19) has a Rust/PyO3 core that fails to build on Python 3.14.Exact PyO3 error
Repro
On a machine whose default
uv-managed Python is 3.14:cd vero uv run vero harbor run ...uvresolves to Python 3.14 (satisfies>=3.11), then thelitellmbuild fails with the PyO3 error above. Capping to<3.14forcesuvto select 3.11-3.13.Fix
Cap the upper bound so
uvcannot select an interpreter that breaks thelitellm/PyO3 build:The repo has no
.github/workflowsCI matrix to reconcile against; the cap simply matches PyO3's max supported version (3.13). Change is limited tovero/pyproject.toml; nothing else is touched.Why
pr2-add-veroand notmainThis supersedes #47 (which targeted
main). The v0.5 package that ships the[optimize]extra as it exists today lives onpr2-add-vero(PR #45), and the sibling fix #48 (agent env) is also based onpr2-add-vero. Basing the fix here lets it flow tomainthrough the stack (pr1 -> main, pr2 -> pr1, pr3 -> pr2).Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
🤖 Generated with Claude Code
Greptile Summary
This PR caps the Python version upper bound in
vero/pyproject.tomlfrom>=3.11to>=3.11,<3.14, preventinguvfrom selecting Python 3.14 on machines where it is installed. The root cause is thatopenai-agents[litellm]pulls in alitellmbuild whose PyO3 Rust core only supports up to Python 3.13.requires-pythoninvero/pyproject.toml; no other files are touched.[tool.ruff] target-version = "py311"setting.Confidence Score: 5/5
Safe to merge — the change is a minimal version constraint tightening with a well-understood root cause and no other files affected.
The single-line cap to
<3.14directly matches PyO3's maximum supported Python version and is consistent with the existing rufftarget-version = "py311". There is no risk of breaking existing 3.11–3.13 users, and the constraint will naturally be relaxed once a future litellm/PyO3 release adds 3.14 support.No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A["uv run vero ..."] --> B{"Python version\nresolution"} B -- "Before fix\n(>=3.11)" --> C["Picks Python 3.14\n(newest available)"] B -- "After fix\n(>=3.11,<3.14)" --> D["Picks Python 3.11–3.13"] C --> E["openai-agents litellm extra\n→ litellm 1.92.0\n→ PyO3 build"] D --> F["openai-agents litellm extra\n→ litellm 1.92.0\n→ PyO3 build"] E --> G["❌ Build fails\nPyO3 max supported: 3.13"] F --> H["✅ Build succeeds"]Reviews (1): Last reviewed commit: "fix: cap requires-python <3.14 so uv can..." | Re-trigger Greptile