Repository navigation
chore(tooling): require uv 0.13.4 and bump setup-uv to v10.3.0 - #3880
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/bogota #3880 +/- ##
=============================================
Coverage 95.09% 95.09%
=============================================
Files 673 673
Lines 40904 40904
Branches 3778 3778
=============================================
Hits 38896 38896
Misses 1397 1397
Partials 611 611
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
fselmo
approved these changes
Oct 21, 2026
fselmo
left a comment
Contributor
There was a problem hiding this comment.
Yeah makes sense to me 👍🏼. Approving but make sure CI failures are figured out before merging.
uv 0.13.4 updates its bundled root certificates for GHSA-hq85-5cpj-mr62.
uv 0.13.4 updates its bundled root certificates for GHSA-hq85-5cpj-mr62.
danceratopz
force-pushed
the
uv-0.13.4
branch
2 times, most recently
from
October 21, 2026 15:19
bee7f59 to
82614f3
Compare
spencer-tb
approved these changes
Oct 21, 2026
uv 0.13.4 resolves pypy3.11 to PyPy 8 (pypy3.11.16+), which uses the pp80 ABI tag. Our compiled dependencies ship no pp80 wheels yet, so the PyPy jobs built cryptography from source and failed without OpenSSL headers. Pin 3.11.15, the newest PyPy 7.3 release uv 0.13.4 can download.
danceratopz
force-pushed
the
uv-0.13.4
branch
from
October 21, 2026 15:46
82614f3 to
eaab0d3
Compare
jtraglia
pushed a commit
to ethereum/consensus-specs
that referenced
this pull request
Oct 21, 2026
This sets `required-version = ">=0.13.4"` in `pyproject.toml` because older uv versions trust a root CA whose intermediate has been compromised ([GHSA-hq85-5cpj-mr62](GHSA-hq85-5cpj-mr62)). Contributors on an older uv will need to upgrade (e.g., with `uv self update`) before running any `make` commands. CI is unaffected since it already installs the latest uv. Related to: ethereum/execution-specs#3880
joblib's bundled cloudpickle fails to import on PyPy 7.3.22+, whose pickle.Pickler has no dispatch table (cloudpipe/cloudpickle#592). The BLS12-381 helpers now fall back to functools.lru_cache, so fill-pypy runs on PyPy 3.11.15 until a fixed cloudpickle release ships.
2 tasks done
marioevz
pushed a commit
that referenced
this pull request
Oct 21, 2026
Astral stopped publishing bookworm uv images after 0.9.30, so the python3.12-bookworm-slim base is stuck below the uv 0.13.4 that #3880 requires and the repository image fails to build. Use the python3.12-trixie-slim tag, which follows current uv.
fselmo
added a commit
that referenced
this pull request
Oct 21, 2026
Astral stopped publishing bookworm uv images after 0.9.30, so the python3.12-bookworm-slim base is stuck below the uv 0.13.4 that #3880 requires and the repository image fails to build. Use the python3.12-trixie-slim tag, which follows current uv.
This was referenced Oct 22, 2026
8 tasks done
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.
Description
uv 0.13.4 fixes GHSA-hq85-5cpj-mr62. Older uv versions bundle and trust a root CA whose intermediate has been compromised. Astral recommends upgrading immediately. This PR moves CI and local development to uv 0.13.4.
Changes:
.github/actions/setup-uvfrom 0.10.4 to 0.13.4. This composite action is what installs uv in CI. TheUV_VERSIONrepo variable is already set to 0.13.4, but no workflow on this branch reads it.astral-sh/setup-uvfrom v7.5.0 to v10.3.0. None of its breaking changes affect us. v10 only disables caching on sensitive events whenenable-cacheisauto, and we set it totrue. v9 stops pruning the uv cache by default, so CI caches may be somewhat larger. v8 only changes custom manifest files, which we don't use.pypy3.11.15. uv 0.13.4 resolvespypy3.11to PyPy 8 (pypy3.11.16and newer), which uses thepp80ABI tag. Our compiled dependencies ship nopp80wheels yet, so the PyPy jobs tried to buildcryptographyfrom source and failed. 3.11.15 is the newest PyPy 7.3 release uv 0.13.4 can download (it no longer offers 3.11.13, which CI used before this PR). The pin lives in apypyJustfile variable, thesetup-env-pypyaction, and the PyPy jobs intest.yamlandbenchmark.yaml.pickle.Picklerno longer has adispatchtable. The cloudpickle bundled with joblib (1.5.2 and the latest 1.6.0) fails to import because of this (cloudpipe/cloudpickle#592, fix pending in #606), which brokefill-pypyat the EIP-2537 conftest. The BLS12-381 helpers now catch that import error and fall back to an in-processfunctools.lru_cache. This is the one change outside CI and tooling, so please review it. It can be reverted once a fixed cloudpickle ships in joblib.required-versionin bothpyproject.tomlfiles from>=0.7.0to>=0.13.4, with a comment linking the advisory. Update the minimum version indocs/dev/deps_and_packaging.md.Decision for reviewers: require all contributors to upgrade
Raising
required-versionmakes every uv command in the repo fail for anyone on an older uv:I think this is the responsible choice. The fix is one command, and without it contributors would keep using a uv that trusts the compromised CA whenever it downloads packages or Python builds.
uv.lockhashes protect locked installs, but not new resolutions,uvx, or Python downloads. Anyone who installed uv with Homebrew or pip needs to upgrade it there, becauseuv self updateonly works for the standalone installer. Local Docker images built fromghcr.io/astral-sh/uv:python3.12-bookworm-slimneed a fresh pull.Verification
Run locally with uv 0.13.4:
uv lock --check(uv.lockunchanged),just static,just lint-actions,just test-packaging,just test-tests,just test-tests-pypy,just fill-pypy(15048 passed on PyPy 3.11.15, run with an empty uv cache and Python install dir), and a Cancun fill oftests/cancun/eip4844_blobs/test_blob_txs.py. With uv 0.10.4,uv runfails with the error above.Related Issues or PRs
N/A.
Checklist
just static<type>(<area>): <description>, where<type>and<area>come from an appropriateC-<type>, respectivelyA-<area>, label. The title should match the target squash commit message.Cute Animal Picture