Releases: astral-sh/uv
Release list
0.12.12
Release Notes
Released on 2026-09-09.
The executables in our macOS and Windows release archives and uv and uv_build wheels are now code-signed. macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables verification of the release publisher and binary integrity, supports publisher-based allowlisting, and should reduce security warnings and antivirus false positives.
Bug fixes
- Exclude distributions uploaded after the
exclude-newercutoff from lockfiles and generated requirement hashes (#21539)
Install uv 0.12.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.12/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.12/uv-installer.ps1 | iex"Download uv 0.12.12
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/uvYou 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>0.12.11
Release Notes
Released on 2026-09-08.
Preview features
- Generate missing artifact hashes when exporting
pylock.tomlfiles to ensure they conform to PEP 751 (#20146) - Warn when
pylock.tomlartifact hash tables are empty, which will be rejected in a future uv release (#21462)
Performance
- Speed up installs that overwrite existing files by eliminating per-file temporary directories for atomic hard-link, symlink, and reflink replacements (#21478)
- Speed up installs that merge copied wheels into existing environments by replacing per-file temporary directories with adjacent temporary files (#21468)
- Speed up local wheel installs by replacing the shared ZIP cursor lock with positioned reads (#21500)
- Speed up local wheel installs by reusing ZIP readers and buffers across extracted files (#21499)
- Avoid transitive dependency checks and unnecessary resolution when
uv pip install --no-depsfinds the requested packages already installed (#21523)
Bug fixes
- Verify source archives against hashes recorded in
uv.lockbefore reading their metadata or running their build backends (#21223) - Verify supplied hashes for registry requirements pinned with
===under both--verify-hashesand--require-hashes(#21543) - Apply hashes from public-version pins to matching local versions when no exact local-version hash is provided (#21544)
- Support PowerShell virtual environment activation from UNC paths, including WSL paths (#19159)
- Trim surrounding whitespace from entries in
.python-versionand.python-versionsfiles (#21529) - Suppress
VIRTUAL_ENVmismatch warnings foruv add --no-sync,uv remove --no-sync, anduv add --frozen(#21496) - Warn and continue when
uv python listcannot query an interpreter (#21498)
Documentation
- Restore TOML syntax highlighting for
exclude-newerexamples (#21534)
Install uv 0.12.11
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.11/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.11/uv-installer.ps1 | iex"Download uv 0.12.11
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/uvYou 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>0.12.10
Release Notes
Released on 2026-09-04.
Enhancements
- Attempt to revoke short-lived PyPI trusted-publishing tokens after
uv publishcompletes, including when publishing fails (#21423)
Preview features
- Omit
exclude-newer-packagesettings for packages outside the resolution fromuv.lockwith themissing-exclude-newer-package-lockpreview feature (#21455) - Show terminal dependency cycles in
uv tree --invertoutput (#21404)
Performance
- Speed up locking large workspaces with conflicts by excluding unrelated extras and dependency groups from conflict simplification (#21399)
- Speed up
uv publishby hashing each artifact in a single blocking task and reusing the buffer across reads (#21389)
Bug fixes
- Prevent
--lockedfrom failing whenexclude-newer-packagesettings differ only for packages outside the resolution (#21454) - Allow
uv lock --checkto reuse a lockfile when an absoluteexclude-newercutoff is moved later (#19571) - Allow
uv lock --checkto reuse a lockfile when a package-specificexclude-newercutoff is disabled (#21450) - Require an explicit
--namewhenuv initwould infer a project name reserved for a Python interpreter (#21395) - Write package-specific
exclude-newercutoffs touv.lockin a deterministic order (#21453)
Install uv 0.12.10
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.10/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.10/uv-installer.ps1 | iex"Download uv 0.12.10
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/uvYou 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>0.12.9
Release Notes
Released on 2026-09-01.
Python
Enhancements
- Add
--no-lockedand--no-frozento disable lock modes enabled byUV_LOCKEDandUV_FROZENfor a single invocation (#21408) - Report the exact command-line lock-mode flag in warnings and errors (#21402)
Performance
- Speed up cold wheel installs by extracting each streaming ZIP archive in a single blocking task and reusing buffers across files (#21372)
Bug fixes
- Update
async_http_range_readerto 0.11.1 to address a potential memory-safety issue when reading metadata ranges from untrusted wheels (#21401) - Remove sensitive headers when redirects cross authentication realms, including same-host redirects that change URL schemes (#21382)
- Redact secrets in signed URLs from retry diagnostics, including nested request errors (#21381)
- Give
--locked,--frozen,--check, and--check-existsprecedence over conflictingUV_LOCKEDandUV_FROZENvalues (#21396) - Prevent concurrent uv processes from redundantly extracting the same local or source-built wheel (#21400)
Install uv 0.12.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.9/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.9/uv-installer.ps1 | iex"Download uv 0.12.9
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/uvYou 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>0.12.8
Release Notes
Released on 2026-08-31.
Enhancements
- Warn about invalid tool directories and continue upgrading valid tools with
uv tool upgrade --all(#21368)
Preview features
- Deduplicate identical files within and across cached wheels with the
content-addressed-cachepreview feature (#21327) - Reduce allocations while extracting content-addressed wheels by reusing the hashing buffer across files (#21340)
- Speed up content-addressed cache cleanup on macOS by reading hard-link counts in bulk (#21344)
Performance
- Prevent concurrent uv processes from downloading and extracting the same remote wheel more than once (#21379)
- Speed up dependency graph construction from large lockfiles by indexing packages during traversal (#21373)
- Extend indexed lockfile traversal to exports, dependency trees, audits, and freshness checks (#21377)
- Speed up warm resolutions by reducing repeated marker interner work (#21300)
Bug fixes
- Do not trust hashes from direct URLs discovered only in wheel metadata when installing with
--require-hashes(#21348) - Use a compatible Azure Storage API version for anonymous and authenticated requests, allowing credential retries when public access is disabled (#21366)
- Redact Azure shared access signature (
sig) query parameters from displayed URLs (#21360) - Treat projects below one-level workspace member globs as standalone instead of aborting workspace discovery (#21341)
Other changes
- Update
astral-tokio-tarto 0.7.0 and use effective sizes when tracking extracted hard links (#21346)
Install uv 0.12.8
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.8/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.8/uv-installer.ps1 | iex"Download uv 0.12.8
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/uvYou 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>0.12.7
Release Notes
Released on 2026-08-27.
Python
- Replace managed Python installations when upgrading to a newer build of the same version (#21323)
Enhancements
- Support Linux
s390x,ppc64le, andloongarch64targets for cross-platform dependency resolution (#21313) - Retry downloads with configured credentials when Azure Storage denies anonymous access to an endpoint configured via
UV_AZURE_ENDPOINT_URL(#21318)
Preview features
- Use content-based directory hashes to deduplicate extracted wheels in the cache with the
content-addressed-cachepreview feature (#19693)
Bug fixes
- Reject source archives with hash mismatches before persisting their extracted contents to the cache (#21248)
Other changes
Install uv 0.12.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-installer.ps1 | iex"Download uv 0.12.7
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/uvYou 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>0.12.6
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_buildrequirements to source-distribution builds (#21078) - Display byte counts below 1 KiB without a fractional part (#21237)
Preview features
- Add
uv workspace metadata --sync --exactto remove packages outside the selected resolution (#21117) - Add the
artifact-hash-filteringpreview feature to makeuv pip compile --generate-hasheshonor--only-binaryand--no-binary(#21235) - Respect package-specific
exclude-newercutoffs whenuv checkselects itstyexecutable (#21227) - Preserve virtual-environment hints from
tar-codecsource-distribution errors when the base interpreter is outside abindirectory (#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 buildand non-editable first-party workspace packages whenno-buildis enabled (#21294) - Reuse configured index credentials during
uv tool upgradewhen 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
.pyas local script paths (#21144) - Use directory creation times consistently across libc implementations for directory
cache-keysentries (#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 | shInstall 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
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/uvYou 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>0.12.5
Release Notes
Released on 2026-08-14.
Python
- Add CPython 3.10.21, 3.11.16, and 3.12.14 (#21138)
- Prefer newer versions and standard variants when selecting between equally prioritized Python interpreters (#21134)
Enhancements
- Simplify errors and hints for invalid editable requirements, and redact credentials in requirement URLs (#21130)
Preview features
- Allow
--indexand--default-indexto select configured package indexes by name with theindex-by-namepreview feature (#17455) - Include distribution artifact URLs and hashes in CycloneDX SBOM exports by default (#21131)
- Fall back to logical file sizes when using
cache-physical-spaceon filesystems that do not support physical-space accounting (#21133)
Bug fixes
- Resolve relative package index paths in PEP 723 scripts against the script directory (#21097)
Install uv 0.12.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.5/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.5/uv-installer.ps1 | iex"Download uv 0.12.5
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/uvYou 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>0.12.4
Release Notes
Released on 2026-08-13.
Enhancements
- Prefer post-quantum key exchange and enable opt-in TLS diagnostics (#21054)
- Accept whitespace before versions in noncompliant wildcard comparisons such as
Requires-Python: >= 3.5.*(#21012) - Report a specific error when a PEP 723 closing tag contains trailing whitespace or other content (#20944)
- Omit source-span carets from diagnostics for empty PEP 508 requirements (#21094)
Preview features
- Add
uv check --no-install-projectand respectUV_NO_INSTALL_PROJECTto install dependencies without building or installing the project (#21085) - Make the ty subprocess invoked by
uv checkhonor uv's color and progress settings, including quiet mode (#21086)
Performance
- Speed up resolutions with long runs of unavailable package versions by coalescing gaps in the resolver's version ranges (#20804)
- Speed up Simple API parsing by deserializing PyPI and Pyx file metadata directly (#21041)
Bug fixes
- Use windowed
pythonw.exelaunchers for virtual environments created from managed Python minor-version links (#19235) - Allow
uv lockto proceed when.venvis an unusable project environment (#21068) - Respect
fork-strategywhen ordering forks created fromenvironmentsor existing lockfileresolution-markers(#21000) - Preserve consecutive wildcard Python minor-version exclusions such as
!=3.11.*, !=3.12.*inuv.lock(#21045) - Preserve inline comments on the final item in dependency arrays when
uv addupdates it (#21008) - Recover from stale base-interpreter cache metadata when an existing virtual environment exposes a version mismatch (#21073)
- Prevent interpreter cache reuse across different
PYTHONEXECUTABLEand__PYVENV_LAUNCHER__overrides (#21075) - Show standard styling, usage guidance, and line termination for invalid
uv version --bumpvalues (#21076)
Install uv 0.12.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.4/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.4/uv-installer.ps1 | iex"Download uv 0.12.4
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/uvYou 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>0.12.3
Release Notes
Released on 2026-08-07.
Python
- Add CPython 3.13.15 (#20997)
Preview features
- Add
--output-formatto select automatic, human-readable, or raw-byte output foruv cache size(#20992) - Preserve JSON output from
uv workspace metadata --quietwhile suppressing diagnostics (#20991) - Reduce memory usage for large workspaces by streaming
uv workspace metadataJSON output (#20990)
Performance
- Reduce Linux startup latency by initializing the workspace cache before spawning another thread (#20989)
- Reuse compiled workspace exclusion patterns during workspace discovery (#20988)
- Speed up conflict-heavy resolutions by avoiding materialized range complements (#20982)
- Avoid slow procfs reads during Python interpreter discovery on Linux (#20987)
Documentation
- Add PEP 740 attestations to the GitHub Actions publishing example (#20986)
- Restrict the GitHub Actions publishing example to Python version tags (#20973)
- Correct
--python-pinto--pin-pythonin theuv init --bareexample (#20876)
Install uv 0.12.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-installer.ps1 | iex"Download uv 0.12.3
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/uvYou 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>