uv 0.12.6

0.12.6
Added 2
  • Add uv workspace metadata --sync --exact to remove packages outside the selected resolution
  • Add the artifact-hash-filtering preview feature to make uv pip compile --generate-hashes honor --only-binary and --no-binary
Changed 11
  • Update CPython to use OpenSSL 3.5.8 and libffi 3.4.8
  • Report cache-cleaning space savings from filesystem block allocation and avoid double-counting hard links
  • Limit warnings about unbounded uv_build requirements to source-distribution builds
  • Display byte counts below 1 KiB without a fractional part
  • Respect package-specific exclude-newer cutoffs when uv check selects its ty executable
  • Preserve virtual-environment hints from tar-codec source-distribution errors when the base interpreter is outside a bin directory
Fixed 7
  • Allow explicit uv build and non-editable first-party workspace packages when no-build is enabled
  • Reuse configured index credentials during uv tool upgrade when the tool receipt references the same index
  • Ensure full 40-character Git commit pins resolve to the requested object instead of a SHA-named branch
  • Prevent TLS segfaults in riscv64 musl release binaries
  • Preserve dependencies selected by recursive extras when markers mix production and extra conditions
  • Preserve version constraints from transitively referenced recursive extras
  • Resolve repository-relative Git archive dependencies inside the checkout during the initial uv sync

From uv

Release Notes

Released on 2026-08-25.

Python
  • Update CPython to use OpenSSL 3.5.8 and libffi 3.4.8 #21295)
Enhancements
  • Report cache-cleaning space savings from filesystem block allocation and avoid double-counting hard links (#21261)
  • Limit warnings about unbounded uv_build requirements to source-distribution builds (#21078)
  • Display byte counts below 1 KiB without a fractional part (#21237)
Preview features
  • Add uv workspace metadata --sync --exact to remove packages outside the selected resolution (#21117)
  • Add the artifact-hash-filtering preview feature to make uv pip compile --generate-hashes honor --only-binary and --no-binary (#21235)
  • Respect package-specific exclude-newer cutoffs when uv check selects its ty executable (#21227)
  • Preserve virtual-environment hints from tar-codec source-distribution errors when the base interpreter is outside a bin directory (#21146)
Performance
  • Enable profile-guided optimization for Linux x86-64 release binaries (#21001)
  • Enable profile-guided optimization for Windows x86-64 release binaries (#21003)
  • Enable profile-guided optimization for macOS ARM64 release binaries (#21002)
  • Enable profile-guided optimization for Linux ARM64 release binaries (#21004)
  • Speed up syncing projects with many activated conflict items by reusing their encoded representation (#21148)
Bug fixes
  • Allow explicit uv build and non-editable first-party workspace packages when no-build is enabled (#21294)
  • Reuse configured index credentials during uv tool upgrade when the tool receipt references the same index (#21275)
  • Ensure full 40-character Git commit pins resolve to the requested object instead of a SHA-named branch (#21224)
  • Prevent TLS segfaults in riscv64 musl release binaries (#21158)
  • Preserve dependencies selected by recursive extras when markers mix production and extra conditions (#21181)
  • Preserve version constraints from transitively referenced recursive extras (#21209)
  • Resolve repository-relative Git archive dependencies inside the checkout during the initial uv sync (#21264)
  • Return an error instead of panicking when a bearer token cannot be encoded as an HTTP header (#21282)
  • Do not misclassify package URLs ending in .py as local script paths (#21144)
  • Use directory creation times consistently across libc implementations for directory cache-keys entries (#21137)
  • Promote human-readable sizes to the next unit at rounding boundaries (#21136)
Other changes
  • Add Python 3.15 release-candidate Docker images (#21293)
  • Raise the minimum supported Rust version to 1.96 and update the repository toolchain to Rust 1.98 (#21258)
Install uv 0.12.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.6/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.6/uv-installer.ps1 | iex"
Download uv 0.12.6
FilePlatformChecksum
uv-aarch64-apple-darwin.tar.gzApple Silicon macOSchecksum
uv-x86_64-apple-darwin.tar.gzIntel macOSchecksum
uv-aarch64-pc-windows-msvc.zipARM64 Windowschecksum
uv-i686-pc-windows-msvc.zipx86 Windowschecksum
uv-x86_64-pc-windows-msvc.zipx64 Windowschecksum
uv-aarch64-unknown-linux-gnu.tar.gzARM64 Linuxchecksum
uv-i686-unknown-linux-gnu.tar.gzx86 Linuxchecksum
uv-powerpc64le-unknown-linux-gnu.tar.gzPPC64LE Linuxchecksum
uv-riscv64gc-unknown-linux-gnu.tar.gzRISCV Linuxchecksum
uv-s390x-unknown-linux-gnu.tar.gzS390x Linuxchecksum
uv-x86_64-unknown-linux-gnu.tar.gzx64 Linuxchecksum
uv-armv7-unknown-linux-gnueabihf.tar.gzARMv7 Linuxchecksum
uv-aarch64-unknown-linux-musl.tar.gzARM64 MUSL Linuxchecksum
uv-i686-unknown-linux-musl.tar.gzx86 MUSL Linuxchecksum
uv-riscv64gc-unknown-linux-musl.tar.gzRISCV MUSL Linuxchecksum
uv-x86_64-unknown-linux-musl.tar.gzx64 MUSL Linuxchecksum
uv-arm-unknown-linux-musleabihf.tar.gzARMv6 MUSL Linux (Hardfloat)checksum
uv-armv7-unknown-linux-musleabihf.tar.gzARMv7 MUSL Linuxchecksum
Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/uv

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
View original

Upgraded? How did it go?

Discussion