ci(windows): pin uv to Python 3.11 so it ignores the preinstalled 3.14#30704
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Greptile SummaryFixes intermittent Windows CI failures caused by uv resolving the preinstalled Python 3.14 instead of the choco-installed 3.11, because PATH ordering between the two interpreters is not guaranteed across shells on the
Confidence Score: 5/5Safe to merge — the change is scoped entirely to the Windows CI job and tightens interpreter selection from PATH-dependent to version-pinned. Both changes work together: the job-level env var covers all uv invocations (venv, build, etc.) while the explicit No files require special attention.
|
| Filename | Overview |
|---|---|
| .circleci/config.yml | Adds UV_PYTHON: "3.11" job-level env var and replaces the PATH-dependent (Get-Command python).Source with an explicit --python 3.11 version request, preventing the preinstalled Python 3.14 from winning on non-deterministic PATH ordering. |
Reviews (1): Last reviewed commit: "ci(windows): pin uv to Python 3.11 so it..." | Re-trigger Greptile
Relevant issues
The
using_litellm_on_windowsjob fails intermittently on the dependency install:The job installs Python 3.11.0 via choco, then picks the interpreter for uv with
(Get-Command python).Source. Thewin/defaultimage ships Python 3.14.5 preinstalled atC:\Python314, and the dependency-install step runs in a fresh shell where the machine PATH ordering between the preinstalled 3.14 and the choco-installed 3.11 is not guaranteed. WhenGet-Command pythonlands on 3.14, uv aborts because the project requires>=3.10, <3.14.This is luck-of-the-draw, not a code change: the same config passes on adjacent commits and on staging when PATH happens to surface
C:\Python311first. Recent evidence is a staging run that resolvedC:\Python311\python.exeand passed minutes before a branch run that resolvedC:\Python314\python.exeand failed, both on identical config.Linear ticket
N/A
Pre-Submission checklist
make test-unit@greptileaiand received a Confidence Score of at least 4/5 before requesting a maintainer reviewNote on tests: this is a CI-config-only change; the regression coverage is the Windows job itself, which now selects the interpreter by version request instead of by PATH order
Screenshots / Proof of Fix
The fix stops trusting PATH order and tells uv to select Python by version, so it resolves the 3.11 interpreter and ignores the preinstalled 3.14 regardless of ordering.
UV_PYTHON: "3.11"is set at the job level so every uv invocation (sync, plus theuv venvanduv buildin the wheel-guard step, which carries the same latent flake) targets 3.11.Before: the failing run resolved
C:\Python314\python.exeand aborted at dependency install with the error above.After: this branch's
using_litellm_on_windowsrun resolvesC:\Python311\python.exeand goes green:Run: https://app.circleci.com/pipelines/github/BerriAI/litellm/82399/workflows/6dbb878b-9706-4468-9cba-694f10459f3c/jobs/1850713
Type
🚄 Infrastructure
🐛 Bug Fix
Changes
In
using_litellm_on_windows, setUV_PYTHON: "3.11"at the job level and change the sync from--python (Get-Command python).Sourceto--python 3.11. uv treats--python 3.11as a version request and selects the choco-installed 3.11 interpreter, so the image's preinstalled 3.14 no longer wins on PATH