unstale

pypi / uv

uv

What changed in uv 0.9 to 0.13, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

12 breaking7 security3 new APIs and options5 performance11 behavior and defaults4 tooling32 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

uv 0.1341 changes

Breaking changes 11

  • Ignores Requires-Python upper bounds, consistent with resolution.

    0.13.1release notes

  • Each option value is now treated as a single path, including quoted paths containing spaces; repeat the option to provide multiple files.

    0.13.0release notes

  • Each option value is now treated as a single path, including quoted paths containing spaces; repeat the option to provide multiple files.

    0.13.0release notes

  • Each option value is now treated as a single path, including quoted paths containing spaces; repeat the option to provide multiple files.

    0.13.0release notes

  • Each option value is now treated as a single path, including quoted paths containing spaces; repeat the option to provide multiple files.

    0.13.0release notes

  • Python 3.15 is now the default stable version for downloads when no version is requested or pinned; existing compatible installations continue to be used.

    0.13.0release notes

  • uv now honors this directive in constraints files included with -c and requires hashes for all requirements in the installation.

    0.13.0release notes

  • uv now uses tar-codec by default to extract archives, build source distributions with uv_build, and read metadata for uv publish; stricter validation may reject some archives.

    0.13.0release notes

  • The command now rejects output directories containing a build source, including through symlinks, before clearing output.

    0.13.0release notes

  • uv uses tar-codec for tar archives by default, applying stricter validation; set this variable to 1 to opt out.

    0.13.0release notes

  • On Windows ARM64, uv now prefers native ARM64 interpreters; set this variable to x86_64 to opt out.

    0.13.0release notes

New APIs and options 1

  • This preview option requires hashes for build dependencies, including transitive dependencies.

    0.13.0release notes

Performance 4

  • Reduces overhead when parsing package metadata.

    0.13.1release notes

  • Simple API parsing is faster.

    0.13.1release notes

  • Reduces the size of the uv binary.

    0.13.1release notes

  • Many cache entry formats changed to improve performance; uv may download or rebuild dependencies after upgrading, while multiple uv versions can still safely share a cache directory.

    0.13.0release notes

Behavior and default changes 8

  • Supports Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable.

    0.13.1release notes

  • Resolution errors now report missing trusted hashes.

    0.13.1release notes

  • Ignores Requires-Python upper bounds, consistent with resolution.

    0.13.1release notes

  • Enables preliminary parsing of PEP 825 variant labels in wheel filenames.

    0.13.1release notes

  • Space-separated lists remain supported in this environment variable despite the changed handling of requirement-file option values.

    0.13.0release notes

  • Space-separated lists remain supported in this environment variable despite the changed handling of requirement-file option values.

    0.13.0release notes

  • Space-separated lists remain supported in this environment variable despite the changed handling of requirement-file option values.

    0.13.0release notes

  • Space-separated lists remain supported in this environment variable despite the changed handling of requirement-file option values.

    0.13.0release notes

Tooling 3

  • Adds support for CPython 3.16.0a1.

    0.13.1release notes

  • Can upgrade installed tools when tool-install-locks is enabled.

    0.13.1release notes

  • If the [build-system] table has an upper bound on uv_build, update it to allow uv_build 0.13.

    0.13.0release notes

Fixes and other changes 14

  • Environments with installed Git dependencies pinned to full commit hashes are reused without resolving again.

    0.13.1release notes

  • Concurrent readers can no longer observe partially written lockfiles.

    0.13.1release notes

  • Concurrent readers can no longer observe partially written managed Python sysconfig files.

    0.13.1release notes

  • Concurrent commands reaching the same environment through real and symlinked paths are serialized.

    0.13.1release notes

  • Concurrent readers can no longer observe partially written Python version files.

    0.13.1release notes

  • Restores support for source distributions containing hard links or full-length tar user or group names.

    0.13.1release notes

  • Detection is fixed for environments created from symlinked interpreters.

    0.13.1release notes

  • Uninstalls no longer delete unrelated files beside their storage directories.

    0.13.1release notes

  • Installs, syncs, and environment creation no longer fail when racing with cache cleanup.

    0.13.1release notes

  • Python 3.15-based images are published under stable tags.

    0.13.1release notes

  • Preserves device files and FIFOs used as output destinations.

    0.13.1release notes

  • Preserves device files and FIFOs used as output destinations.

    0.13.1release notes

  • Concurrent tool installations no longer corrupt an environment when the last tool is uninstalled.

    0.13.1release notes

  • Changed upgrade settings are persisted even when the tool version stays unchanged.

    0.13.1release notes

uv 0.1229 changes

Breaking changes 1

  • Malformed requirements-file options are rejected instead of being partially parsed or ignored.

    0.12.24release notes

Security 3

  • Enforces resource limits when parsing package indexes and --find-links pages with astral-html.

    0.12.24release notes

  • Supplied hashes are verified even when hash presence is disabled with require-hashes = false.

    0.12.24release notes

  • uv: Path traversal on Windows through wheel extraction

    0.12.18security advisory

New APIs and options 2

  • Supports custom installation mirrors for GraalPy.

    0.12.24release notes

  • Supports custom installation mirrors for Pyodide.

    0.12.24release notes

Performance 1

  • Warming the interpreter cache when creating an environment speeds up later commands.

    0.12.24release notes

Behavior and default changes 3

  • Accepts marker operators directly before grouped expressions.

    0.12.24release notes

  • Reports preferred advisory IDs, prioritizing PYSEC, GHSA, then CVE identifiers.

    0.12.24release notes

  • Setting UV_NO_CACHE=false overrides no-cache = true in configuration.

    0.12.24release notes

Tooling 1

  • Removes orphaned temporary build environments when pruning the cache.

    0.12.24release notes

Fixes and other changes 18

  • Excludes optional dependencies when their extras are activated only in incompatible environments.

    0.12.24release notes

  • Resolves dependencies whose Git references contain # or % characters.

    0.12.24release notes

  • Supplied hashes are verified even when hash presence is disabled with this flag.

    0.12.24release notes

  • Dependency overrides and constraints no longer activate optional dependencies when their extras are not selected.

    0.12.24release notes

  • Recognizes existing Pyodide interpreters as satisfying Pyodide Python requests.

    0.12.24release notes

  • Honor exact managed Python patch pins instead of following patch upgrades when creating script environments.

    0.12.24release notes

  • Preserves trailing spaces and tabs in passwords returned by subprocess keyrings.

    0.12.24release notes

  • Hides the ignored --keyring-provider option from help.

    0.12.24release notes

  • Allows login over IPv6 loopback addresses.

    0.12.24release notes

  • Setting UV_OFFLINE=false overrides offline = true in configuration.

    0.12.24release notes

  • Explicit --trusted-publishing values take precedence over configuration.

    0.12.24release notes

  • Preserves JSON output when a single --quiet flag is supplied.

    0.12.24release notes

  • Setting UV_SYSTEM_CERTS=false overrides system-certs = true in configuration.

    0.12.24release notes

  • Reports HTTP client setup failures directly when resolving unnamed requirements.

    0.12.24release notes

  • Preserves JSON output when a single --quiet flag is supplied.

    0.12.24release notes

  • Restores incompatibility hints when WHEEL metadata contains multiple expanded Tag: rows.

    0.12.24release notes

  • Preserves rename errors unless a cross-drive copy fallback applies.

    0.12.24release notes

  • Prevents assertion failures after modifying a project at the workspace root.

    0.12.24release notes

uv 0.112 changes

Security 2

  • uv is vulnerable to arbitrary file write through entry point names

    0.11.15security advisory

  • uv vulnerable to arbitrary file deletion through RECORD entries

    0.11.6security advisory

uv 0.92 changes

Security 2