0.11.28
huggingface/skills0.11.28Jul 7, 2026by github-actions[bot]
AI Summary
A performance and security-focused release upgrading dependencies and optimizing memory usage throughout the tool.
Key Highlights
- Security update to ZIP library (astral-async-zip) to v0.0.20
- Upgraded GraalPy to 25.1.3
- Extensive performance optimizations to reduce memory allocations
- Improved error logging and rendering
New Features
- Improved trace logs for unexpected error chains
- Performance optimizations (avoiding allocations for various types)
- Support for `uv tree` in dependency-group-only projects
- Standard rendering for tool requirement errors
Full Release Notes
## Release Notes Released on 2026-07-07. ### Security This release updates our ZIP library, [astral-async-zip](https://github.com/astral-sh/rs-async-zip), to v0.0.20, which includes 15 changes that harden our ZIP handling against [parser differentials](https://www.brainonfire.net/blog/2022/04/11/what-is-parser-mismatch/). uv may reject ZIP archives with malformed or ambiguous content that were previously accepted. See the [upstream commits](https://github.com/astral-sh/rs-async-zip/compare/v0.0.18...v0.0.20) for a full list of changes. ### Python - Upgrade GraalPy to 25.1.3 ([#20069](https://github.com/astral-sh/uv/pull/20069)) ### Enhancements - Improve trace logs for unexpected error chains ([#20220](https://github.com/astral-sh/uv/pull/20220)) - Move lockfile update guidance to a hint ([#20219](https://github.com/astral-sh/uv/pull/20219)) - Preserve indentation for multiline error causes ([#20156](https://github.com/astral-sh/uv/pull/20156)) - Render user errors with their cause chains ([#20217](https://github.com/astral-sh/uv/pull/20217)) - Route final command errors through the printer to respect `-q` and `-qq` ([#20163](https://github.com/astral-sh/uv/pull/20163)) - Use standard rendering for `uv build` errors ([#20159](https://github.com/astral-sh/uv/pull/20159)) - Use standard rendering for tool requirement errors ([#20160](https://github.com/astral-sh/uv/pull/20160)) ### Performance - Only compile bytecode for installed distributions in `uv pip install` ([#19914](https://github.com/astral-sh/uv/pull/19914)) - Avoid allocating URL-safe Git revisions ([#20194](https://github.com/astral-sh/uv/pull/20194)) - Avoid allocating canonical Python request strings ([#20193](https://github.com/astral-sh/uv/pull/20193)) - Avoid allocating custom Astral mirror URLs ([#20204](https://github.com/astral-sh/uv/pull/20204)) - Avoid allocating expanded compatibility tags ([#20190](https://github.com/astral-sh/uv/pull/20190)) - Avoid allocating shell strings that need no escaping ([#20196](https://github.com/astral-sh/uv/pull/20196)) - Avoid allocating static ABI descriptions ([#20201](https://github.com/astral-sh/uv/pull/20201)) - Avoid allocating static Windows executable names ([#20200](https://github.com/astral-sh/uv/pull/20200)) - Avoid allocating static dependency table names ([#20199](https://github.com/astral-sh/uv/pull/20199)) - Avoid allocating static platform triple components ([#20195](https://github.com/astral-sh/uv/pull/20195)) - Avoid allocating static resolver report labels ([#20198](https://github.com/astral-sh/uv/pull/20198)) - Avoid allocating static unavailable-version messages ([#20197](https://github.com/astral-sh/uv/pull/20197)) - Avoid allocating unchanged Python download architectures ([#20202](https://github.com/astral-sh/uv/pull/20202)) - Avoid allocating unchanged paths during case normalization ([#20203](https://github.com/astral-sh/uv/pull/20203)) - Avoid allocations when expanding group conflicts ([#20211](https://github.com/astral-sh/uv/pull/20211)) - Avoid allocations when formatting requirements ([#20206](https://github.com/astral-sh/uv/pull/20206)) - Avoid cloning credential lookup services ([#20210](https://github.com/astral-sh/uv/pull/20210)) - Avoid cloning dry-run distributions ([#20209](https://github.com/astral-sh/uv/pull/20209)) - Avoid cloning owned dependency metadata ([#20212](https://github.com/astral-sh/uv/pull/20212)) - Avoid redundant direct URL clones ([#20207](https://github.com/astral-sh/uv/pull/20207)) - Create metadata version errors lazily ([#20205](https://github.com/astral-sh/uv/pull/20205)) - Optimize expanded tag compatibility checks ([#20171](https://github.com/astral-sh/uv/pull/20171)) - Optimize parsing of single-digit three-part versions ([#20118](https://github.com/astral-sh/uv/pull/20118)) ### Bug fixes - Avoid overflow when computing HTTP cache age ([#20178](https://github.com/astral-sh/uv/pull/20178)) - Respect `--upgrade` when `upgrade-package` is configured ([#19955](https://github.com/astral-sh/uv/pull/19955)) - Support `uv tree` in dependency-group-only projects ([#20167](https://github.com/astral-sh/uv/pull/20167)) - Treat cache entries as stale at exact expiration ([#20183](https://github.com/astral-sh/uv/pull/20183)) ## Install uv 0.11.28 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-installer.ps1 | iex" ``` ## Download uv 0.11.28 | File | Platform | Checksum | |--------|----------|----------| | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-pc-windows-msvc.zip.sha256) | | [uv-aarch64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [uv-i686-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-i686-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64le-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256) | | [uv-riscv64gc-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [uv-s390x-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-s390x-unknown-linux-gnu.tar.gz.sha256) | | [uv-x86_64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [uv-armv7-unknown-linux-gnueabihf.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [uv-aarch64-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-aarch64-unknown-linux-musl.tar.gz.sha256) | | [uv-i686-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-i686-unknown-linux-musl.tar.gz.sha256) | | [uv-riscv64gc-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-riscv64gc-unknown-linux-musl.tar.gz.sha256) | | [uv-x86_64-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-x86_64-unknown-linux-musl.tar.gz.sha256) | | [uv-arm-unknown-linux-musleabihf.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [uv-armv7-unknown-linux-musleabihf.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.28/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256) | ## 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](https://cli.github.com/manual/gh_attestation_verify): ```sh gh attestation verify <file-path of downloaded artifact> --repo astral-sh/uv ``` You can also download the attestation from [GitHub](https://github.com/astral-sh/uv/attestations) and verify against that directly: ```sh gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> ```