github astral-sh/uv 0.9.20

16 hours ago

Release Notes

Released on 2025-12-29.

The 0.9.19 release failed to publish to crates.io and GitHub Releases, but was successfully published to PyPI, the GitHub Container Registry, and DockerHub. This is a re-release of 0.9.19, with the internal crate versions incremented to resolve the crates.io publish failure. The changelog entries for 0.9.19 are reproduced here.

Python

  • Add CPython 3.15.0a3 (#17165)

Enhancements

  • Allow uv pip compile to install missing python interpreters in cases where it would otherwise fail (#17216)
  • Avoid creating file contents with uv init --bare --script (#17162)
  • Respect --torch-backend in uv tool commands (#17117)
  • Support comma-separated values in --no-binary and --only-binary (#17185)

Preview features

  • Summarize package changes in uv sync with JSON output format (#16981)

Performance

  • Avoid two hot String allocations in deserialization (#17221)
  • Cache NVIDIA-hosted wheels by default (#17164)

Bug fixes

  • Avoid enforcing incorrect hash in mixed-hash settings (#17157)
  • Fix retry counts in cached client (#17104)
  • Respect UV_PYTHON_DOWNLOAD_MIRROR in uv python list (#16673)
  • Support remote pylock.toml files (#17119)
  • Avoid flagging proxied Git URLs as ambiguous authority (#17234)
  • Fix dropped support of - in pip constraints, overrides, and excludes (#17188)

Install uv 0.9.20

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.9.20/uv-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.9.20/uv-installer.ps1 | iex"

Download uv 0.9.20

File Platform Checksum
uv-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
uv-x86_64-apple-darwin.tar.gz Intel macOS checksum
uv-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
uv-i686-pc-windows-msvc.zip x86 Windows checksum
uv-x86_64-pc-windows-msvc.zip x64 Windows checksum
uv-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
uv-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
uv-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
uv-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
uv-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
uv-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
uv-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
uv-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
uv-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
uv-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
uv-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
uv-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
uv-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

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>

Don't miss a new uv release

NewReleases is sending notifications on new releases.