chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.5 #79

Open
renovate wants to merge 1 commit from renovate/ghcr-io-astral-sh-uv-0-x into main
Collaborator

This PR contains the following updates:

Package Type Update Change
ghcr.io/astral-sh/uv minor 0.11.16-python3.14-alpine0.12.5-python3.14-alpine
ghcr.io/astral-sh/uv stage minor 0.11.160.12.5

Release Notes

astral-sh/uv (ghcr.io/astral-sh/uv)

v0.12.5

Compare Source

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 --index and --default-index to select configured package indexes by name with the index-by-name preview 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-space on 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)

v0.12.4

Compare Source

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-project and respect UV_NO_INSTALL_PROJECT to install dependencies without building or installing the project (#​21085)
  • Make the ty subprocess invoked by uv check honor 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.exe launchers for virtual environments created from managed Python minor-version links (#​19235)
  • Allow uv lock to proceed when .venv is an unusable project environment (#​21068)
  • Respect fork-strategy when ordering forks created from environments or existing lockfile resolution-markers (#​21000)
  • Preserve consecutive wildcard Python minor-version exclusions such as !=3.11.*, !=3.12.* in uv.lock (#​21045)
  • Preserve inline comments on the final item in dependency arrays when uv add updates 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 PYTHONEXECUTABLE and __PYVENV_LAUNCHER__ overrides (#​21075)
  • Show standard styling, usage guidance, and line termination for invalid uv version --bump values (#​21076)

v0.12.3

Compare Source

Released on 2026-08-07.

Python
Preview features
  • Add --output-format to select automatic, human-readable, or raw-byte output for uv cache size (#​20992)
  • Preserve JSON output from uv workspace metadata --quiet while suppressing diagnostics (#​20991)
  • Reduce memory usage for large workspaces by streaming uv workspace metadata JSON 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-pin to --pin-python in the uv init --bare example (#​20876)

v0.12.2

Compare Source

Released on 2026-08-05.

Python
Enhancements
  • Ensure diagnostic hints end with a newline to prevent malformed terminal output (#​20959)
Preview features
  • Audit one or all installed tools with uv tool audit (#​20921)
  • Report physically reclaimed disk space during cache cleanup with the cache-physical-space preview feature (#​20925)
Configuration
  • Add UV_RUN_RLIMIT_NOFILE to set the open-file limit for commands launched by uv run (#​20926)
Performance
  • Speed up uv.lock parsing for wheel entries (#​20881)
  • Speed up uv.lock parsing for source distribution entries (#​20882)
  • Speed up filename extraction from distribution URLs (#​20879)
  • Reduce filesystem metadata lookups during bytecode compilation (#​20928)
  • Reuse file metadata when building source distributions (#​20927)
Bug fixes
  • Preserve compatibility with older uv versions when recording artifact sizes in cached wheels and source distributions (#​20963)
  • Avoid including workspace-root default dependency groups when syncing or exporting a selected workspace member unless explicitly requested (#​20930)
Documentation
  • Separate build and publish jobs in the GitHub Actions publishing guide (#​20946)
  • Ensure the GitHub Actions publishing example waits for the build job to finish (#​20957)
  • Correct typos in the Docker integration guide (#​20970)

v0.12.1

Compare Source

Released on 2026-07-31.

Enhancements
  • Add package-specific pre-release policies with --prerelease-package (#​20837)
  • Support local HTML files as flat indexes (#​20802)
  • Add Xonsh virtual environment activation scripts (activate.xsh) (#​19740)
  • Preserve filesystem paths passed to uv add --index when updating pyproject.toml (#​20817)
Preview features
  • Add automatic fixes to uv check with --fix (#​20793)
  • Avoid rejecting unchanged metadata-free lockfiles when workspace dependencies share direct sources (#​20847)
  • Honor direct URL constraints when validating metadata-free lockfiles (#​20796)
  • Ignore malformed PEP 723 scripts discovered during project checks (#​20784)
  • Use ty's native script exclusion in uv check (#​20742)
Performance
  • Parse canonical uv lockfiles directly, with a fallback for other valid TOML syntax (#​20648)
  • Accelerate SHA-256 hashing on non-Windows ARM64 platforms (#​20805)
Bug fixes
  • Flush shell startup file updates before uv tool update-shell and uv python update-shell exit (#​20842)
  • Make workspace-root dependency groups available to commands run from workspace members (#​20840)
  • Resolve --find-links paths in requirements files relative to the containing file (#​20832)
  • Respect configured indexes in uv tool list --outdated (#​20770)
Documentation
  • Document Astral GPU indexes in the PyTorch guide (#​20785)
  • Use consistent dependency-group argument descriptions throughout the CLI documentation (#​20823)

v0.12.0

Compare Source

Released on 2026-07-28.

Since we released uv 0.11.0 in March, we've accumulated changes that improve correctness, safety, and compatibility with specifications, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution.

We expect most users to be able to upgrade without making changes.

There are no breaking changes to the configuration of the uv build backend. If your [build-system] table includes an upper bound on uv_build, update it to allow uv_build 0.12, e.g., uv_build>=0.11.32,<0.13.

Breaking changes
  • Define build systems by default with uv init (#​19197)

    Projects created with uv init now declare a build system and are packaged by default. This was the default project layout all the way back in v0.3, but we found that the use of the hatchling build system was confusing to newcomers and consequently dropped use of a build system by default in v0.4. Since then, we've created our own build system (uv_build) with tight integration with uv and are excited to restore the default to a best-practice project layout.

    Previously, uv init example created an unpackaged layout containing main.py and a pyproject.toml without a build system. The project could declare dependencies but was not itself installed into its virtual environment.

    Now, uv init example defines a [build-system] using uv_build, places application source code in src/example, and includes a [project.scripts] entry named example. Defining a build system allows the project to be imported from tests or other code, installed as a dependency, and run as a command:

    $ uv init example
    $ cd example
    $ uv run example
    Hello from example!
    

    Existing projects are unaffected. Use uv init --no-package example to create the previous unpackaged layout without a build system.

    See the project creation documentation for more details.

    This stabilizes the packaged-init preview feature.

  • Reject unsupported source distribution and wheel archive formats (#​18927)

    PEP 625 requires source distributions to use .tar.gz archives. Previously, uv also accepted legacy formats such as .tar.bz2 and .tar.xz. Those formats are now rejected, including when referenced by an existing lockfile. Legacy .zip source distributions remain supported for backwards compatibility.

    Wheels and other ZIP archives can no longer contain entries compressed with bzip2, LZMA, or XZ. Entries must use the stored, DEFLATE, or zstd compression methods.

    Removing support for uncommon compression methods reduces uv's compression dependencies and the attack surface exposed when processing untrusted packages.

    You cannot opt out of this behavior. If you depend on a legacy source distribution that uses an unsupported format, we recommend rebuilding it as a .tar.gz archive and regenerating any lockfile containing references to the legacy archive.

  • Reject wheel files that could replace the Python interpreter (#​20748, #​20749)

    uv already rejected wheel entry points named python, but case variants such as Python were still accepted. On case-insensitive filesystems, including common macOS and Windows setups, these entry points could overwrite the virtual environment's interpreter.

    Wheels could also place interpreter files in their .data/scripts directory or in paths such as .data/data/bin/python, bypassing the entry-point check and replacing the interpreter during installation.

    uv now rejects case-insensitive variants of reserved interpreter names and wheel data files that would be installed over an interpreter. This includes names such as Python, python.py, and Python.exe, along with other reserved interpreter names and their versioned variants.

    You cannot opt out of these checks. Rename conflicting entry points or wheel data files and rebuild the affected wheel.

  • Prefer stable releases before falling back to pre-releases (#​19993)

    A dependency can introduce a pre-release requirement after resolution starts. uv previously required each package's pre-release eligibility to be known before resolution began: the default if-necessary-or-explicit mode allowed them for direct requirements that explicitly requested a pre-release, or for packages that only published pre-releases.

    This meant that a pre-release requirement discovered in a dependency's metadata, e.g., example>=2.0.0b1, would fail to resolve even when a compatible pre-release existed. To resolve it, you had to add that dependency as a direct requirement or allow pre-releases across your entire dependency graph.

    The default mode is now if-necessary. uv tries stable candidates first and falls back to pre-releases when no stable candidate satisfies the active constraints. Like pip, uv now supports pre-release requirements discovered transitively, but can select different versions than previous uv releases when both stable and pre-release candidates are available.

    You can opt out of automatic pre-release selection with --prerelease disallow. Alternatively, --prerelease allow considers pre-releases without first preferring stable releases, and --prerelease explicit only allows them for direct requirements that mention a pre-release.

    The old if-necessary-or-explicit mode distinguished between explicitly requested pre-releases and packages with no stable releases. That distinction is unnecessary now that if-necessary handles both cases, including transitive requirements. The old name remains available as an alias but is deprecated and will be removed in a future release.

  • Respect --require-hashes directives in requirements.txt (#​19336)

    Previously, uv pip install and uv pip sync warned about --require-hashes inside a requirements.txt file but still installed dependencies without checking their hashes. Now, the directive enables hash-checking mode, just as if --require-hashes had been passed on the command line.

    For example, this requirements file is no longer accepted because the requirement is neither pinned nor hashed:

    --require-hashes
    anyio
    

    You cannot opt out while the directive is present. Pin every requirement with == and provide its hash, or remove --require-hashes if hash checking is not intended.

  • Reject MD5-only hashes in hash-checking mode (#​20758)

    Previously, uv pip install --require-hashes and uv pip sync --require-hashes accepted requirements whose only available digest used MD5. MD5 is not collision-resistant, so relying on it undermined installations that require hash verification and differed from pip's behavior.

    Hash-checking mode now requires at least one secure digest for every requirement. For example, the following requirement is rejected unless a secure hash, such as SHA-256, is also supplied:

    anyio==4.0.0 --hash=md5:420d85e19168705cdf0223621b18831a
    

    A secure hash can be supplied directly on the requirement or in a matching constraints file. Ordinary hash verification without --require-hashes continues to support MD5.

    You cannot opt out while hash checking is required. Regenerate affected hashes with SHA-256 or another supported secure hash.

  • Reject invalid pylock.toml files and artifacts (#​20402, #​20440, #​20443)

    uv now validates additional requirements from the pylock.toml specification:

    • The packages array must be present. Previously, uv interpreted a missing array as an empty lockfile, so uv pip sync could uninstall an environment instead of rejecting malformed input. An explicitly empty packages = [] array remains valid.
    • Lockfile filenames must be pylock.toml or a single-name variant such as pylock.dev.toml. Names such as pylock..toml and pylock.foo.bar.toml are rejected.
    • If a wheel, source distribution, or other artifact declares a size, the downloaded or cached artifact must match. Previously, an incorrect size was accepted when the hash was correct. Sizes reported by package indexes remain advisory.

    You cannot opt out of these checks. Regenerate malformed lockfiles, rename invalid filenames, and either correct or remove an incorrect optional size value.

  • Honor explicit certificate overrides even when no certificates can be loaded (#​20741, #​20767)

    Previously, uv ignored SSL_CERT_FILE or SSL_CERT_DIR values that pointed to missing or inaccessible paths, empty files or directories, or sources without valid certificates. Instead, it fell back to its default trust roots, potentially allowing HTTPS connections that the configured override was intended to reject.

    Now, any non-empty SSL_CERT_FILE or SSL_CERT_DIR value replaces uv's default certificate roots, even when no valid certificates can be loaded. In that case, HTTPS requests fail because no certificates are trusted. This applies to package downloads and remote scripts, including GitHub Gists.

    Fix or unset the certificate override. Unsetting it restores the default trust store; empty environment-variable values continue to be ignored.

  • Support pip-compatible --cert handling in uv pip (#​20418)

    The uv pip interface now accepts --cert <path>, e.g.:

    $ uv pip install --cert ./company-ca.pem example
    

    As in pip, the provided PEM bundle replaces all other certificate sources for that invocation, including system certificates and SSL_CERT_FILE or SSL_CERT_DIR. This change has no effect unless you pass --cert. Include the necessary certificate authorities in the bundle.

    --cert is only supported by uv pip commands; other uv commands continue to use their existing certificate configuration.

  • Discover projects relative to the script passed to uv run (#​20225)

    Previously, uv run project/script.py discovered its project from the current directory, even when the script belonged to another project. uv now starts project and workspace discovery from the script's directory instead.

    For example, running uv run other-project/script.py now uses other-project and its dependencies. This fixes scripts that previously failed because their own dependencies were not installed, but can select a different environment than before.

    You can opt out of script-relative discovery by selecting a project explicitly, e.g., uv run --project . other-project/script.py.

    This stabilizes the target-workspace-discovery preview feature.

  • Require --force before clearing a directory that is not a virtual environment (#​20225)

    uv venv --clear previously removed any existing target directory, even if it was not a virtual environment. uv emitted a warning but still deleted the directory and its contents. Now, uv refuses to clear directories that do not contain a virtual environment.

    You can opt out of this safety check by explicitly passing --force, e.g., uv venv --clear --force ./not-a-virtualenv.

    This stabilizes the venv-safe-clear preview feature.

  • Reject --project when initializing a project (#​20225)

    --project selects an existing project, so it is not meaningful when initializing a new one. Previously, uv init --project example warned and initialized example anyway; if a positional path was also provided, --project was ignored.

    This usage is now an error. Use uv init example to initialize a project at the requested path, or uv init --directory example to change the working directory first.

    This stabilizes the init-project-flag preview feature.

  • Reject missing or invalid --project paths (#​20225)

    uv previously warned when --project referred to a missing directory or a file other than pyproject.toml, but then attempted to continue. This could produce confusing errors later or run against an unintended project.

    Now, uv run --project missing python fails immediately instead of continuing. You cannot opt out of this behavior. Create the directory first or select an existing project. Passing --project path/to/pyproject.toml remains supported and selects the file's parent directory.

    This stabilizes the project-directory-must-exist preview feature.

  • Skip distributions with non-normalized filenames when publishing (#​20225)

    Distribution filenames must use normalized package names and versions. For example, a wheel for version 1.01.0 should be named example-1.1.0-py3-none-any.whl, not example-1.01.0-py3-none-any.whl.

    Previously, uv publish warned about non-normalized filenames but still attempted to upload them. It now skips the affected wheels and source distributions instead.

    You cannot opt out of this behavior. Rebuild distributions with normalized filenames before publishing.

    This stabilizes the publish-require-normalized preview feature.

  • Classify Conda environments named base and root by their paths (#​20225)

    Conda environments named base or root were previously assumed to be the base Conda environment, even when they were ordinary child environments. uv now recognizes child Conda environments named base or root based on their paths, as it already does for other names.

    You can opt out of automatic interpreter selection by requesting an interpreter explicitly with --python /path/to/python.

    This stabilizes the special-conda-env-names preview feature.

  • Reject broken .venv symlinks during environment discovery (#​20433)

    Previously, uv could ignore a broken .venv symlink and continue searching parent directories for another virtual environment. As a result, commands such as uv pip install could unexpectedly modify an unrelated ancestor environment.

    uv now stops at a broken .venv symlink and reports its exact path. Errors encountered while reading virtual environment metadata, including permission failures, are also reported immediately instead of being ignored.

    You cannot opt out of this behavior. Repair or remove the broken .venv symlink and correct any permissions that prevent uv from inspecting the environment.

  • Reinstall matching installed Python patch versions instead of upgrading implicitly (#​20659)

    Before Python upgrades were supported, uv python install 3.12 --reinstall doubled as a way to install the latest Python 3.12 patch release. Now that --upgrade is available, --reinstall reinstalls the matching patch releases that are already present.

    For example, if Python 3.12.6 and 3.12.7 are installed, uv python install 3.12 --reinstall reinstalls both versions instead of installing the latest available 3.12 release.

    You can recover the previous upgrade behavior with uv python install 3.12 --upgrade. Combine --upgrade --reinstall to reinstall only the latest patch.

  • Require --upgrade-group to name an existing dependency group (#​18957)

    Previously, uv lock --upgrade-group docs silently succeeded even if no docs dependency group existed. uv now validates the requested group against the project, its workspace members, and workspace-level dependency groups.

    You cannot opt out of this behavior. Correct the group name or add it to [dependency-groups]. Legacy tool.uv.dev-dependencies still satisfies --upgrade-group dev.

  • Resolve relative indexes and find-links against --directory (#​20740)

    The --directory option changes the directory in which uv operates. Previously, relative index and find-links paths supplied on the command line were still resolved against the original working directory.

    uv now resolves --index, --default-index, --index-url, --extra-index-url, and --find-links relative to the directory selected by --directory. For example:

    $ uv add --directory project --index ./packages example
    

    This now uses project/packages instead of ./packages in the original working directory. Absolute paths and indexes loaded from configuration files are unaffected.

    To preserve the previous target, pass an absolute path or adjust the relative path, e.g., --index ../packages.

  • Preserve absolute paths provided to uv add (#​18402)

    uv add previously converted every local dependency into a project-relative path, even when the original request used an absolute path or a literal file:// URL. It now preserves the form of the request in pyproject.toml and uv.lock:

    $ uv add ../library             # remains relative
    $ uv add /projects/library      # remains absolute
    

    Absolute paths make a project less portable. Use a relative path to avoid recording an absolute path. URLs containing expanded variables retain their existing relative-path behavior.

  • Remove older PyPy distributions that are only available as bzip2 archives (#​20423)

    Older PyPy patch releases that are only distributed as .tar.bz2 archives are no longer available through uv python install. These releases require unsupported bzip2 archives.

    The latest PyPy release for each supported Python minor version is available as a gzip-compressed archive and remains supported. For example, uv python list 3.10 --all-versions still includes the latest PyPy 3.10 release, but older bzip2-only patch releases are omitted.

    You cannot opt out of this behavior. Request a newer PyPy patch release instead.

  • Omit excluded-package comments when annotations are disabled (#​20085)

    uv pip compile --no-annotate suppresses comments describing the generated requirements file. Previously, a footer listing packages excluded with --unsafe-package was still included, even though annotations were disabled. That footer is now omitted.

    You can recover the footer by removing --no-annotate.

Stabilizations
  • TOML 1.0-compatible source distributions (#​20225)

    uv_build now writes a TOML 1.0-compatible pyproject.toml when building source distributions, allowing older Python build frontends to consume projects that use newer TOML syntax. The original project file remains available in the archive as pyproject.toml.orig.

    This stabilizes the toml-backwards-compatibility preview feature.

  • Automatic open-file limit adjustment on Unix (#​20225)

    On Linux and macOS, uv now attempts to raise the soft open-file limit at startup toward the hard limit, capped at 1,048,576 descriptors. The new limit also applies to subprocesses and reduces failures caused by running out of file descriptors. If the limit cannot be raised, uv continues running with the existing limit.

    This stabilizes the adjust-ulimit preview feature.

Preview features
  • Allow uv upgrade to target multiple packages, upgrade all production dependencies, and exclude selected dependencies (#​20338)
Bug fixes
  • Include extras activated by dependency groups when evaluating conflicts (#​20237)

v0.11.33

Compare Source

Release Notes

Released on 2026-07-28.

Enhancements
  • Abort panics in release builds for smaller uv binaries (#​20271)
  • Use .tar.gz archives for Pyodide installs (#​20667)
Preview features
Bug fixes
  • Correctly split dependencies into production and optional markers (#​20671)
  • Fix discrepancies in argument parsing of exclude-newer (#​20679)
  • Cleanup managed Python temporary directory on error (#​20752)
Install uv 0.11.33
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-installer.ps1 | iex"
Download uv 0.11.33
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.32

Compare Source

Release Notes

Released on 2026-07-23.

Preview features
  • Add --package and --all-packages selection to uv check (#​20628)
  • Allow uv upgrade to update multiple marker-specific declarations of the same package (#​20335)
  • Reject non-canonically formatted lockfiles in uv lock --check and commands using --locked (#​20646)
  • Regenerate non-canonically formatted lockfiles with uv lock --refresh (#​20634)
  • Include best-effort information about the active environment in uv workspace metadata by default (#​20643)
Performance
  • Skip dependency-group conflict expansion when no additional conflicts can be inferred (#​20611)
Bug fixes
  • Fork universal resolutions when Requires-Python is discovered only from distribution metadata (#​20586)
Install uv 0.11.32
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-installer.ps1 | iex"
Download uv 0.11.32
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.31

Compare Source

Release Notes

Released on 2026-07-21.

Enhancements
  • Allow workspace sources to reference members in another workspace by path (#​18401)
  • Support .venv files containing paths to centralized project environments (#​20022)
  • Update bundled Windows timezone data to IANA 2026c (#​20554)
Preview features
  • Add an index-specific hash-algorithm setting for lockfile generation (#​20605)
Configuration
  • Add audit.malware-check and audit.malware-check-url settings (#​20587)
Performance
  • Avoid quadratic work when deduplicating transitive conflicts (#​20578)
Bug fixes
  • Suggest --emit-build-options for unsupported uv pip compile --emit-options (#​20582)
  • Reject source distributions and wheels with mismatched package names (#​20432)
  • Avoid retrying TLS certificate verification failures (#​16245)
  • Avoid warnings about uv_build settings for in-tree build backends (#​20153)
Install uv 0.11.31
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-installer.ps1 | iex"
Download uv 0.11.31
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.30

Compare Source

Release Notes

Released on 2026-07-20.

Python
Preview features
  • Allow uv workspace metadata --sync to target the active virtual environment with --active (#​20500)
  • Reuse centralized project environments when workspaces are accessed through symlinks (#​20436)
Performance
  • Skip resolver candidates whose files are all excluded by exclude-newer (#​20460)
  • Limit parallel cache reads to reduce resolver scheduling and allocation overhead (#​20427)
  • Accelerate lockfile serialization with toml_writer (#​20450)
  • Compact cached Simple API distribution metadata and hashes (#​20463, #​20483)
  • Decode stale cache entries in a single blocking task (#​20486)
  • Decode cached payloads outside resolver workers (#​20464)
  • Cache resolver Python requirement markers (#​20461)
  • Reuse resolver fork markers while recording preferences (#​20462)
Bug fixes
  • Prevent skipped tar-wheel entries from causing unrelated files to be removed during uninstall (#​20429)
  • Preserve literal extends-environment paths in pyvenv.cfg on Unix (#​20466)
Documentation
Install uv 0.11.30
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-installer.ps1 | iex"
Download uv 0.11.30
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.29

Compare Source

Release Notes

Released on 2026-07-15.

Python
  • Use gzip-compressed artifacts for PyPy downloads (#​20265)
Enhancements
  • Add JSON output to uv tree (#​19978)
  • Add CUDA 13.2 as a supported PyTorch backend (#​20267)
  • Prefer local artifacts over URLs when installing from pylock.toml (#​20393)
  • Clarify diagnostics for unsatisfiable direct requirement ranges (#​20227)
  • Include the selected project name in missing-extra errors (#​20358)
Preview features
  • Preserve extras and dependency-group conflict context when selecting locked project tools (#​20078)
  • Split OSV audit queries that exceed the service's 1,000-package limit (#​20398)
  • Apply OSV fixed-version information only to the matching package and ecosystem (#​20399)
  • Skip the virtualenv distutils monkeypatch on Python 3.10 and later (#​20222)
  • Report invalid uv audit --service-url values instead of panicking (#​20374)
  • Include preview settings in the published SchemaStore schema (#​20304)
Performance
  • Reduce resolver work by widening selected versions across ranges without other known candidates (#​20115)
  • Defer client and build setup for no-op uv sync operations (#​20364)
  • Reuse workspace discovery during frozen syncs (#​20363)
  • Reuse workspace discovery after resolving settings (#​20356)
  • Reuse workspace discovery in uv tree, uv export, uv format, and uv audit (#​20359)
  • Avoid cache and interpreter setup when reading a project version (#​20360)
Bug fixes
  • Reject duplicate active package entries in pylock.toml (#​20391)
  • Preserve direct-archive hashes in uv pip freeze output (#​20395)
  • Explain conflicting root requirements instead of displaying an empty version range (#​20228)
  • Prevent build-backend data paths from escaping the project or bypassing wheel exclusions (#​20397)
  • Reject PEP 517 backend paths outside the source tree, including paths that escape through symlinks (#​20387)
  • Redact credentials from failed Git fetch commands (#​20401)
  • Fix exclusive post-release range ordering to match PEP 440 (#​20268)
  • Canonicalize equivalent PEP 440 ranges during dependency resolution (#​20182)
  • Honor Python version pins when initializing scripts (#​20404)
  • Respect package-scoped source filtering for scripts (#​20389)
  • Report existing environment incompatibilities when uv pip install --strict has nothing to install (#​20388)
  • Continue scanning platlib when purelib is missing (#​20405)
  • Handle versionless .egg-info files as legacy package metadata (#​20403)
  • Make repeated locking idempotent for impossible cross-variable platform markers (#​20369)
  • Report invalid cloud credential endpoint URLs instead of panicking (#​20372)
  • Report invalid pylock.toml artifact URLs instead of panicking (#​20373)
  • Report non-UTF-8 virtual environment paths instead of panicking while generating activation scripts (#​20375)
  • Return an unsupported-operation error from unimplemented build-backend requirement hooks (#​20376)
Documentation
  • Clarify --no-build behavior for editable requirements (#​20234)
  • Document uv's threat model (#​20236)
  • Reduce the number of badges in the README (#​11257)
Install uv 0.11.29
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-installer.ps1 | iex"
Download uv 0.11.29
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.28

Compare Source

Release Notes

Released on 2026-07-07.

Security

This release updates our ZIP library, astral-async-zip, to v0.0.20, which includes 15 changes that harden our ZIP handling against parser differentials. uv may reject ZIP archives with malformed or ambiguous content that were previously accepted.

See the upstream commits for a full list of changes.

Python
Enhancements
  • Improve trace logs for unexpected error chains (#​20220)
  • Move lockfile update guidance to a hint (#​20219)
  • Preserve indentation for multiline error causes (#​20156)
  • Render user errors with their cause chains (#​20217)
  • Route final command errors through the printer to respect -q and -qq (#​20163)
  • Use standard rendering for uv build errors (#​20159)
  • Use standard rendering for tool requirement errors (#​20160)
Performance
  • Only compile bytecode for installed distributions in uv pip install (#​19914)
  • Avoid allocating URL-safe Git revisions (#​20194)
  • Avoid allocating canonical Python request strings (#​20193)
  • Avoid allocating custom Astral mirror URLs (#​20204)
  • Avoid allocating expanded compatibility tags (#​20190)
  • Avoid allocating shell strings that need no escaping (#​20196)
  • Avoid allocating static ABI descriptions (#​20201)
  • Avoid allocating static Windows executable names (#​20200)
  • Avoid allocating static dependency table names (#​20199)
  • Avoid allocating static platform triple components (#​20195)
  • Avoid allocating static resolver report labels (#​20198)
  • Avoid allocating static unavailable-version messages (#​20197)
  • Avoid allocating unchanged Python download architectures (#​20202)
  • Avoid allocating unchanged paths during case normalization (#​20203)
  • Avoid allocations when expanding group conflicts (#​20211)
  • Avoid allocations when formatting requirements (#​20206)
  • Avoid cloning credential lookup services (#​20210)
  • Avoid cloning dry-run distributions (#​20209)
  • Avoid cloning owned dependency metadata (#​20212)
  • Avoid redundant direct URL clones (#​20207)
  • Create metadata version errors lazily (#​20205)
  • Optimize expanded tag compatibility checks (#​20171)
  • Optimize parsing of single-digit three-part versions (#​20118)
Bug fixes
  • Avoid overflow when computing HTTP cache age (#​20178)
  • Respect --upgrade when upgrade-package is configured (#​19955)
  • Support uv tree in dependency-group-only projects (#​20167)
  • Treat cache entries as stale at exact expiration (#​20183)
Install uv 0.11.28
Install prebuilt binaries via shell script
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
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 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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.27

Compare Source

Release Notes

Released on 2026-07-06.

Enhancements
  • Continue on ignored errors when fetching wheel metadata (#​12255)
  • Use caching for --python-downloads-json-url (#​16749)
Preview features
  • Discover extensionless shebang scripts in uv workspace list --scripts (#​20099)
Performance
  • Avoid full site-packages scans for direct reinstalls (#​20119)
  • Avoid redundant pyproject parsing (#​20076)
  • Cache default dependency markers when reading locks (#​20125)
  • Enable SIMD-accelerated TOML parsing (#​20079)
  • Intern requires-python specifiers in Simple API parsing (#​20104)
  • Read cache entries into exact-sized buffers (#​20120)
  • Reduce VersionSpecifiers parsing allocations (#​20105)
  • Reduce site-packages scan allocation overhead (#​20087)
  • Reuse package names when parsing wheel filenames (#​20110)
  • Sort Simple API files after grouping (#​20112)
Bug fixes
  • Always emit packages table for pylock.toml (#​20145)
  • Avoid blank line for empty uv pip tree (#​20062)
  • Encode hashes in file paths (#​19807)
  • Error on a registry uv.lock package without a version instead of panicking (#​19855)
  • Preserve conditional extra markers in exports (#​20148)
  • Skip the ambiguous authority check for file transport VCS URLs (#​20086)
  • Sync index format when uv add --index updates an existing index URL (#​19818)
Other changes
Install uv 0.11.27
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-installer.ps1 | iex"
Download uv 0.11.27
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.26

Compare Source

Release Notes

Released on 2026-06-30.

Performance
  • Adapt uv to IDs-only PubGrub dependencies (#​20048)
  • Avoid allocations in ForkMap::contains (#​20023)
  • Reuse resolver work across PubGrub iterations (#​20020)
  • Speed up candidate selection for disjoint ranges (#​20026)
Bug fixes
  • Warn when the build cache is inside the source directory (#​20056)
Install uv 0.11.26
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-installer.ps1 | iex"
Download uv 0.11.26
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.25

Compare Source

Release Notes

Released on 2026-06-26.

Security

This release updates our tar library, astral-tokio-tar, to v0.6.3, which includes over 20 changes that harden our tar handling against parser differentials. uv may reject source distributions with malformed or ambiguous content that were previously accepted.

See the upstream commits for a full list of changes.

Enhancements
  • Add a full "lockfile" to tool receipts (#​18937)
  • Allow scoped overrides to add dependencies (#​19974)
  • Avoid writing redundant lockfile markers with tool.uv.environments (#​19933)
  • Factor supported environments out of lockfile markers (#​19969)
  • Recommend our own build backend in the build frontend (#​19994)
  • Reject wheels with multiple .dist-info directories (#​19986)
  • Simplify dependency markers under parent reachability (#​19971)
  • Support scoped dependency exclusions (#​19977)
  • Support scoped dependency overrides (#​19970)
  • Explain why files are skipped in registry index parsing (#​19983)
Preview features
  • Add uv workspace list --scripts (#​20009)
  • Support centralised environments in uv venv (#​19912)
  • Use locked ty versions in uv check (#​19884)
  • Add centralized storage of project environments (#​18214)
  • Verify lockfile hashes before reusing a cached ty in uv check (#​19995)
  • Use locked dependency selection for uv check --script (#​19989)
Bug fixes
  • Preserve standalone markers in workspace metadata (#​20011)
  • Reject uv build if the cache dir is enclosed (#​19991)
Install uv 0.11.25
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-installer.ps1 | iex"
Download uv 0.11.25
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.24

Compare Source

Release Notes

Released on 2026-06-23.

Python
Preview features
  • Make project environments relocatable under preview (#​19965)
Performance
  • Use a compact index for lazy version maps (#​19959)
Bug fixes
  • Allow disabling exclude-newer (#​19934)
  • Avoid archive id collisions (#​19949)
  • Reapply "Fix transparent Python upgrades in project environments" (#​19928)
  • Clean up partial tool entrypoint installs (#​19966)
  • Fix relocatable activate.fish and broaden Fish version support (#​19856)
Install uv 0.11.24
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-installer.ps1 | iex"
Download uv 0.11.24
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.23

Compare Source

Release Notes

Released on 2026-06-19.

Bug fixes
  • Revert "Fix transparent Python upgrades in project environments" to mitigate unintended breakage in pre-commit-uv (#​19925)
  • Restore old behavior where workspace members "hidden" by an intermediate pyproject.toml would be treated as standalone projects (#​19926)
Install uv 0.11.23
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-installer.ps1 | iex"
Download uv 0.11.23
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.22

Compare Source

Release Notes

Released on 2026-06-18.

Enhancements
  • Publish wheels before sdists in uv publish (#​19831)
  • Add TY and RUFF env vars for providing paths for binaries used by uv format and uv check (#​19821)
Preview features
  • Allow configuring preview features in uv.toml and pyproject.toml (#​18437)
  • Update the lockfile during uv check --no-sync (#​19909)
  • Add --script to uv check and uv metadata (#​19860)
  • Report workspace-exclusive dependency groups in workspace metadata (#​19862)
  • Support SARIF as a uv audit output (#​19872)
Performance
  • Use a more deadlock-resistant concurrent hashmap in the resolver (#​19532)
Bug fixes
  • Update string marker ordering semantics to match upstream clarified rules (#​19808)
  • Reject extras that have the same normalized name (#​19871)
  • Reject dependency group include-group entries that have additional fields (#​19866)
  • Reject invalid UTF-8 URL credentials (#​19814)
  • Validate that PEP 517 backend-paths exist when building sdists (#​19834)
  • Validate that pylock.toml files do not have an unsupported a lock-version (#​19869)
  • Validate that the environment satisfies the packages.requires-python of a pylock.toml (#​19868)
  • Allow uv to be recursively invoked by PEP 517 build hooks (#​19879)
  • Allow empty credentials.toml files (#​19815)
  • Fix transparent Python upgrades in project environments (#​19890)
  • Handle non-file editable URLs in uv pip list (#​19867)
  • Fix incorrect output from uv tree --invert (#​19910)
  • Fix environment locking of uv venv in a project (#​19837)
  • Fix handling of workspace-exclusive dependency groups in uv tree (#​19905)
Documentation
Other changes
  • Mark more tests as requiring network for vendors that need to run tests offline (#​19819)
Install uv 0.11.22
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-installer.ps1 | iex"
Download uv 0.11.22
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.21

Compare Source

Release Notes

Released on 2026-06-11.

Python
Preview features
  • Add environment.root to uv workspace metadata --sync (#​19760)
  • Allow uv upgrade to update a single dependency constraint (#​19738)
  • Compute and pass uv workspace metadata payload in ty check (#​19763)
  • Make packaged applications the default for uv init (#​17841)
Performance
  • Add parallel discovery of Python versions for uv python list (#​18684)
  • Avoid normalizing source distribution names twice (#​19784)
Bug fixes
  • Improve cache robustness and pruning behavior
    • Allow CI cache pruning without an sdist bucket (#​19802)
    • Avoid overflow when reading malformed cache entries (#​19799)
    • Preserve cached Python downloads during cache pruning (#​19795)
    • Reject running inside the cache (#​19659)
  • Fix Python discovery and version request edge cases
    • Avoid panics for Unicode Python version requests (#​19797)
    • Fix handling of non-critical errors in uv python list with path requests (#​19774)
    • Fix stop-discovery-at regression (#​19769)
  • Harden parsing and validation for package metadata, requirements, markers, URLs, and conflict sets
    • Allow trailing commas in version specifiers (#​19806)
    • Avoid panics for invalid UTF-8 URL credentials (#​19800)
    • Avoid panics for malformed source distribution filenames (#​19776)
    • Avoid panics for trailing extra separators (#​19779)
    • Avoid stack overflow for recursive requirements path aliases (#​19777)
    • Ignore reversed string compatible-release markers (#​19782)
    • Reject duplicate entries in conflict sets (#​19801)
    • Reject malformed hash options in requirements files (#​19783)
    • Reject source distribution filenames without a separator (#​19803)
    • Use UTF-8 lengths for requirement errors (#​19781)
    • Use UTF-8 lengths for trailing marker errors (#​19796)
    • Use byte offsets when peeking over requirements (#​19780)
    • Validate GraalPy ABI suffixes (#​19805)
  • Improve wheel entry-point error handling and virtual environment activation quoting
    • Propagate errors when reading wheel entry points (#​19794)
    • Quote virtual environment activation paths with shell metacharacters (#​19798)
Install uv 0.11.21
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-installer.ps1 | iex"
Download uv 0.11.21
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.20

Compare Source

Release Notes

Released on 2026-06-10.

Enhancements
  • Add --emit-index-url and --emit-find-links to uv export (#​18370)
  • Add --find-links support for uv pip list (#​16103)
  • Group executable install errors during uv python install (#​19691)
  • Use ICF in macOS release builds to reduce binary sizes (#​19615)
Preview features
  • Add initial hidden uv upgrade command (#​19678)
  • Reject Git revisions in uv upgrade (#​19742)
Configuration
  • Recognize UV_NO_INSTALL_PROJECT, UV_NO_INSTALL_WORKSPACE, UV_NO_INSTALL_LOCAL (#​19323)
Performance
  • Speed up discovery of large workspaces (#​18311)
Bug fixes
  • Allow unknown preview flags with a warning again (#​19669)
  • Apply dependency exclusions to direct requirements (#​19699)
  • Avoid following external symlinks during cache clean (#​19682)
  • Avoid following symlinks during cache prune (#​19543)
  • Fix Git cache keys for worktrees and packed refs (#​19706)
  • Make resolver error handling iterative to avoid stack overflows (#​19695)
  • Pass VIRTUAL_ENV through cygpath inside fish on Windows (#​19703)
  • Rebuild explicit local directory tool installs (#​19591)
  • Validate egg top-level entries as identifiers (#​19679)
Documentation
  • Document --find-links caching behavior (#​19585)
  • Add a small section for malware checks (#​19680)
Install uv 0.11.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-installer.ps1 | iex"
Download uv 0.11.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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.19

Compare Source

Release Notes

Released on 2026-06-03.

Python
Enhancements
  • Always compute SHA256 for remote distributions (#​19662)
  • Add PyEmscripten platform (PEP 783) (#​19629)
  • Add Pyodide 2025 target triple (#​19653)
Preview features
  • Make preview features for commands have names that aren't ambiguous with the command (#​19645)
  • Respect --isolated in uv check (#​19666)
Bug fixes
  • Continue tool uninstall after dangling receipts (#​19623)
  • Skip Unix-specific installation steps when cross-installing Windows Python distributions (#​19424)
Install uv 0.11.19
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-installer.ps1 | iex"
Download uv 0.11.19
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.18

Compare Source

Release Notes

Released on 2026-06-01.

Performance
  • Fix performance regression in unzip of local wheels (#​19637)
Preview
Bug fixes
  • Update activation scripts with upstream fixes (#​19628)
Other changes
Install uv 0.11.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-installer.ps1 | iex"
Download uv 0.11.18
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

v0.11.17

Compare Source

Release Notes

Released on 2026-05-28.

Enhancements
  • Add a diagnostic for uv add with standard library modules (#​19572)
  • Expose uv workspace and its list subcommand in help output (#​19533)
  • Improve the "403 forbidden" hint to suggest ignore-error-codes when applicable (#​19521)
  • Skip direct URL lock freshness checks while offline (#​19596)
  • Add import-names and import-namespaces support to uv-build (PEP 794) (#​19380)
  • Add a --no-editable-package flag to various commands (#​19584)
  • Infer Python version requests from source trees in uv tool invocations (#​19577)
Preview features
  • Add module owners to uv workspace metadata (#​19122)
  • Do not allow uv venv --clear to remove non-virtual environments (#​19595)
Bug fixes
  • Improve the performance of large entries in tool.uv.conflicts (#​19538)
  • Avoid modifying the parent process' env with --env-file in uv run (#​19567)
  • Fix script environment creation for scripts with long filenames (#​19539)
  • Fix transitive Git archive dependencies in lockfiles (#​19589)
  • Preserve Git repository URLs in direct URL metadata (#​19590)
  • Support redirects in --check-url (#​19594)
  • Accept case-insensitive HTML tags in --find-links parsing (#​19537)
  • Reject duplicate script metadata blocks (#​19544)
  • Ban names like "python3" as script entry points (#​19535, #​19536)
  • Validate Git LFS artifacts for Git archives (#​19592)
  • Use a relative path when creating symlinks in cache to improve relocatability (#​19033)
Documentation
  • Fix malformed positional anchors in the CLI reference (#​19575)
Install uv 0.11.17
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-installer.ps1 | iex"
Download uv 0.11.17
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-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-riscv64gc-unknown-linux-musl.tar.gz RISCV 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>

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ghcr.io/astral-sh/uv](https://github.com/astral-sh/uv) | | minor | `0.11.16-python3.14-alpine` → `0.12.5-python3.14-alpine` | | [ghcr.io/astral-sh/uv](https://github.com/astral-sh/uv) | stage | minor | `0.11.16` → `0.12.5` | --- ### Release Notes <details> <summary>astral-sh/uv (ghcr.io/astral-sh/uv)</summary> ### [`v0.12.5`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0125) [Compare Source](https://github.com/astral-sh/uv/compare/0.12.4...0.12.5) Released on 2026-08-14. ##### Python - Add CPython 3.10.21, 3.11.16, and 3.12.14 ([#&#8203;21138](https://github.com/astral-sh/uv/pull/21138)) - Prefer newer versions and standard variants when selecting between equally prioritized Python interpreters ([#&#8203;21134](https://github.com/astral-sh/uv/pull/21134)) ##### Enhancements - Simplify errors and hints for invalid editable requirements, and redact credentials in requirement URLs ([#&#8203;21130](https://github.com/astral-sh/uv/pull/21130)) ##### Preview features - Allow `--index` and `--default-index` to select configured package indexes by name with the `index-by-name` preview feature ([#&#8203;17455](https://github.com/astral-sh/uv/pull/17455)) - Include distribution artifact URLs and hashes in CycloneDX SBOM exports by default ([#&#8203;21131](https://github.com/astral-sh/uv/pull/21131)) - Fall back to logical file sizes when using `cache-physical-space` on filesystems that do not support physical-space accounting ([#&#8203;21133](https://github.com/astral-sh/uv/pull/21133)) ##### Bug fixes - Resolve relative package index paths in PEP 723 scripts against the script directory ([#&#8203;21097](https://github.com/astral-sh/uv/pull/21097)) ### [`v0.12.4`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0124) [Compare Source](https://github.com/astral-sh/uv/compare/0.12.3...0.12.4) Released on 2026-08-13. ##### Enhancements - Prefer post-quantum key exchange and enable opt-in TLS diagnostics ([#&#8203;21054](https://github.com/astral-sh/uv/pull/21054)) - Accept whitespace before versions in noncompliant wildcard comparisons such as `Requires-Python: >= 3.5.*` ([#&#8203;21012](https://github.com/astral-sh/uv/pull/21012)) - Report a specific error when a PEP 723 closing tag contains trailing whitespace or other content ([#&#8203;20944](https://github.com/astral-sh/uv/pull/20944)) - Omit source-span carets from diagnostics for empty PEP 508 requirements ([#&#8203;21094](https://github.com/astral-sh/uv/pull/21094)) ##### Preview features - Add `uv check --no-install-project` and respect `UV_NO_INSTALL_PROJECT` to install dependencies without building or installing the project ([#&#8203;21085](https://github.com/astral-sh/uv/pull/21085)) - Make the ty subprocess invoked by `uv check` honor uv's color and progress settings, including quiet mode ([#&#8203;21086](https://github.com/astral-sh/uv/pull/21086)) ##### Performance - Speed up resolutions with long runs of unavailable package versions by coalescing gaps in the resolver's version ranges ([#&#8203;20804](https://github.com/astral-sh/uv/pull/20804)) - Speed up Simple API parsing by deserializing PyPI and Pyx file metadata directly ([#&#8203;21041](https://github.com/astral-sh/uv/pull/21041)) ##### Bug fixes - Use windowed `pythonw.exe` launchers for virtual environments created from managed Python minor-version links ([#&#8203;19235](https://github.com/astral-sh/uv/pull/19235)) - Allow `uv lock` to proceed when `.venv` is an unusable project environment ([#&#8203;21068](https://github.com/astral-sh/uv/pull/21068)) - Respect `fork-strategy` when ordering forks created from `environments` or existing lockfile `resolution-markers` ([#&#8203;21000](https://github.com/astral-sh/uv/pull/21000)) - Preserve consecutive wildcard Python minor-version exclusions such as `!=3.11.*, !=3.12.*` in `uv.lock` ([#&#8203;21045](https://github.com/astral-sh/uv/pull/21045)) - Preserve inline comments on the final item in dependency arrays when `uv add` updates it ([#&#8203;21008](https://github.com/astral-sh/uv/pull/21008)) - Recover from stale base-interpreter cache metadata when an existing virtual environment exposes a version mismatch ([#&#8203;21073](https://github.com/astral-sh/uv/pull/21073)) - Prevent interpreter cache reuse across different `PYTHONEXECUTABLE` and `__PYVENV_LAUNCHER__` overrides ([#&#8203;21075](https://github.com/astral-sh/uv/pull/21075)) - Show standard styling, usage guidance, and line termination for invalid `uv version --bump` values ([#&#8203;21076](https://github.com/astral-sh/uv/pull/21076)) ### [`v0.12.3`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0123) [Compare Source](https://github.com/astral-sh/uv/compare/0.12.2...0.12.3) Released on 2026-08-07. ##### Python - Add CPython 3.13.15 ([#&#8203;20997](https://github.com/astral-sh/uv/pull/20997)) ##### Preview features - Add `--output-format` to select automatic, human-readable, or raw-byte output for `uv cache size` ([#&#8203;20992](https://github.com/astral-sh/uv/pull/20992)) - Preserve JSON output from `uv workspace metadata --quiet` while suppressing diagnostics ([#&#8203;20991](https://github.com/astral-sh/uv/pull/20991)) - Reduce memory usage for large workspaces by streaming `uv workspace metadata` JSON output ([#&#8203;20990](https://github.com/astral-sh/uv/pull/20990)) ##### Performance - Reduce Linux startup latency by initializing the workspace cache before spawning another thread ([#&#8203;20989](https://github.com/astral-sh/uv/pull/20989)) - Reuse compiled workspace exclusion patterns during workspace discovery ([#&#8203;20988](https://github.com/astral-sh/uv/pull/20988)) - Speed up conflict-heavy resolutions by avoiding materialized range complements ([#&#8203;20982](https://github.com/astral-sh/uv/pull/20982)) - Avoid slow procfs reads during Python interpreter discovery on Linux ([#&#8203;20987](https://github.com/astral-sh/uv/pull/20987)) ##### Documentation - Add PEP 740 attestations to the GitHub Actions publishing example ([#&#8203;20986](https://github.com/astral-sh/uv/pull/20986)) - Restrict the GitHub Actions publishing example to Python version tags ([#&#8203;20973](https://github.com/astral-sh/uv/pull/20973)) - Correct `--python-pin` to `--pin-python` in the `uv init --bare` example ([#&#8203;20876](https://github.com/astral-sh/uv/pull/20876)) ### [`v0.12.2`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0122) [Compare Source](https://github.com/astral-sh/uv/compare/0.12.1...0.12.2) Released on 2026-08-05. ##### Python - Add CPython 3.15.0rc1 ([#&#8203;20948](https://github.com/astral-sh/uv/pull/20948)) - Add CPython 3.14.7 ([#&#8203;20971](https://github.com/astral-sh/uv/pull/20971)) ##### Enhancements - Ensure diagnostic hints end with a newline to prevent malformed terminal output ([#&#8203;20959](https://github.com/astral-sh/uv/pull/20959)) ##### Preview features - Audit one or all installed tools with `uv tool audit` ([#&#8203;20921](https://github.com/astral-sh/uv/pull/20921)) - Report physically reclaimed disk space during cache cleanup with the `cache-physical-space` preview feature ([#&#8203;20925](https://github.com/astral-sh/uv/pull/20925)) ##### Configuration - Add `UV_RUN_RLIMIT_NOFILE` to set the open-file limit for commands launched by `uv run` ([#&#8203;20926](https://github.com/astral-sh/uv/pull/20926)) ##### Performance - Speed up `uv.lock` parsing for wheel entries ([#&#8203;20881](https://github.com/astral-sh/uv/pull/20881)) - Speed up `uv.lock` parsing for source distribution entries ([#&#8203;20882](https://github.com/astral-sh/uv/pull/20882)) - Speed up filename extraction from distribution URLs ([#&#8203;20879](https://github.com/astral-sh/uv/pull/20879)) - Reduce filesystem metadata lookups during bytecode compilation ([#&#8203;20928](https://github.com/astral-sh/uv/pull/20928)) - Reuse file metadata when building source distributions ([#&#8203;20927](https://github.com/astral-sh/uv/pull/20927)) ##### Bug fixes - Preserve compatibility with older uv versions when recording artifact sizes in cached wheels and source distributions ([#&#8203;20963](https://github.com/astral-sh/uv/pull/20963)) - Avoid including workspace-root default dependency groups when syncing or exporting a selected workspace member unless explicitly requested ([#&#8203;20930](https://github.com/astral-sh/uv/pull/20930)) ##### Documentation - Separate build and publish jobs in the GitHub Actions publishing guide ([#&#8203;20946](https://github.com/astral-sh/uv/pull/20946)) - Ensure the GitHub Actions publishing example waits for the build job to finish ([#&#8203;20957](https://github.com/astral-sh/uv/pull/20957)) - Correct typos in the Docker integration guide ([#&#8203;20970](https://github.com/astral-sh/uv/pull/20970)) ### [`v0.12.1`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0121) [Compare Source](https://github.com/astral-sh/uv/compare/0.12.0...0.12.1) Released on 2026-07-31. ##### Enhancements - Add package-specific pre-release policies with `--prerelease-package` ([#&#8203;20837](https://github.com/astral-sh/uv/pull/20837)) - Support local HTML files as flat indexes ([#&#8203;20802](https://github.com/astral-sh/uv/pull/20802)) - Add Xonsh virtual environment activation scripts (`activate.xsh`) ([#&#8203;19740](https://github.com/astral-sh/uv/pull/19740)) - Preserve filesystem paths passed to `uv add --index` when updating `pyproject.toml` ([#&#8203;20817](https://github.com/astral-sh/uv/pull/20817)) ##### Preview features - Add automatic fixes to `uv check` with `--fix` ([#&#8203;20793](https://github.com/astral-sh/uv/pull/20793)) - Avoid rejecting unchanged metadata-free lockfiles when workspace dependencies share direct sources ([#&#8203;20847](https://github.com/astral-sh/uv/pull/20847)) - Honor direct URL constraints when validating metadata-free lockfiles ([#&#8203;20796](https://github.com/astral-sh/uv/pull/20796)) - Ignore malformed PEP 723 scripts discovered during project checks ([#&#8203;20784](https://github.com/astral-sh/uv/pull/20784)) - Use ty's native script exclusion in `uv check` ([#&#8203;20742](https://github.com/astral-sh/uv/pull/20742)) ##### Performance - Parse canonical uv lockfiles directly, with a fallback for other valid TOML syntax ([#&#8203;20648](https://github.com/astral-sh/uv/pull/20648)) - Accelerate SHA-256 hashing on non-Windows ARM64 platforms ([#&#8203;20805](https://github.com/astral-sh/uv/pull/20805)) ##### Bug fixes - Flush shell startup file updates before `uv tool update-shell` and `uv python update-shell` exit ([#&#8203;20842](https://github.com/astral-sh/uv/pull/20842)) - Make workspace-root dependency groups available to commands run from workspace members ([#&#8203;20840](https://github.com/astral-sh/uv/pull/20840)) - Resolve `--find-links` paths in requirements files relative to the containing file ([#&#8203;20832](https://github.com/astral-sh/uv/pull/20832)) - Respect configured indexes in `uv tool list --outdated` ([#&#8203;20770](https://github.com/astral-sh/uv/pull/20770)) ##### Documentation - Document Astral GPU indexes in the PyTorch guide ([#&#8203;20785](https://github.com/astral-sh/uv/pull/20785)) - Use consistent dependency-group argument descriptions throughout the CLI documentation ([#&#8203;20823](https://github.com/astral-sh/uv/pull/20823)) ### [`v0.12.0`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0120) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.33...0.12.0) Released on 2026-07-28. Since we released uv [0.11.0](https://github.com/astral-sh/uv/releases/tag/0.11.0) in March, we've accumulated changes that improve correctness, safety, and compatibility with specifications, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution. **We expect most users to be able to upgrade without making changes.** There are no breaking changes to the configuration of the [uv build backend](https://docs.astral.sh/uv/concepts/build-backend/). If your `[build-system]` table includes an upper bound on `uv_build`, update it to allow `uv_build` 0.12, e.g., `uv_build>=0.11.32,<0.13`. ##### Breaking changes - **Define build systems by default with `uv init`** ([#&#8203;19197](https://github.com/astral-sh/uv/pull/19197)) Projects created with `uv init` now declare a build system and are packaged by default. This was the default project layout all the way back in [v0.3](https://github.com/astral-sh/uv/releases/tag/0.3.0), but we found that the use of the `hatchling` build system was confusing to newcomers and consequently dropped use of a build system by default in [v0.4](https://github.com/astral-sh/uv/releases/tag/0.4.0). Since then, we've created our own build system (`uv_build`) with tight integration with uv and are excited to restore the default to a best-practice project layout. Previously, `uv init example` created an unpackaged layout containing `main.py` and a `pyproject.toml` without a build system. The project could declare dependencies but was not itself installed into its virtual environment. Now, `uv init example` defines a `[build-system]` using `uv_build`, places application source code in `src/example`, and includes a `[project.scripts]` entry named `example`. Defining a build system allows the project to be imported from tests or other code, installed as a dependency, and run as a command: ```console $ uv init example $ cd example $ uv run example Hello from example! ``` Existing projects are unaffected. Use [`uv init --no-package example`](https://docs.astral.sh/uv/concepts/projects/init/#creating-a-project-without-a-build-system) to create the previous unpackaged layout without a build system. See the [project creation documentation](https://docs.astral.sh/uv/concepts/projects/init/#applications) for more details. This stabilizes the `packaged-init` preview feature. - **Reject unsupported source distribution and wheel archive formats** ([#&#8203;18927](https://github.com/astral-sh/uv/pull/18927)) [PEP 625](https://peps.python.org/pep-0625/) requires [source distributions](https://docs.astral.sh/uv/concepts/resolution/#source-distribution) to use `.tar.gz` archives. Previously, uv also accepted legacy formats such as `.tar.bz2` and `.tar.xz`. Those formats are now rejected, including when referenced by an existing lockfile. Legacy `.zip` source distributions remain supported for backwards compatibility. Wheels and other ZIP archives can no longer contain entries compressed with bzip2, LZMA, or XZ. Entries must use the stored, DEFLATE, or zstd compression methods. Removing support for uncommon compression methods reduces uv's compression dependencies and the attack surface exposed when processing untrusted packages. You cannot opt out of this behavior. If you depend on a legacy source distribution that uses an unsupported format, we recommend rebuilding it as a `.tar.gz` archive and regenerating any lockfile containing references to the legacy archive. - **Reject wheel files that could replace the Python interpreter** ([#&#8203;20748](https://github.com/astral-sh/uv/pull/20748), [#&#8203;20749](https://github.com/astral-sh/uv/pull/20749)) uv already rejected wheel entry points named `python`, but case variants such as `Python` were still accepted. On case-insensitive filesystems, including common macOS and Windows setups, these entry points could overwrite the virtual environment's interpreter. Wheels could also place interpreter files in their `.data/scripts` directory or in paths such as `.data/data/bin/python`, bypassing the entry-point check and replacing the interpreter during installation. uv now rejects case-insensitive variants of reserved interpreter names and wheel data files that would be installed over an interpreter. This includes names such as `Python`, `python.py`, and `Python.exe`, along with other reserved interpreter names and their versioned variants. You cannot opt out of these checks. Rename conflicting entry points or wheel data files and rebuild the affected wheel. - **Prefer stable releases before falling back to pre-releases** ([#&#8203;19993](https://github.com/astral-sh/uv/pull/19993)) A dependency can introduce a [pre-release requirement](https://docs.astral.sh/uv/concepts/resolution/#pre-release-handling) after resolution starts. uv previously required each package's pre-release eligibility to be known before resolution began: the default `if-necessary-or-explicit` mode allowed them for direct requirements that explicitly requested a pre-release, or for packages that only published pre-releases. This meant that a pre-release requirement discovered in a dependency's metadata, e.g., `example>=2.0.0b1`, would fail to resolve even when a compatible pre-release existed. To resolve it, you had to add that dependency as a direct requirement or allow pre-releases across your entire dependency graph. The default mode is now `if-necessary`. uv tries stable candidates first and falls back to pre-releases when no stable candidate satisfies the active constraints. Like pip, uv now supports [pre-release requirements discovered transitively](https://docs.astral.sh/uv/pip/compatibility/#pre-release-compatibility), but can select different versions than previous uv releases when both stable and pre-release candidates are available. You can opt out of automatic pre-release selection with `--prerelease disallow`. Alternatively, `--prerelease allow` considers pre-releases without first preferring stable releases, and `--prerelease explicit` only allows them for direct requirements that mention a pre-release. The old `if-necessary-or-explicit` mode distinguished between explicitly requested pre-releases and packages with no stable releases. That distinction is unnecessary now that `if-necessary` handles both cases, including transitive requirements. The old name remains available as an alias but is deprecated and will be removed in a future release. - **Respect `--require-hashes` directives in `requirements.txt`** ([#&#8203;19336](https://github.com/astral-sh/uv/pull/19336)) Previously, `uv pip install` and `uv pip sync` warned about `--require-hashes` inside a `requirements.txt` file but still installed dependencies without checking their hashes. Now, the directive enables hash-checking mode, just as if `--require-hashes` had been passed on the command line. For example, this requirements file is no longer accepted because the requirement is neither pinned nor hashed: ```text --require-hashes anyio ``` You cannot opt out while the directive is present. Pin every requirement with `==` and provide its hash, or remove `--require-hashes` if hash checking is not intended. - **Reject MD5-only hashes in hash-checking mode** ([#&#8203;20758](https://github.com/astral-sh/uv/pull/20758)) Previously, `uv pip install --require-hashes` and `uv pip sync --require-hashes` accepted requirements whose only available digest used MD5. MD5 is not collision-resistant, so relying on it undermined installations that require hash verification and differed from pip's behavior. Hash-checking mode now requires at least one secure digest for every requirement. For example, the following requirement is rejected unless a secure hash, such as SHA-256, is also supplied: ```text anyio==4.0.0 --hash=md5:420d85e19168705cdf0223621b18831a ``` A secure hash can be supplied directly on the requirement or in a matching constraints file. Ordinary hash verification without `--require-hashes` continues to support MD5. You cannot opt out while hash checking is required. Regenerate affected hashes with SHA-256 or another supported secure hash. - **Reject invalid `pylock.toml` files and artifacts** ([#&#8203;20402](https://github.com/astral-sh/uv/pull/20402), [#&#8203;20440](https://github.com/astral-sh/uv/pull/20440), [#&#8203;20443](https://github.com/astral-sh/uv/pull/20443)) uv now validates additional requirements from the [`pylock.toml` specification](https://packaging.python.org/en/latest/specifications/pylock-toml/): - The `packages` array must be present. Previously, uv interpreted a missing array as an empty lockfile, so `uv pip sync` could uninstall an environment instead of rejecting malformed input. An explicitly empty `packages = []` array remains valid. - Lockfile filenames must be `pylock.toml` or a single-name variant such as `pylock.dev.toml`. Names such as `pylock..toml` and `pylock.foo.bar.toml` are rejected. - If a wheel, source distribution, or other artifact declares a `size`, the downloaded or cached artifact must match. Previously, an incorrect size was accepted when the hash was correct. Sizes reported by package indexes remain advisory. You cannot opt out of these checks. Regenerate malformed lockfiles, rename invalid filenames, and either correct or remove an incorrect optional `size` value. - **Honor explicit certificate overrides even when no certificates can be loaded** ([#&#8203;20741](https://github.com/astral-sh/uv/pull/20741), [#&#8203;20767](https://github.com/astral-sh/uv/pull/20767)) Previously, uv ignored [`SSL_CERT_FILE` or `SSL_CERT_DIR`](https://docs.astral.sh/uv/concepts/authentication/certificates/#custom-certificates) values that pointed to missing or inaccessible paths, empty files or directories, or sources without valid certificates. Instead, it fell back to its default trust roots, potentially allowing HTTPS connections that the configured override was intended to reject. Now, any non-empty `SSL_CERT_FILE` or `SSL_CERT_DIR` value replaces uv's default certificate roots, even when no valid certificates can be loaded. In that case, HTTPS requests fail because no certificates are trusted. This applies to package downloads and remote scripts, including GitHub Gists. Fix or unset the certificate override. Unsetting it restores the default trust store; empty environment-variable values continue to be ignored. - **Support pip-compatible `--cert` handling in `uv pip`** ([#&#8203;20418](https://github.com/astral-sh/uv/pull/20418)) The `uv pip` interface now accepts [`--cert <path>`](https://docs.astral.sh/uv/concepts/authentication/certificates/#custom-certificates), e.g.: ```console $ uv pip install --cert ./company-ca.pem example ``` As in pip, the provided PEM bundle replaces all other certificate sources for that invocation, including system certificates and `SSL_CERT_FILE` or `SSL_CERT_DIR`. This change has no effect unless you pass `--cert`. Include the necessary certificate authorities in the bundle. `--cert` is only supported by `uv pip` commands; other uv commands continue to use their existing certificate configuration. - **Discover projects relative to the script passed to `uv run`** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) Previously, `uv run project/script.py` discovered its project from the current directory, even when the script belonged to another project. uv now starts project and workspace discovery from the script's directory instead. For example, running `uv run other-project/script.py` now uses `other-project` and its dependencies. This fixes scripts that previously failed because their own dependencies were not installed, but can select a different environment than before. You can opt out of script-relative discovery by selecting a project explicitly, e.g., `uv run --project . other-project/script.py`. This stabilizes the `target-workspace-discovery` preview feature. - **Require `--force` before clearing a directory that is not a virtual environment** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) `uv venv --clear` previously removed any existing target directory, even if it was not a virtual environment. uv emitted a warning but still deleted the directory and its contents. Now, uv refuses to clear directories that do not contain a virtual environment. You can opt out of this safety check by explicitly passing `--force`, e.g., `uv venv --clear --force ./not-a-virtualenv`. This stabilizes the `venv-safe-clear` preview feature. - **Reject `--project` when initializing a project** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) `--project` selects an existing project, so it is not meaningful when initializing a new one. Previously, `uv init --project example` warned and initialized `example` anyway; if a positional path was also provided, `--project` was ignored. This usage is now an error. Use `uv init example` to initialize a project at the requested path, or `uv init --directory example` to change the working directory first. This stabilizes the `init-project-flag` preview feature. - **Reject missing or invalid `--project` paths** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) uv previously warned when `--project` referred to a missing directory or a file other than `pyproject.toml`, but then attempted to continue. This could produce confusing errors later or run against an unintended project. Now, `uv run --project missing python` fails immediately instead of continuing. You cannot opt out of this behavior. Create the directory first or select an existing project. Passing `--project path/to/pyproject.toml` remains supported and selects the file's parent directory. This stabilizes the `project-directory-must-exist` preview feature. - **Skip distributions with non-normalized filenames when publishing** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) Distribution filenames must use [normalized package names](https://packaging.python.org/en/latest/specifications/name-normalization/) and versions. For example, a wheel for version `1.01.0` should be named `example-1.1.0-py3-none-any.whl`, not `example-1.01.0-py3-none-any.whl`. Previously, `uv publish` warned about non-normalized filenames but still attempted to upload them. It now skips the affected wheels and source distributions instead. You cannot opt out of this behavior. Rebuild distributions with normalized filenames before publishing. This stabilizes the `publish-require-normalized` preview feature. - **Classify Conda environments named `base` and `root` by their paths** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) Conda environments named `base` or `root` were previously assumed to be the base Conda environment, even when they were ordinary child environments. uv now recognizes child Conda environments named `base` or `root` based on their paths, as it already does for other names. You can opt out of automatic interpreter selection by requesting an interpreter explicitly with `--python /path/to/python`. This stabilizes the `special-conda-env-names` preview feature. - **Reject broken `.venv` symlinks during environment discovery** ([#&#8203;20433](https://github.com/astral-sh/uv/pull/20433)) Previously, uv could ignore a broken `.venv` symlink and continue searching parent directories for another virtual environment. As a result, commands such as `uv pip install` could unexpectedly modify an unrelated ancestor environment. uv now stops at a broken `.venv` symlink and reports its exact path. Errors encountered while reading virtual environment metadata, including permission failures, are also reported immediately instead of being ignored. You cannot opt out of this behavior. Repair or remove the broken `.venv` symlink and correct any permissions that prevent uv from inspecting the environment. - **Reinstall matching installed Python patch versions instead of upgrading implicitly** ([#&#8203;20659](https://github.com/astral-sh/uv/pull/20659)) Before [Python upgrades](https://docs.astral.sh/uv/guides/install-python/#upgrading-python-versions) were supported, `uv python install 3.12 --reinstall` doubled as a way to install the latest Python 3.12 patch release. Now that `--upgrade` is available, `--reinstall` reinstalls the matching patch releases that are already present. For example, if Python 3.12.6 and 3.12.7 are installed, `uv python install 3.12 --reinstall` reinstalls both versions instead of installing the latest available 3.12 release. You can recover the previous upgrade behavior with `uv python install 3.12 --upgrade`. Combine `--upgrade --reinstall` to reinstall only the latest patch. - **Require `--upgrade-group` to name an existing dependency group** ([#&#8203;18957](https://github.com/astral-sh/uv/pull/18957)) Previously, `uv lock --upgrade-group docs` silently succeeded even if no `docs` [dependency group](https://docs.astral.sh/uv/concepts/projects/dependencies/#dependency-groups) existed. uv now validates the requested group against the project, its workspace members, and workspace-level dependency groups. You cannot opt out of this behavior. Correct the group name or add it to `[dependency-groups]`. Legacy `tool.uv.dev-dependencies` still satisfies `--upgrade-group dev`. - **Resolve relative indexes and find-links against `--directory`** ([#&#8203;20740](https://github.com/astral-sh/uv/pull/20740)) The `--directory` option changes the directory in which uv operates. Previously, relative index and find-links paths supplied on the command line were still resolved against the original working directory. uv now resolves `--index`, `--default-index`, `--index-url`, `--extra-index-url`, and `--find-links` relative to the directory selected by `--directory`. For example: ```console $ uv add --directory project --index ./packages example ``` This now uses `project/packages` instead of `./packages` in the original working directory. Absolute paths and indexes loaded from configuration files are unaffected. To preserve the previous target, pass an absolute path or adjust the relative path, e.g., `--index ../packages`. - **Preserve absolute paths provided to `uv add`** ([#&#8203;18402](https://github.com/astral-sh/uv/pull/18402)) `uv add` previously converted every local dependency into a project-relative path, even when the original request used an absolute path or a literal `file://` URL. It now preserves the form of the request in `pyproject.toml` and `uv.lock`: ```console $ uv add ../library # remains relative $ uv add /projects/library # remains absolute ``` Absolute paths make a project less portable. Use a relative path to avoid recording an absolute path. URLs containing expanded variables retain their existing relative-path behavior. - **Remove older PyPy distributions that are only available as bzip2 archives** ([#&#8203;20423](https://github.com/astral-sh/uv/pull/20423)) Older PyPy patch releases that are only distributed as `.tar.bz2` archives are no longer available through `uv python install`. These releases require unsupported bzip2 archives. The latest PyPy release for each supported Python minor version is available as a gzip-compressed archive and remains supported. For example, `uv python list 3.10 --all-versions` still includes the latest PyPy 3.10 release, but older bzip2-only patch releases are omitted. You cannot opt out of this behavior. Request a newer PyPy patch release instead. - **Omit excluded-package comments when annotations are disabled** ([#&#8203;20085](https://github.com/astral-sh/uv/pull/20085)) `uv pip compile --no-annotate` suppresses comments describing the generated requirements file. Previously, a footer listing packages excluded with `--unsafe-package` was still included, even though annotations were disabled. That footer is now omitted. You can recover the footer by removing `--no-annotate`. ##### Stabilizations - **TOML 1.0-compatible source distributions** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) `uv_build` now writes a TOML 1.0-compatible `pyproject.toml` when building source distributions, allowing older Python build frontends to consume projects that use newer TOML syntax. The original project file remains available in the archive as `pyproject.toml.orig`. This stabilizes the `toml-backwards-compatibility` preview feature. - **Automatic open-file limit adjustment on Unix** ([#&#8203;20225](https://github.com/astral-sh/uv/pull/20225)) On Linux and macOS, uv now attempts to raise the soft open-file limit at startup toward the hard limit, capped at 1,048,576 descriptors. The new limit also applies to subprocesses and reduces failures caused by running out of file descriptors. If the limit cannot be raised, uv continues running with the existing limit. This stabilizes the `adjust-ulimit` preview feature. ##### Preview features - Allow `uv upgrade` to target multiple packages, upgrade all production dependencies, and exclude selected dependencies ([#&#8203;20338](https://github.com/astral-sh/uv/pull/20338)) ##### Bug fixes - Include extras activated by dependency groups when evaluating conflicts ([#&#8203;20237](https://github.com/astral-sh/uv/pull/20237)) ### [`v0.11.33`](https://github.com/astral-sh/uv/releases/tag/0.11.33) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.32...0.11.33) ##### Release Notes Released on 2026-07-28. ##### Enhancements - Abort panics in release builds for smaller uv binaries ([#&#8203;20271](https://github.com/astral-sh/uv/pull/20271)) - Use `.tar.gz` archives for Pyodide installs ([#&#8203;20667](https://github.com/astral-sh/uv/pull/20667)) ##### Preview features - Avoid checking any scripts in `uv check` unless `--script` is passed ([#&#8203;20676](https://github.com/astral-sh/uv/pull/20676)) - Check locked tools for malware before cache reuse ([#&#8203;20301](https://github.com/astral-sh/uv/pull/20301)) - Write and read `package.metadata`-free lockfiles ([#&#8203;20688](https://github.com/astral-sh/uv/pull/20688), [#&#8203;20691](https://github.com/astral-sh/uv/pull/20691), [#&#8203;20685](https://github.com/astral-sh/uv/pull/20685), [#&#8203;20695](https://github.com/astral-sh/uv/pull/20695)) ##### Bug fixes - Correctly split dependencies into production and optional markers ([#&#8203;20671](https://github.com/astral-sh/uv/pull/20671)) - Fix discrepancies in argument parsing of exclude-newer ([#&#8203;20679](https://github.com/astral-sh/uv/pull/20679)) - Cleanup managed Python temporary directory on error ([#&#8203;20752](https://github.com/astral-sh/uv/pull/20752)) ##### Install uv 0.11.33 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.33 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.33/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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.33/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.33/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> ``` ### [`v0.11.32`](https://github.com/astral-sh/uv/releases/tag/0.11.32) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.31...0.11.32) ##### Release Notes Released on 2026-07-23. ##### Preview features - Add `--package` and `--all-packages` selection to `uv check` ([#&#8203;20628](https://github.com/astral-sh/uv/pull/20628)) - Allow `uv upgrade` to update multiple marker-specific declarations of the same package ([#&#8203;20335](https://github.com/astral-sh/uv/pull/20335)) - Reject non-canonically formatted lockfiles in `uv lock --check` and commands using `--locked` ([#&#8203;20646](https://github.com/astral-sh/uv/pull/20646)) - Regenerate non-canonically formatted lockfiles with `uv lock --refresh` ([#&#8203;20634](https://github.com/astral-sh/uv/pull/20634)) - Include best-effort information about the active environment in `uv workspace metadata` by default ([#&#8203;20643](https://github.com/astral-sh/uv/pull/20643)) ##### Performance - Skip dependency-group conflict expansion when no additional conflicts can be inferred ([#&#8203;20611](https://github.com/astral-sh/uv/pull/20611)) ##### Bug fixes - Fork universal resolutions when `Requires-Python` is discovered only from distribution metadata ([#&#8203;20586](https://github.com/astral-sh/uv/pull/20586)) ##### Install uv 0.11.32 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.32 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.32/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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.32/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.32/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> ``` ### [`v0.11.31`](https://github.com/astral-sh/uv/releases/tag/0.11.31) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.30...0.11.31) ##### Release Notes Released on 2026-07-21. ##### Enhancements - Allow workspace sources to reference members in another workspace by path ([#&#8203;18401](https://github.com/astral-sh/uv/pull/18401)) - Support `.venv` files containing paths to centralized project environments ([#&#8203;20022](https://github.com/astral-sh/uv/pull/20022)) - Update bundled Windows timezone data to IANA 2026c ([#&#8203;20554](https://github.com/astral-sh/uv/pull/20554)) ##### Preview features - Add an index-specific `hash-algorithm` setting for lockfile generation ([#&#8203;20605](https://github.com/astral-sh/uv/pull/20605)) ##### Configuration - Add `audit.malware-check` and `audit.malware-check-url` settings ([#&#8203;20587](https://github.com/astral-sh/uv/pull/20587)) ##### Performance - Avoid quadratic work when deduplicating transitive conflicts ([#&#8203;20578](https://github.com/astral-sh/uv/pull/20578)) ##### Bug fixes - Suggest `--emit-build-options` for unsupported `uv pip compile --emit-options` ([#&#8203;20582](https://github.com/astral-sh/uv/pull/20582)) - Reject source distributions and wheels with mismatched package names ([#&#8203;20432](https://github.com/astral-sh/uv/pull/20432)) - Avoid retrying TLS certificate verification failures ([#&#8203;16245](https://github.com/astral-sh/uv/pull/16245)) - Avoid warnings about `uv_build` settings for in-tree build backends ([#&#8203;20153](https://github.com/astral-sh/uv/pull/20153)) ##### Install uv 0.11.31 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.31 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.31/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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.31/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.31/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> ``` ### [`v0.11.30`](https://github.com/astral-sh/uv/releases/tag/0.11.30) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.29...0.11.30) ##### Release Notes Released on 2026-07-20. ##### Python - Add CPython 3.15.0b4 ([#&#8203;20519](https://github.com/astral-sh/uv/pull/20519)) ##### Preview features - Allow `uv workspace metadata --sync` to target the active virtual environment with `--active` ([#&#8203;20500](https://github.com/astral-sh/uv/pull/20500)) - Reuse centralized project environments when workspaces are accessed through symlinks ([#&#8203;20436](https://github.com/astral-sh/uv/pull/20436)) ##### Performance - Skip resolver candidates whose files are all excluded by `exclude-newer` ([#&#8203;20460](https://github.com/astral-sh/uv/pull/20460)) - Limit parallel cache reads to reduce resolver scheduling and allocation overhead ([#&#8203;20427](https://github.com/astral-sh/uv/pull/20427)) - Accelerate lockfile serialization with `toml_writer` ([#&#8203;20450](https://github.com/astral-sh/uv/pull/20450)) - Compact cached Simple API distribution metadata and hashes ([#&#8203;20463](https://github.com/astral-sh/uv/pull/20463), [#&#8203;20483](https://github.com/astral-sh/uv/pull/20483)) - Decode stale cache entries in a single blocking task ([#&#8203;20486](https://github.com/astral-sh/uv/pull/20486)) - Decode cached payloads outside resolver workers ([#&#8203;20464](https://github.com/astral-sh/uv/pull/20464)) - Cache resolver Python requirement markers ([#&#8203;20461](https://github.com/astral-sh/uv/pull/20461)) - Reuse resolver fork markers while recording preferences ([#&#8203;20462](https://github.com/astral-sh/uv/pull/20462)) ##### Bug fixes - Prevent skipped tar-wheel entries from causing unrelated files to be removed during uninstall ([#&#8203;20429](https://github.com/astral-sh/uv/pull/20429)) - Preserve literal `extends-environment` paths in `pyvenv.cfg` on Unix ([#&#8203;20466](https://github.com/astral-sh/uv/pull/20466)) ##### Documentation - Add a contribution guide ([#&#8203;20511](https://github.com/astral-sh/uv/pull/20511), [#&#8203;20552](https://github.com/astral-sh/uv/pull/20552)) ##### Install uv 0.11.30 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.30 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.30/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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.30/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.30/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> ``` ### [`v0.11.29`](https://github.com/astral-sh/uv/releases/tag/0.11.29) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.28...0.11.29) ##### Release Notes Released on 2026-07-15. ##### Python - Use gzip-compressed artifacts for PyPy downloads ([#&#8203;20265](https://github.com/astral-sh/uv/pull/20265)) ##### Enhancements - Add JSON output to `uv tree` ([#&#8203;19978](https://github.com/astral-sh/uv/pull/19978)) - Add CUDA 13.2 as a supported PyTorch backend ([#&#8203;20267](https://github.com/astral-sh/uv/pull/20267)) - Prefer local artifacts over URLs when installing from `pylock.toml` ([#&#8203;20393](https://github.com/astral-sh/uv/pull/20393)) - Clarify diagnostics for unsatisfiable direct requirement ranges ([#&#8203;20227](https://github.com/astral-sh/uv/pull/20227)) - Include the selected project name in missing-extra errors ([#&#8203;20358](https://github.com/astral-sh/uv/pull/20358)) ##### Preview features - Preserve extras and dependency-group conflict context when selecting locked project tools ([#&#8203;20078](https://github.com/astral-sh/uv/pull/20078)) - Split OSV audit queries that exceed the service's 1,000-package limit ([#&#8203;20398](https://github.com/astral-sh/uv/pull/20398)) - Apply OSV fixed-version information only to the matching package and ecosystem ([#&#8203;20399](https://github.com/astral-sh/uv/pull/20399)) - Skip the virtualenv distutils monkeypatch on Python 3.10 and later ([#&#8203;20222](https://github.com/astral-sh/uv/pull/20222)) - Report invalid `uv audit --service-url` values instead of panicking ([#&#8203;20374](https://github.com/astral-sh/uv/pull/20374)) - Include preview settings in the published SchemaStore schema ([#&#8203;20304](https://github.com/astral-sh/uv/pull/20304)) ##### Performance - Reduce resolver work by widening selected versions across ranges without other known candidates ([#&#8203;20115](https://github.com/astral-sh/uv/pull/20115)) - Defer client and build setup for no-op `uv sync` operations ([#&#8203;20364](https://github.com/astral-sh/uv/pull/20364)) - Reuse workspace discovery during frozen syncs ([#&#8203;20363](https://github.com/astral-sh/uv/pull/20363)) - Reuse workspace discovery after resolving settings ([#&#8203;20356](https://github.com/astral-sh/uv/pull/20356)) - Reuse workspace discovery in `uv tree`, `uv export`, `uv format`, and `uv audit` ([#&#8203;20359](https://github.com/astral-sh/uv/pull/20359)) - Avoid cache and interpreter setup when reading a project version ([#&#8203;20360](https://github.com/astral-sh/uv/pull/20360)) ##### Bug fixes - Reject duplicate active package entries in `pylock.toml` ([#&#8203;20391](https://github.com/astral-sh/uv/pull/20391)) - Preserve direct-archive hashes in `uv pip freeze` output ([#&#8203;20395](https://github.com/astral-sh/uv/pull/20395)) - Explain conflicting root requirements instead of displaying an empty version range ([#&#8203;20228](https://github.com/astral-sh/uv/pull/20228)) - Prevent build-backend data paths from escaping the project or bypassing wheel exclusions ([#&#8203;20397](https://github.com/astral-sh/uv/pull/20397)) - Reject PEP 517 backend paths outside the source tree, including paths that escape through symlinks ([#&#8203;20387](https://github.com/astral-sh/uv/pull/20387)) - Redact credentials from failed Git fetch commands ([#&#8203;20401](https://github.com/astral-sh/uv/pull/20401)) - Fix exclusive post-release range ordering to match PEP 440 ([#&#8203;20268](https://github.com/astral-sh/uv/pull/20268)) - Canonicalize equivalent PEP 440 ranges during dependency resolution ([#&#8203;20182](https://github.com/astral-sh/uv/pull/20182)) - Honor Python version pins when initializing scripts ([#&#8203;20404](https://github.com/astral-sh/uv/pull/20404)) - Respect package-scoped source filtering for scripts ([#&#8203;20389](https://github.com/astral-sh/uv/pull/20389)) - Report existing environment incompatibilities when `uv pip install --strict` has nothing to install ([#&#8203;20388](https://github.com/astral-sh/uv/pull/20388)) - Continue scanning `platlib` when `purelib` is missing ([#&#8203;20405](https://github.com/astral-sh/uv/pull/20405)) - Handle versionless `.egg-info` files as legacy package metadata ([#&#8203;20403](https://github.com/astral-sh/uv/pull/20403)) - Make repeated locking idempotent for impossible cross-variable platform markers ([#&#8203;20369](https://github.com/astral-sh/uv/pull/20369)) - Report invalid cloud credential endpoint URLs instead of panicking ([#&#8203;20372](https://github.com/astral-sh/uv/pull/20372)) - Report invalid `pylock.toml` artifact URLs instead of panicking ([#&#8203;20373](https://github.com/astral-sh/uv/pull/20373)) - Report non-UTF-8 virtual environment paths instead of panicking while generating activation scripts ([#&#8203;20375](https://github.com/astral-sh/uv/pull/20375)) - Return an unsupported-operation error from unimplemented build-backend requirement hooks ([#&#8203;20376](https://github.com/astral-sh/uv/pull/20376)) ##### Documentation - Clarify `--no-build` behavior for editable requirements ([#&#8203;20234](https://github.com/astral-sh/uv/pull/20234)) - Document uv's threat model ([#&#8203;20236](https://github.com/astral-sh/uv/pull/20236)) - Reduce the number of badges in the README ([#&#8203;11257](https://github.com/astral-sh/uv/pull/11257)) ##### Install uv 0.11.29 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.29 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.29/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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.29/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.29/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> ``` ### [`v0.11.28`](https://github.com/astral-sh/uv/releases/tag/0.11.28) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.27...0.11.28) ##### 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 ([#&#8203;20069](https://github.com/astral-sh/uv/pull/20069)) ##### Enhancements - Improve trace logs for unexpected error chains ([#&#8203;20220](https://github.com/astral-sh/uv/pull/20220)) - Move lockfile update guidance to a hint ([#&#8203;20219](https://github.com/astral-sh/uv/pull/20219)) - Preserve indentation for multiline error causes ([#&#8203;20156](https://github.com/astral-sh/uv/pull/20156)) - Render user errors with their cause chains ([#&#8203;20217](https://github.com/astral-sh/uv/pull/20217)) - Route final command errors through the printer to respect `-q` and `-qq` ([#&#8203;20163](https://github.com/astral-sh/uv/pull/20163)) - Use standard rendering for `uv build` errors ([#&#8203;20159](https://github.com/astral-sh/uv/pull/20159)) - Use standard rendering for tool requirement errors ([#&#8203;20160](https://github.com/astral-sh/uv/pull/20160)) ##### Performance - Only compile bytecode for installed distributions in `uv pip install` ([#&#8203;19914](https://github.com/astral-sh/uv/pull/19914)) - Avoid allocating URL-safe Git revisions ([#&#8203;20194](https://github.com/astral-sh/uv/pull/20194)) - Avoid allocating canonical Python request strings ([#&#8203;20193](https://github.com/astral-sh/uv/pull/20193)) - Avoid allocating custom Astral mirror URLs ([#&#8203;20204](https://github.com/astral-sh/uv/pull/20204)) - Avoid allocating expanded compatibility tags ([#&#8203;20190](https://github.com/astral-sh/uv/pull/20190)) - Avoid allocating shell strings that need no escaping ([#&#8203;20196](https://github.com/astral-sh/uv/pull/20196)) - Avoid allocating static ABI descriptions ([#&#8203;20201](https://github.com/astral-sh/uv/pull/20201)) - Avoid allocating static Windows executable names ([#&#8203;20200](https://github.com/astral-sh/uv/pull/20200)) - Avoid allocating static dependency table names ([#&#8203;20199](https://github.com/astral-sh/uv/pull/20199)) - Avoid allocating static platform triple components ([#&#8203;20195](https://github.com/astral-sh/uv/pull/20195)) - Avoid allocating static resolver report labels ([#&#8203;20198](https://github.com/astral-sh/uv/pull/20198)) - Avoid allocating static unavailable-version messages ([#&#8203;20197](https://github.com/astral-sh/uv/pull/20197)) - Avoid allocating unchanged Python download architectures ([#&#8203;20202](https://github.com/astral-sh/uv/pull/20202)) - Avoid allocating unchanged paths during case normalization ([#&#8203;20203](https://github.com/astral-sh/uv/pull/20203)) - Avoid allocations when expanding group conflicts ([#&#8203;20211](https://github.com/astral-sh/uv/pull/20211)) - Avoid allocations when formatting requirements ([#&#8203;20206](https://github.com/astral-sh/uv/pull/20206)) - Avoid cloning credential lookup services ([#&#8203;20210](https://github.com/astral-sh/uv/pull/20210)) - Avoid cloning dry-run distributions ([#&#8203;20209](https://github.com/astral-sh/uv/pull/20209)) - Avoid cloning owned dependency metadata ([#&#8203;20212](https://github.com/astral-sh/uv/pull/20212)) - Avoid redundant direct URL clones ([#&#8203;20207](https://github.com/astral-sh/uv/pull/20207)) - Create metadata version errors lazily ([#&#8203;20205](https://github.com/astral-sh/uv/pull/20205)) - Optimize expanded tag compatibility checks ([#&#8203;20171](https://github.com/astral-sh/uv/pull/20171)) - Optimize parsing of single-digit three-part versions ([#&#8203;20118](https://github.com/astral-sh/uv/pull/20118)) ##### Bug fixes - Avoid overflow when computing HTTP cache age ([#&#8203;20178](https://github.com/astral-sh/uv/pull/20178)) - Respect `--upgrade` when `upgrade-package` is configured ([#&#8203;19955](https://github.com/astral-sh/uv/pull/19955)) - Support `uv tree` in dependency-group-only projects ([#&#8203;20167](https://github.com/astral-sh/uv/pull/20167)) - Treat cache entries as stale at exact expiration ([#&#8203;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> ``` ### [`v0.11.27`](https://github.com/astral-sh/uv/releases/tag/0.11.27) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.26...0.11.27) ##### Release Notes Released on 2026-07-06. ##### Enhancements - Continue on ignored errors when fetching wheel metadata ([#&#8203;12255](https://github.com/astral-sh/uv/pull/12255)) - Use caching for `--python-downloads-json-url` ([#&#8203;16749](https://github.com/astral-sh/uv/pull/16749)) ##### Preview features - Discover extensionless shebang scripts in `uv workspace list --scripts` ([#&#8203;20099](https://github.com/astral-sh/uv/pull/20099)) ##### Performance - Avoid full site-packages scans for direct reinstalls ([#&#8203;20119](https://github.com/astral-sh/uv/pull/20119)) - Avoid redundant pyproject parsing ([#&#8203;20076](https://github.com/astral-sh/uv/pull/20076)) - Cache default dependency markers when reading locks ([#&#8203;20125](https://github.com/astral-sh/uv/pull/20125)) - Enable SIMD-accelerated TOML parsing ([#&#8203;20079](https://github.com/astral-sh/uv/pull/20079)) - Intern `requires-python` specifiers in Simple API parsing ([#&#8203;20104](https://github.com/astral-sh/uv/pull/20104)) - Read cache entries into exact-sized buffers ([#&#8203;20120](https://github.com/astral-sh/uv/pull/20120)) - Reduce VersionSpecifiers parsing allocations ([#&#8203;20105](https://github.com/astral-sh/uv/pull/20105)) - Reduce site-packages scan allocation overhead ([#&#8203;20087](https://github.com/astral-sh/uv/pull/20087)) - Reuse package names when parsing wheel filenames ([#&#8203;20110](https://github.com/astral-sh/uv/pull/20110)) - Sort Simple API files after grouping ([#&#8203;20112](https://github.com/astral-sh/uv/pull/20112)) ##### Bug fixes - Always emit `packages` table for pylock.toml ([#&#8203;20145](https://github.com/astral-sh/uv/pull/20145)) - Avoid blank line for empty `uv pip tree` ([#&#8203;20062](https://github.com/astral-sh/uv/pull/20062)) - Encode hashes in file paths ([#&#8203;19807](https://github.com/astral-sh/uv/pull/19807)) - Error on a registry uv.lock package without a version instead of panicking ([#&#8203;19855](https://github.com/astral-sh/uv/pull/19855)) - Preserve conditional extra markers in exports ([#&#8203;20148](https://github.com/astral-sh/uv/pull/20148)) - Skip the ambiguous authority check for file transport VCS URLs ([#&#8203;20086](https://github.com/astral-sh/uv/pull/20086)) - Sync index format when `uv add --index` updates an existing index URL ([#&#8203;19818](https://github.com/astral-sh/uv/pull/19818)) ##### Other changes - Re-add `pub` APIs used in Pixi ([#&#8203;20074](https://github.com/astral-sh/uv/pull/20074)) - Update Rust toolchain to 1.96.1 ([#&#8203;20103](https://github.com/astral-sh/uv/pull/20103)) ##### Install uv 0.11.27 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.27 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.27/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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.27/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.27/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> ``` ### [`v0.11.26`](https://github.com/astral-sh/uv/releases/tag/0.11.26) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.25...0.11.26) ##### Release Notes Released on 2026-06-30. ##### Performance - Adapt uv to IDs-only PubGrub dependencies ([#&#8203;20048](https://github.com/astral-sh/uv/pull/20048)) - Avoid allocations in `ForkMap::contains` ([#&#8203;20023](https://github.com/astral-sh/uv/pull/20023)) - Reuse resolver work across PubGrub iterations ([#&#8203;20020](https://github.com/astral-sh/uv/pull/20020)) - Speed up candidate selection for disjoint ranges ([#&#8203;20026](https://github.com/astral-sh/uv/pull/20026)) ##### Bug fixes - Warn when the build cache is inside the source directory ([#&#8203;20056](https://github.com/astral-sh/uv/pull/20056)) ##### Install uv 0.11.26 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.26 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.26/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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.26/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.26/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> ``` ### [`v0.11.25`](https://github.com/astral-sh/uv/releases/tag/0.11.25) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.24...0.11.25) ##### Release Notes Released on 2026-06-26. ##### Security This release updates our tar library, [astral-tokio-tar](https://github.com/astral-sh/tokio-tar), to v0.6.3, which includes over 20 changes that harden our tar handling against [parser differentials](https://www.brainonfire.net/blog/2022/04/11/what-is-parser-mismatch/). uv may reject source distributions with malformed or ambiguous content that were previously accepted. See the [upstream commits](https://github.com/astral-sh/tokio-tar/compare/v0.6.2...v0.6.3) for a full list of changes. ##### Enhancements - Add a full "lockfile" to tool receipts ([#&#8203;18937](https://github.com/astral-sh/uv/pull/18937)) - Allow scoped overrides to add dependencies ([#&#8203;19974](https://github.com/astral-sh/uv/pull/19974)) - Avoid writing redundant lockfile markers with `tool.uv.environments` ([#&#8203;19933](https://github.com/astral-sh/uv/pull/19933)) - Factor supported environments out of lockfile markers ([#&#8203;19969](https://github.com/astral-sh/uv/pull/19969)) - Recommend our own build backend in the build frontend ([#&#8203;19994](https://github.com/astral-sh/uv/pull/19994)) - Reject wheels with multiple .dist-info directories ([#&#8203;19986](https://github.com/astral-sh/uv/pull/19986)) - Simplify dependency markers under parent reachability ([#&#8203;19971](https://github.com/astral-sh/uv/pull/19971)) - Support scoped dependency exclusions ([#&#8203;19977](https://github.com/astral-sh/uv/pull/19977)) - Support scoped dependency overrides ([#&#8203;19970](https://github.com/astral-sh/uv/pull/19970)) - Explain why files are skipped in registry index parsing ([#&#8203;19983](https://github.com/astral-sh/uv/pull/19983)) ##### Preview features - Add `uv workspace list --scripts` ([#&#8203;20009](https://github.com/astral-sh/uv/pull/20009)) - Support centralised environments in `uv venv` ([#&#8203;19912](https://github.com/astral-sh/uv/pull/19912)) - Use locked ty versions in `uv check` ([#&#8203;19884](https://github.com/astral-sh/uv/pull/19884)) - Add centralized storage of project environments ([#&#8203;18214](https://github.com/astral-sh/uv/pull/18214)) - Verify lockfile hashes before reusing a cached ty in `uv check` ([#&#8203;19995](https://github.com/astral-sh/uv/pull/19995)) - Use locked dependency selection for `uv check --script` ([#&#8203;19989](https://github.com/astral-sh/uv/pull/19989)) ##### Bug fixes - Preserve standalone markers in workspace metadata ([#&#8203;20011](https://github.com/astral-sh/uv/pull/20011)) - Reject `uv build` if the cache dir is enclosed ([#&#8203;19991](https://github.com/astral-sh/uv/pull/19991)) ##### Install uv 0.11.25 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.25 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.25/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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.25/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.25/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> ``` ### [`v0.11.24`](https://github.com/astral-sh/uv/releases/tag/0.11.24) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.23...0.11.24) ##### Release Notes Released on 2026-06-23. ##### Python - Add CPython 3.15.0b3 ([#&#8203;19964](https://github.com/astral-sh/uv/pull/19964)) ##### Preview features - Make project environments relocatable under preview ([#&#8203;19965](https://github.com/astral-sh/uv/pull/19965)) ##### Performance - Use a compact index for lazy version maps ([#&#8203;19959](https://github.com/astral-sh/uv/pull/19959)) ##### Bug fixes - Allow disabling `exclude-newer` ([#&#8203;19934](https://github.com/astral-sh/uv/pull/19934)) - Avoid archive id collisions ([#&#8203;19949](https://github.com/astral-sh/uv/pull/19949)) - Reapply "Fix transparent Python upgrades in project environments" ([#&#8203;19928](https://github.com/astral-sh/uv/pull/19928)) - Clean up partial tool entrypoint installs ([#&#8203;19966](https://github.com/astral-sh/uv/pull/19966)) - Fix relocatable `activate.fish` and broaden Fish version support ([#&#8203;19856](https://github.com/astral-sh/uv/pull/19856)) ##### Install uv 0.11.24 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.24 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.24/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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.24/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.24/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> ``` ### [`v0.11.23`](https://github.com/astral-sh/uv/releases/tag/0.11.23) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.22...0.11.23) ##### Release Notes Released on 2026-06-19. ##### Bug fixes - Revert "Fix transparent Python upgrades in project environments" to mitigate unintended breakage in `pre-commit-uv` ([#&#8203;19925](https://github.com/astral-sh/uv/pull/19925)) - Restore old behavior where workspace members "hidden" by an intermediate `pyproject.toml` would be treated as standalone projects ([#&#8203;19926](https://github.com/astral-sh/uv/pull/19926)) ##### Install uv 0.11.23 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.23 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.23/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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.23/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.23/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> ``` ### [`v0.11.22`](https://github.com/astral-sh/uv/releases/tag/0.11.22) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.21...0.11.22) ##### Release Notes Released on 2026-06-18. ##### Enhancements - Publish wheels before sdists in `uv publish` ([#&#8203;19831](https://github.com/astral-sh/uv/pull/19831)) - Add `TY` and `RUFF` env vars for providing paths for binaries used by `uv format` and `uv check` ([#&#8203;19821](https://github.com/astral-sh/uv/pull/19821)) ##### Preview features - Allow configuring preview features in `uv.toml` and `pyproject.toml` ([#&#8203;18437](https://github.com/astral-sh/uv/pull/18437)) - Update the lockfile during `uv check --no-sync` ([#&#8203;19909](https://github.com/astral-sh/uv/pull/19909)) - Add `--script` to `uv check` and `uv metadata` ([#&#8203;19860](https://github.com/astral-sh/uv/pull/19860)) - Report workspace-exclusive dependency groups in `workspace metadata` ([#&#8203;19862](https://github.com/astral-sh/uv/pull/19862)) - Support SARIF as a `uv audit` output ([#&#8203;19872](https://github.com/astral-sh/uv/pull/19872)) ##### Performance - Use a more deadlock-resistant concurrent hashmap in the resolver ([#&#8203;19532](https://github.com/astral-sh/uv/pull/19532)) ##### Bug fixes - Update string marker ordering semantics to match [upstream clarified rules](https://github.com/pypa/packaging.python.org/pull/1988) ([#&#8203;19808](https://github.com/astral-sh/uv/pull/19808)) - Reject extras that have the same normalized name ([#&#8203;19871](https://github.com/astral-sh/uv/pull/19871)) - Reject dependency group `include-group` entries that have additional fields ([#&#8203;19866](https://github.com/astral-sh/uv/pull/19866)) - Reject invalid UTF-8 URL credentials ([#&#8203;19814](https://github.com/astral-sh/uv/pull/19814)) - Validate that PEP 517 `backend-path`s exist when building sdists ([#&#8203;19834](https://github.com/astral-sh/uv/pull/19834)) - Validate that `pylock.toml` files do not have an unsupported a `lock-version` ([#&#8203;19869](https://github.com/astral-sh/uv/pull/19869)) - Validate that the environment satisfies the `packages.requires-python` of a `pylock.toml` ([#&#8203;19868](https://github.com/astral-sh/uv/pull/19868)) - Allow `uv` to be recursively invoked by PEP 517 build hooks ([#&#8203;19879](https://github.com/astral-sh/uv/pull/19879)) - Allow empty `credentials.toml` files ([#&#8203;19815](https://github.com/astral-sh/uv/pull/19815)) - Fix transparent Python upgrades in project environments ([#&#8203;19890](https://github.com/astral-sh/uv/pull/19890)) - Handle non-file editable URLs in `uv pip list` ([#&#8203;19867](https://github.com/astral-sh/uv/pull/19867)) - Fix incorrect output from `uv tree --invert` ([#&#8203;19910](https://github.com/astral-sh/uv/pull/19910)) - Fix environment locking of `uv venv` in a project ([#&#8203;19837](https://github.com/astral-sh/uv/pull/19837)) - Fix handling of workspace-exclusive dependency groups in `uv tree` ([#&#8203;19905](https://github.com/astral-sh/uv/pull/19905)) ##### Documentation - Archive the 0.10.x changelog ([#&#8203;19813](https://github.com/astral-sh/uv/pull/19813)) ##### Other changes - Mark more tests as requiring network for vendors that need to run tests offline ([#&#8203;19819](https://github.com/astral-sh/uv/pull/19819)) ##### Install uv 0.11.22 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.22 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.22/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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.22/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.22/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> ``` ### [`v0.11.21`](https://github.com/astral-sh/uv/releases/tag/0.11.21) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.20...0.11.21) ##### Release Notes Released on 2026-06-11. ##### Python - Add CPython 3.13.14 and 3.14.6 ([#&#8203;19787](https://github.com/astral-sh/uv/pull/19787)) ##### Preview features - Add `environment.root` to `uv workspace metadata --sync` ([#&#8203;19760](https://github.com/astral-sh/uv/pull/19760)) - Allow `uv upgrade` to update a single dependency constraint ([#&#8203;19738](https://github.com/astral-sh/uv/pull/19738)) - Compute and pass `uv workspace metadata` payload in `ty check` ([#&#8203;19763](https://github.com/astral-sh/uv/pull/19763)) - Make packaged applications the default for `uv init` ([#&#8203;17841](https://github.com/astral-sh/uv/pull/17841)) ##### Performance - Add parallel discovery of Python versions for `uv python list` ([#&#8203;18684](https://github.com/astral-sh/uv/pull/18684)) - Avoid normalizing source distribution names twice ([#&#8203;19784](https://github.com/astral-sh/uv/pull/19784)) ##### Bug fixes - Improve cache robustness and pruning behavior - Allow CI cache pruning without an sdist bucket ([#&#8203;19802](https://github.com/astral-sh/uv/pull/19802)) - Avoid overflow when reading malformed cache entries ([#&#8203;19799](https://github.com/astral-sh/uv/pull/19799)) - Preserve cached Python downloads during cache pruning ([#&#8203;19795](https://github.com/astral-sh/uv/pull/19795)) - Reject running inside the cache ([#&#8203;19659](https://github.com/astral-sh/uv/pull/19659)) - Fix Python discovery and version request edge cases - Avoid panics for Unicode Python version requests ([#&#8203;19797](https://github.com/astral-sh/uv/pull/19797)) - Fix handling of non-critical errors in `uv python list` with path requests ([#&#8203;19774](https://github.com/astral-sh/uv/pull/19774)) - Fix stop-discovery-at regression ([#&#8203;19769](https://github.com/astral-sh/uv/pull/19769)) - Harden parsing and validation for package metadata, requirements, markers, URLs, and conflict sets - Allow trailing commas in version specifiers ([#&#8203;19806](https://github.com/astral-sh/uv/pull/19806)) - Avoid panics for invalid UTF-8 URL credentials ([#&#8203;19800](https://github.com/astral-sh/uv/pull/19800)) - Avoid panics for malformed source distribution filenames ([#&#8203;19776](https://github.com/astral-sh/uv/pull/19776)) - Avoid panics for trailing extra separators ([#&#8203;19779](https://github.com/astral-sh/uv/pull/19779)) - Avoid stack overflow for recursive requirements path aliases ([#&#8203;19777](https://github.com/astral-sh/uv/pull/19777)) - Ignore reversed string compatible-release markers ([#&#8203;19782](https://github.com/astral-sh/uv/pull/19782)) - Reject duplicate entries in conflict sets ([#&#8203;19801](https://github.com/astral-sh/uv/pull/19801)) - Reject malformed hash options in requirements files ([#&#8203;19783](https://github.com/astral-sh/uv/pull/19783)) - Reject source distribution filenames without a separator ([#&#8203;19803](https://github.com/astral-sh/uv/pull/19803)) - Use UTF-8 lengths for requirement errors ([#&#8203;19781](https://github.com/astral-sh/uv/pull/19781)) - Use UTF-8 lengths for trailing marker errors ([#&#8203;19796](https://github.com/astral-sh/uv/pull/19796)) - Use byte offsets when peeking over requirements ([#&#8203;19780](https://github.com/astral-sh/uv/pull/19780)) - Validate GraalPy ABI suffixes ([#&#8203;19805](https://github.com/astral-sh/uv/pull/19805)) - Improve wheel entry-point error handling and virtual environment activation quoting - Propagate errors when reading wheel entry points ([#&#8203;19794](https://github.com/astral-sh/uv/pull/19794)) - Quote virtual environment activation paths with shell metacharacters ([#&#8203;19798](https://github.com/astral-sh/uv/pull/19798)) ##### Install uv 0.11.21 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.21 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.21/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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.21/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.21/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> ``` ### [`v0.11.20`](https://github.com/astral-sh/uv/releases/tag/0.11.20) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.19...0.11.20) ##### Release Notes Released on 2026-06-10. ##### Enhancements - Add `--emit-index-url` and `--emit-find-links` to `uv export` ([#&#8203;18370](https://github.com/astral-sh/uv/pull/18370)) - Add `--find-links` support for `uv pip list` ([#&#8203;16103](https://github.com/astral-sh/uv/pull/16103)) - Group executable install errors during `uv python install` ([#&#8203;19691](https://github.com/astral-sh/uv/pull/19691)) - Use ICF in macOS release builds to reduce binary sizes ([#&#8203;19615](https://github.com/astral-sh/uv/pull/19615)) ##### Preview features - Add initial hidden `uv upgrade` command ([#&#8203;19678](https://github.com/astral-sh/uv/pull/19678)) - Reject Git revisions in `uv upgrade` ([#&#8203;19742](https://github.com/astral-sh/uv/pull/19742)) ##### Configuration - Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`, `UV_NO_INSTALL_LOCAL` ([#&#8203;19323](https://github.com/astral-sh/uv/pull/19323)) ##### Performance - Speed up discovery of large workspaces ([#&#8203;18311](https://github.com/astral-sh/uv/pull/18311)) ##### Bug fixes - Allow unknown preview flags with a warning again ([#&#8203;19669](https://github.com/astral-sh/uv/pull/19669)) - Apply dependency exclusions to direct requirements ([#&#8203;19699](https://github.com/astral-sh/uv/pull/19699)) - Avoid following external symlinks during cache clean ([#&#8203;19682](https://github.com/astral-sh/uv/pull/19682)) - Avoid following symlinks during cache prune ([#&#8203;19543](https://github.com/astral-sh/uv/pull/19543)) - Fix Git cache keys for worktrees and packed refs ([#&#8203;19706](https://github.com/astral-sh/uv/pull/19706)) - Make resolver error handling iterative to avoid stack overflows ([#&#8203;19695](https://github.com/astral-sh/uv/pull/19695)) - Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#&#8203;19703](https://github.com/astral-sh/uv/pull/19703)) - Rebuild explicit local directory tool installs ([#&#8203;19591](https://github.com/astral-sh/uv/pull/19591)) - Validate egg top-level entries as identifiers ([#&#8203;19679](https://github.com/astral-sh/uv/pull/19679)) ##### Documentation - Document `--find-links` caching behavior ([#&#8203;19585](https://github.com/astral-sh/uv/pull/19585)) - Add a small section for malware checks ([#&#8203;19680](https://github.com/astral-sh/uv/pull/19680)) ##### Install uv 0.11.20 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.20 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.20/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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.20/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.20/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> ``` ### [`v0.11.19`](https://github.com/astral-sh/uv/releases/tag/0.11.19) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.18...0.11.19) ##### Release Notes Released on 2026-06-03. ##### Python - Add CPython 3.15.0b2 ([#&#8203;19531](https://github.com/astral-sh/uv/pull/19531)) ##### Enhancements - Always compute SHA256 for remote distributions ([#&#8203;19662](https://github.com/astral-sh/uv/pull/19662)) - Add PyEmscripten platform (PEP 783) ([#&#8203;19629](https://github.com/astral-sh/uv/pull/19629)) - Add Pyodide 2025 target triple ([#&#8203;19653](https://github.com/astral-sh/uv/pull/19653)) ##### Preview features - Make preview features for commands have names that aren't ambiguous with the command ([#&#8203;19645](https://github.com/astral-sh/uv/pull/19645)) - Respect `--isolated` in `uv check` ([#&#8203;19666](https://github.com/astral-sh/uv/pull/19666)) ##### Bug fixes - Continue tool uninstall after dangling receipts ([#&#8203;19623](https://github.com/astral-sh/uv/pull/19623)) - Skip Unix-specific installation steps when cross-installing Windows Python distributions ([#&#8203;19424](https://github.com/astral-sh/uv/pull/19424)) ##### Install uv 0.11.19 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.19 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.19/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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.19/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.19/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> ``` ### [`v0.11.18`](https://github.com/astral-sh/uv/releases/tag/0.11.18) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.17...0.11.18) ##### Release Notes Released on 2026-06-01. ##### Performance - Fix performance regression in unzip of local wheels ([#&#8203;19637](https://github.com/astral-sh/uv/pull/19637)) ##### Preview - Add `uv check` to run `ty` from uv ([#&#8203;19605](https://github.com/astral-sh/uv/pull/19605)) ##### Bug fixes - Update activation scripts with upstream fixes ([#&#8203;19628](https://github.com/astral-sh/uv/pull/19628)) ##### Other changes - Bump MSRV to 1.94 ([#&#8203;19600](https://github.com/astral-sh/uv/pull/19600)) ##### Install uv 0.11.18 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.18 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.18/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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.18/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.18/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> ``` ### [`v0.11.17`](https://github.com/astral-sh/uv/releases/tag/0.11.17) [Compare Source](https://github.com/astral-sh/uv/compare/0.11.16...0.11.17) ##### Release Notes Released on 2026-05-28. ##### Enhancements - Add a diagnostic for `uv add` with standard library modules ([#&#8203;19572](https://github.com/astral-sh/uv/pull/19572)) - Expose `uv workspace` and its `list` subcommand in help output ([#&#8203;19533](https://github.com/astral-sh/uv/pull/19533)) - Improve the "403 forbidden" hint to suggest `ignore-error-codes` when applicable ([#&#8203;19521](https://github.com/astral-sh/uv/pull/19521)) - Skip direct URL lock freshness checks while offline ([#&#8203;19596](https://github.com/astral-sh/uv/pull/19596)) - Add `import-names` and `import-namespaces` support to `uv-build` ([PEP 794](https://peps.python.org/pep-0794/)) ([#&#8203;19380](https://github.com/astral-sh/uv/pull/19380)) - Add a `--no-editable-package` flag to various commands ([#&#8203;19584](https://github.com/astral-sh/uv/pull/19584)) - Infer Python version requests from source trees in `uv tool` invocations ([#&#8203;19577](https://github.com/astral-sh/uv/pull/19577)) ##### Preview features - Add module owners to `uv workspace metadata` ([#&#8203;19122](https://github.com/astral-sh/uv/pull/19122)) - Do not allow `uv venv --clear` to remove non-virtual environments ([#&#8203;19595](https://github.com/astral-sh/uv/pull/19595)) ##### Bug fixes - Improve the performance of large entries in `tool.uv.conflicts` ([#&#8203;19538](https://github.com/astral-sh/uv/pull/19538)) - Avoid modifying the parent process' env with `--env-file` in `uv run` ([#&#8203;19567](https://github.com/astral-sh/uv/pull/19567)) - Fix script environment creation for scripts with long filenames ([#&#8203;19539](https://github.com/astral-sh/uv/pull/19539)) - Fix transitive Git archive dependencies in lockfiles ([#&#8203;19589](https://github.com/astral-sh/uv/pull/19589)) - Preserve Git repository URLs in direct URL metadata ([#&#8203;19590](https://github.com/astral-sh/uv/pull/19590)) - Support redirects in `--check-url` ([#&#8203;19594](https://github.com/astral-sh/uv/pull/19594)) - Accept case-insensitive HTML tags in `--find-links` parsing ([#&#8203;19537](https://github.com/astral-sh/uv/pull/19537)) - Reject duplicate script metadata blocks ([#&#8203;19544](https://github.com/astral-sh/uv/pull/19544)) - Ban names like "python3" as script entry points ([#&#8203;19535](https://github.com/astral-sh/uv/pull/19535), [#&#8203;19536](https://github.com/astral-sh/uv/pull/19536)) - Validate Git LFS artifacts for Git archives ([#&#8203;19592](https://github.com/astral-sh/uv/pull/19592)) - Use a relative path when creating symlinks in cache to improve relocatability ([#&#8203;19033](https://github.com/astral-sh/uv/pull/19033)) ##### Documentation - Fix malformed positional anchors in the CLI reference ([#&#8203;19575](https://github.com/astral-sh/uv/pull/19575)) ##### Install uv 0.11.17 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-installer.ps1 | iex" ``` ##### Download uv 0.11.17 | File | Platform | Checksum | | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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.17/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.11.17/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> ``` </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjAuNCIsInVwZGF0ZWRJblZlciI6IjQzLjE2MC40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.25
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
3c608e9314
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 3c608e9314
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 22f4049b7e
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-06-30 17:01:02 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.25 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.26 2026-06-30 17:01:04 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 22f4049b7e
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 289b7d29ce
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-06 23:00:59 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.26 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.27 2026-07-06 23:01:02 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 289b7d29ce
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to a2c5e1920e
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-08 02:00:46 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.27 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.28 2026-07-08 02:00:51 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from a2c5e1920e
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 22401262e8
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-15 20:00:49 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.28 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.29 2026-07-15 20:00:54 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 22401262e8
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to a86839fea9
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-20 19:00:54 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.29 to chore(deps): update ghcr.io/astral-sh/uv docker tag 2026-07-20 19:00:59 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from a86839fea9
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 735ba24342
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-20 20:00:50 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.30 2026-07-20 20:00:54 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 735ba24342
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 5e180ef2b8
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-22 03:00:50 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.30 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.31 2026-07-22 03:00:53 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 5e180ef2b8
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to c74b3036bb
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-24 01:00:42 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.31 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.32 2026-07-24 01:00:47 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from c74b3036bb
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to d0dc29764b
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-28 12:01:21 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.32 to chore(deps): update ghcr.io/astral-sh/uv docker tag 2026-07-28 12:01:25 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from d0dc29764b
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 75391f9dd6
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-28 13:00:51 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.33 2026-07-28 13:00:56 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 75391f9dd6
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 68389ed748
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-28 21:00:45 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.33 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.0 2026-07-28 21:00:49 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 68389ed748
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to db4c051a53
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-07-31 22:00:59 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.0 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.1 2026-07-31 22:01:05 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from db4c051a53
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 6df062a903
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-08-05 22:00:50 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.1 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.2 2026-08-05 22:00:55 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 6df062a903
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to b633277593
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-08-07 19:00:57 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.2 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.3 2026-08-07 19:01:01 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from b633277593
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to 40d769dbf6
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-08-14 00:00:46 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.3 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.4 2026-08-14 00:00:51 +02:00
renovate force-pushed renovate/ghcr-io-astral-sh-uv-0-x from 40d769dbf6
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
to e55a078295
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
2026-08-14 22:00:46 +02:00
Compare
renovate changed title from chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.4 to chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.12.5 2026-08-14 22:00:52 +02:00
Some checks failed
ci/woodpecker/pr/qa Pipeline failed
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/ghcr-io-astral-sh-uv-0-x:renovate/ghcr-io-astral-sh-uv-0-x
git switch renovate/ghcr-io-astral-sh-uv-0-x

Merge

Merge the changes and update on Forgejo.
git switch main
git merge --no-ff renovate/ghcr-io-astral-sh-uv-0-x
git switch renovate/ghcr-io-astral-sh-uv-0-x
git rebase main
git switch main
git merge --ff-only renovate/ghcr-io-astral-sh-uv-0-x
git switch renovate/ghcr-io-astral-sh-uv-0-x
git rebase main
git switch main
git merge --no-ff renovate/ghcr-io-astral-sh-uv-0-x
git switch main
git merge --squash renovate/ghcr-io-astral-sh-uv-0-x
git switch main
git merge --ff-only renovate/ghcr-io-astral-sh-uv-0-x
git switch main
git merge renovate/ghcr-io-astral-sh-uv-0-x
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kontakt/shiftregister!79
No description provided.