หน้านี้รวบรวม uv ไว้ 253 เวอร์ชัน ตั้งแต่ 14 มิถุนายน 2567 จนถึงเวอร์ชันปัจจุบัน 0.13.6 ทุกเวอร์ชันลิงก์ไปยังไฟล์ตัวติดตั้งของผู้เผยแพร่เอง
253 เวอร์ชันในช่วง 2 ปี · ประมาณปีละ 107 ครั้ง
| เวอร์ชัน | วันที่ | ขนาด | ไฟล์ |
|---|---|---|---|
| 0.13.6ล่าสุด | 27 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-26.
Enhancements
- Accept an empty UV_RUN_RECURSION_DEPTH as zero and report invalid values consistently (#22814)
- Explain how to add project metadata when uv init finds a pyproject.toml without a [project] table (#22916)
Python
- Add CPython 3.11.18, 3.12.16, 3.13.18, 3.14.10, and 3.15.2 (#22938)
Preview features
- Detect NVIDIA GPU capabilities when selecting compatible wheel variants with wheel-variants (#22690)
- Nest each module's owners in an object in uv workspace metadata output (#22638)
- Report the unsupported properties required by an incompatible wheel variant (#22719)
Performance
- Reduce peak memory use when resolving large workspaces (#22860, #22863, #22864, #22866, #22870)
- Reduce peak memory use when locking or upgrading large projects (#22833, #22834)
- Speed up redirected output from uv export and uv pip compile (#22840)
- Reuse cached or active environments when running PEP 723 scripts without dependencies (#21458)
- Reduce parsing overhead for build dependency and build backend settings (#22848, #22871, #22879, #22884)
- Reduce parsing overhead for project sources and workspace references (#22880, #22883)
- Reduce parsing overhead for cache, exclusion, cutoff, and preview settings (#22876, #22877, #22878, #22887)
- Reduce PyPI metadata parsing overhead (#22874, #22875)
- Speed up parsing tool receipt requirements (#22885)
Bug fixes
- Prevent uv run --active --script and uv sync --active --script from deleting non-virtual-environment directories (#21464)
- Use AMD64 for platform_machine when resolving for x86-64 Windows (#22935)
- Preserve free-threaded and other non-default variants in uv python upgrade (#22836)
- Allow uv init --no-package and uv init --script when UV_INIT_BUILD_BACKEND is set (#22907)
- Prevent panics when rendering containment markers with local versions (#22815)
Documentation
- Update the Docker guide and reproduction examples to use uv 0.13.5 (#22867) |
| 0.13.5 | 22 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-21.
Following uv 0.13.4, which removed the affected eMudhra/emSign root from uv's own certificate store, this release updates the latest managed CPython builds for 3.11 and newer to python-build-standalone 20261021, including the CPython 3.15.1, 3.14.9, and 3.13.17 security patch releases. These builds include pip 26.2.2 both preinstalled in the managed interpreter and bundled with ensurepip, which installs pip by default when you run python -m venv. Both copies use certifi 2026.10.19, which removes the same affected root. After upgrading uv, run uv python upgrade to install the updated builds. Virtual environments pinned to an older Python patch version do not switch to the updated interpreter automatically. Upgrade pip separately in existing virtual environments.
Please note upstream CPython 3.9 and 3.10 still bundle pip releases whose certificate bundles trust the affected eMudhra/emSign root. We recommend migrating off of those versions and will no longer be releasing Docker images with uv installed for EOL Python versions.
Enhancements
- Report incompatible self-dependencies directly in resolution errors (#21845)
Python
- Add CPython 3.15.1, 3.14.9, and 3.13.17 (#22802)
Preview features
- Select and rank wheel variants with no required properties or properties from PEP 850 static providers in platform-specific resolutions with wheel-variants (#22535, #22536, #22687, #22688)
Performance
- Reduce peak memory use when resolving dependencies across multiple environments (#22769, #22770, #22784)
- Speed up exports with complex transitive extras by resolving activation across the dependency graph (#22751)
- Reduce uv's binary size by keeping additional error formatters out of line (#22775)
- Reduce overhead when parsing custom build cache keys (#22749)
Bug fixes
- Lock packages distributed only as Android wheels without a source distribution (#22806)
- Export optional dependencies correctly when transitive extras are activated through different or incompatible environment paths (#22751)
- Reject invalid custom build cache keys instead of silently falling back to the defaults (#22749)
Security
- Reject certificate chains containing compromised eMudhra intermediate keys via rustls-webpki 0.103.16 (#22777)
- Stop publishing uv Docker images based on Python 3.9 and 3.10 images that no longer receive upstream updates (#22773) |
| 0.13.4 | 20 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-20.
Preview features
- Validate PEP 825 variant metadata and treat package versions with invalid metadata as unavailable under wheel-variants (#22512)
Other changes
- Update the bundled Mozilla root certificates via webpki-root-certs 1.0.10 (#22760) |
| 0.13.3 | 20 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-20.
Performance
- Avoid severe uv export slowdowns in dependency graphs with extras (#22750) |
| 0.13.2 | 19 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-19.
Enhancements
- Report all installed packages in uv workspace metadata, including packages outside the selected resolution (#22395)
- Include supported environment restrictions when exporting pylock.toml (#22596)
- Retry dropped GET and HEAD requests when fetching package and index data (#22672)
- Preserve encoding declarations in wheel data scripts that require shell launchers (#22526)
- Show causes and hints when uv python find --script cannot discover an interpreter, including with -q (#22549)
- Print valid ksh activation instructions and support non-relocatable environments under OpenBSD-derived ksh (#22538, #22572)
- Allow PEP 508 direct URLs, including Mercurial and extensionless archive URLs, in uv-build's [build-system].requires validation (#22577)
Python
- Add PyPy 3.11.17 and 3.12.15 (#22578)
Preview features
- Fetch and parse PEP 825 index-level variant metadata with wheel-variants (#22509, #22511)
Performance
- Avoid exponential work when simplifying, traversing, and exporting complex dependency markers (#22608, #22615, #22651, #22674)
- Reduce the time and memory used to parse and store complex dependency markers (#22675, #22676, #22681)
- Reduce resolver memory use for large dependency graphs, forks, extras, and dependency groups (#22565, #22625)
- Speed up project discovery in large workspaces by caching member names (#22635)
- Reduce uv's binary size and speed up CycloneDX exports (#22431)
- Reduce uv-build binary size, including Linux x86_64 wheels (#22539, #22573)
- Reduce allocations when parsing TOML (#22679)
Bug fixes
- Respect --exclude-newer when a newer wheel for the selected source distribution is already cached (#22685)
- Prevent URL credentials from leaking through diagnostics or persisted metadata (#22600, #22601, #22617, #22622, #22646)
- Keep separate cache entries for signed --find-links URLs that differ only in sensitive query values (#22630)
- Honor PEP 751 environment restrictions when installing or syncing from pylock.toml (#22594)
- Use configured credentials before prompting during uv publish, and avoid prompting when no upload occurs (#22593)
- Match recursive build globs against complete file paths and ignore invalid license symlinks (#22581, #22583)
- Return an error for invalid uv pip compile --python-version values instead of panicking (#22727)
- Reject invalid pylock.toml output filenames before resolution instead of panicking (#22725)
- Avoid panicking during repeated resolution conflicts involving fixed-priority packages (#22589)
- Create version aliases correctly when installing managed Python into a relative directory (#22547)
- Show incompatibilities from failing uv pip check invocations with -q (#22544)
- Treat logically equivalent dependency markers as equal regardless of construction order (#22680)
Rust API
- Require the opt-in unsafe-url feature to use raw url::Url APIs in uv-pep508 (#22623)
Documentation
- Clarify credential lookup, environment synchronization, managed Python, and integration guidance (#22542)
Other changes
- Use stable sh.astral.* signing identifiers for macOS binaries (#22648) |
| 0.13.1 | 14 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-14.
Enhancements
- Ignore Requires-Python upper bounds in uv pip check and uv pip install --strict, consistent with resolution (#22500)
- Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable (#22463)
- Report missing trusted hashes in resolution errors (#22241)
Python
- Add CPython 3.16.0a1 (#22527)
Preview features
- Allow uv tool upgrade to upgrade installed tools when tool-install-locks is enabled (#22498)
- Add preliminary support for parsing PEP 825 variant labels in wheel filenames with wheel-variants (#22039)
Performance
- Reduce uv's binary size (#22429, #22430, #22432)
- Speed up Simple API parsing (#22429)
- Reduce package metadata parsing overhead (#22239)
Bug fixes
- Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories (#22495)
- Restore support for source distributions containing hard links or full-length tar user or group names (#22516, #22522)
- Preserve device files and FIFOs used as uv pip compile or uv export output destinations (#22496)
- Fix sys._base_executable detection for environments created from symlinked interpreters (#22520)
- Prevent concurrent readers from observing partially written lockfiles, Python version files, or managed Python sysconfig files (#22399, #22402, #22403)
- Serialize concurrent project commands that reach the same environment through real and symlinked paths (#22390)
- Prevent installs, syncs, and environment creation from failing when they race with uv cache clean (#22387)
- Prevent concurrent tool installations from corrupting an environment when the last tool is uninstalled (#22391)
- Persist changed upgrade settings even when uv tool upgrade leaves the tool version unchanged (#22499)
- Reuse environments with installed Git dependencies pinned to full commit hashes without resolving again (#22464)
Documentation
- Explain how to select an emulated Python interpreter on Windows ARM64 when native wheels are unavailable (#22424)
- Fix the .netrc format documentation link (#22514)
Other changes
- Publish Python 3.15-based uv Docker images under stable tags (#22503) |
| 0.13.0 | 9 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-09.
uv 0.13.0 makes Python 3.15 the default stable Python version. We've also included several breaking changes to improve correctness, performance, and compatibility, described below.
We expect most users to be able to upgrade without making changes.
While not a breaking change, this release also updates the format of many of uv's cache entries to improve performance. uv may download or rebuild dependencies after upgrading, because some cached entries from earlier versions cannot be reused. Multiple versions of uv can still safely share the same cache directory.
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.13, e.g., uv_build>=0.13.0,<0.14.
Breaking changes
- Use Python 3.15 as the default stable version
The default stable Python version has changed from 3.14 to 3.15. This affects Python downloads when no version is requested or pinned, e.g., when running uv python install.
uv continues to use compatible Python installations that are already present. For example, uv venv can still use an installed Python 3.14. If no suitable interpreter is installed and automatic downloads are enabled, commands such as uv venv and uvx python can now download Python 3.15.
You can opt out of this behavior by requesting Python 3.14 explicitly, e.g., uv venv --python 3.14. For projects, use uv python pin 3.14 to record the version in .python-version.
- Honor --require-hashes in included constraints files (#22275)
Previously, uv ignored --require-hashes in constraints files included with -c from a requirements file. Now, uv honors the directive and requires hashes for all requirements in the installation. Installs that previously succeeded can now fail if a requirement is missing a hash.
You cannot opt out while the directive is present. Add the missing hashes to your requirements, or remove the --require-hashes directive from the included constraints file if hash checking is not intended.
- Prefer native Python on Windows ARM64 (#22100)
Previously, ARM64 builds of uv preferred emulated x86_64 Python installations because native wheel support was limited. Now, uv prefers native ARM64 (aarch64) interpreters across Python versions.
This follows similar changes in CPython, the official Windows Python install manager, and GitHub's actions/setup-python.
When a native interpreter is unavailable, uv continues to fall back to x86_64, then 32-bit x86.
You can opt out of this behavior by setting UV_PYTHON_ARCH=x86_64 or requesting an explicit architecture, e.g., cpython-3.14-windows-x86_64. If you are using setup-uv, you can set python-arch: x86_64 instead.
- Reject editable requirements in included constraints files (#22282)
Previously, uv silently ignored editable (-e) requirements in constraints files included with -c from a requirements file. Now, uv rejects these requirements with an error, matching pip's behavior.
You cannot opt out of this behavior. Move editable requirements to a requirements file passed with -r, or pass them directly with --editable, instead of including them in a constraints file.
- Omit the distutils startup patch on Python 3.10 and later (#22096)
Previously, uv installed _virtualenv.py and _virtualenv.pth into every new virtual environment to prevent distutils configuration from changing installation paths. Now, like virtualenv 21.6.0, uv omits these files on Python 3.10 and later, which already ignore the affected configuration keys. This reduces Python startup overhead. Python 3.9 and earlier retain the patch.
You cannot opt out of this behavior. Existing virtual environments are not modified automatically. Recreate an environment with Python 3.10 or later to remove the patch.
This stabilizes the no-distutils-patch preview feature.
- Treat requirement-file option values as single paths (#22290)
Previously, uv split values passed to --constraint, --override, --exclude, and --build-con |
| 0.12.24 | 8 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-08.
Enhancements
- Remove orphaned temporary build environments with uv cache prune (#22171)
- Accept PEP 508 marker operators directly before grouped expressions (#22309)
- Reject malformed requirements-file options instead of partially parsing or ignoring them (#22317)
- Show underlying filesystem and registry errors when managed Python uninstallation fails (#22362)
- Identify the invalid source URL in Python mirror errors (#22364)
Preview features
- Display preferred advisory IDs in uv audit reports, prioritizing PYSEC, GHSA, then CVE identifiers (#22292)
Configuration
- Support custom installation mirrors for GraalPy (#22269)
- Support custom installation mirrors for Pyodide (#22271)
- Allow UV_NO_CACHE=false to override no-cache = true in configuration (#22324)
- Report more precise error locations for invalid trusted-host ports and preview-feature list entries (#22144)
Performance
- Speed up later commands after creating an environment by warming its interpreter cache (#21304)
- Reduce code-signature verification work for ARM64 macOS releases with 16 KiB signature pages (#22246)
- Enforce resource limits when parsing package indexes and --find-links pages with astral-html (#22203)
- Reduce standalone uv-build executable size by 7.5% by omitting unused Zstandard support (#22242)
- Reduce uv's binary size by about 232 KB by simplifying configuration deserialization (#22144)
- Reduce Python download error formatting code size by sharing its formatter (#22141)
Bug fixes
- Verify supplied hashes even when hash presence is disabled with --no-require-hashes or require-hashes = false (#22369)
- Honor exact managed Python patch pins when creating script environments instead of following patch upgrades (#22360)
- Prevent dependency overrides and constraints from activating optional dependencies when their extras are not selected (#22237)
- Exclude optional dependencies from exports when their extras are activated only in incompatible environments (#22234)
- Give explicit uv publish --trusted-publishing values precedence over configuration (#22279)
- Allow UV_OFFLINE=false to override offline = true in configuration (#22283)
- Allow UV_SYSTEM_CERTS=false to override system-certs = true in configuration (#22291)
- Allow uv auth login over IPv6 loopback addresses (#22306)
- Resolve GitHub dependencies whose Git references contain # or % characters (#22281)
- Recognize existing Pyodide interpreters as satisfying Pyodide Python requests (#22322)
- Preserve JSON output from uv version and uv self version with a single --quiet flag (#22280)
- Preserve trailing spaces and tabs in passwords returned by subprocess keyrings (#22284)
- Restore wheel incompatibility hints when WHEEL metadata contains multiple expanded Tag: rows (#22235)
- Preserve Windows wheel-script rename errors unless a cross-drive copy fallback applies (#22302)
- Prevent workspace-cache assertion failures after modifying a project at the workspace root (#22236)
- Hide the ignored --keyring-provider option from uv auth help (#19520)
- Report HTTP client setup failures directly when resolving unnamed uv tool requirements (#22320)
Documentation
- Update Docker and AWS Lambda examples to cache dependency layers using frozen lockfiles without project manifests (#22172)
- Fix stale links and descriptions in Rust crate documentation (#22311, #22361)
- Fix a typo in the required-environments documentation (#22238) |
| 0.12.23 | 3 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-03.
Python
- Add CPython 3.15.0rc3 (#22164)
Preview features
- Sync from uv.lock without a workspace manifest using uv sync --frozen with frozen-lockfile (#22018)
- Export from uv.lock without a workspace manifest using uv export --frozen with frozen-lockfile (#22007)
- Inspect dependency trees from uv.lock without a workspace manifest using uv tree --frozen with frozen-lockfile (#22016)
- Inspect workspace metadata and optionally sync its environment from uv.lock without a workspace manifest using uv workspace metadata --frozen with frozen-lockfile (#22017, #22018)
Bug fixes
- Reject alternate sources for workspace members across conflicting dependency selections, avoiding lockfiles that cannot be installed (#22153)
- Allow x86-64 Python interpreters running under emulation on Windows ARM64 to install compatible win_amd64 wheels instead of building from source (#22099) |
| 0.12.22 | 2 ตุลาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-10-01.
Python
- Add CPython 3.10.22, 3.11.17, 3.12.15, 3.13.16, and 3.14.8 (#22147)
Enhancements
- Accept uppercase release suffixes in wheel platform tags (#22113)
- Record workspace-member default groups in lockfiles (#22010, #22103)
- Record workspace-member dependency-group Python requirements in lockfiles (#22044, #22103)
- Record default groups for non-project workspace roots in lockfiles (#22104)
- Record dependency-group Python requirements for non-project workspace roots in lockfiles (#22104)
- Format URLs and paths consistently in CLI messages (#21937)
- Hide the unsupported --offline option from uv publish help (#22124)
Preview features
- Honor --no-default-groups in uv audit (#22090)
- Report a clear error when uv audit or uv tool audit runs offline and hide the unsupported option from help (#22114)
Configuration
- Add UV_PYTHON_ARCH to select an interpreter architecture independently of its Python version (#22098)
Performance
- Reduce uv's binary size by compressing embedded Python download metadata (#22126)
Bug fixes
- Verify unchanged requirements against existing lockfile hashes when relocking (#22083)
- Honor dependency-group Python requirements at non-project workspace roots (#22101)
- Use each selected workspace member's recorded default groups during frozen sync (#22015)
- Avoid false entry-point warnings for required workspace members (#22112)
Other changes
- Raise the minimum supported Rust version for building uv to 1.97 and update the toolchain to Rust 1.99 (#22121) |
| 0.12.21 | 29 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-29.
Python
- Update CPython to use OpenSSL 3.5.9 (#22076)
Enhancements
- Omit empty [manifest] tables from lockfiles that contain only manifest subtables (#22070)
Preview features
- Omit redundant runtime constraints from uv.lock, including those involving pre-releases, with the resolution-inputs preview feature (#22004, #22068)
Bug fixes
- Prevent uv python pin --rm from removing a global .python-versions file without --global (#21992)
- Fix installed-package checks incorrectly reporting post-releases as incompatible with exclusive lower bounds on pre-releases (#22049) |
| 0.12.20 | 28 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-28.
Enhancements
- Reuse lockfiles when dependency declarations are semantically equivalent (#21951)
- Preserve second-line encoding declarations when installing wheel scripts with CRLF shebangs (#21990)
Preview features
- Write normalized requirement declarations with the lockfile-normalization preview feature (#21951)
- Honor synthetic default groups when installing or syncing from pylock.toml (#22003)
- Resolve local paths in exported pylock.toml files relative to the output file (#22042)
- Install each package only once when repeated tool-install-locks requirements resolve to the same package (#22000)
- Reuse lock-without-metadata lockfiles for conflicting groups with distinct base and extra requirement specifiers (#22055)
- Use consistent root-package paths in uv workspace metadata and uv tree --format json output (#22050)
Configuration
- Continue searching XDG_CONFIG_DIRS after empty entries (#21987)
Performance
- Restore the previous HTTP cache-write scheduling while investigating severe cache-revalidation stalls on ext4 filesystems (#22051)
Bug fixes
- Apply hash constraints to every repeated requirement under --require-hashes and --verify-hashes (#21996)
- Allow metadata builds for first-party workspace projects under --no-build (#21988)
- Honor project exclusion flags with --all-packages, including --no-install-project and --no-emit-project (#21994)
- Restore pyproject.toml if uv upgrade fails or is interrupted (#21983)
- Generate working Nushell activation scripts for relocatable virtual environments (#21979)
- Prevent commands from running and changing state after displaying --show-settings (#21989)
- Treat UTF-16 requirements files containing only a byte-order mark as empty (#21991)
- Ignore unrecognized managed-Python implementation directories during uv python list and uv python upgrade instead of panicking (#22033)
- Avoid panics and incorrect rewriting when managed Python sysconfig paths merely start with /install (#22036)
- Report whitespace-only non-ASCII requirements as invalid instead of panicking (#22035)
- Avoid a resolver panic when trace logging an always-false constraint (#22034) |
| 0.12.19 | 25 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-24.
Python
- Add PyPy 3.11.16 and 3.12.14 (#21847)
- Update GraalPy 3.13.0 to build 25.4.4 (#21847)
Enhancements
- Format upload URLs with backticks in uv publish errors (#21934)
Preview features
- Run build-backend hooks with lazy imports on CPython 3.15 and later using the build-lazy-imports preview feature (#21967)
- Omit unused resolution settings from uv.lock and ignore changes to them when checking lockfile freshness with the resolution-inputs preview feature (#21913)
Bug fixes
- Preserve signed and encoded query parameters in direct-URL metadata to avoid reinstalling unchanged packages (#21971)
- Recognize 1.0.0 as satisfying ===1 during installed-package checks, matching resolution (#21931)
- Avoid collisions between Git checkout readiness markers and .ok files in dependencies (#21891)
- Preserve always-false python_version markers when parsing their serialized form (#21939)
Rust API
- Restore the public FlatDistributions export and its BTreeMap conversion for downstream resolvers (#21965)
Documentation
- Make individual preview-feature reference entries linkable by name (#21950) |
| 0.12.18 | 22 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-22.
Enhancements
- Add --output-format json to uv pip install and uv pip sync, including for --dry-run and --check (#21893)
- Add --check to uv pip install and uv pip sync to report planned changes without modifying the environment (#21844)
- Identify failures from get_requires_for_build_* hooks correctly in build errors (#21881)
Preview features
- Validate build requirements for uv build --no-build-isolation with --preview-features build-dependency-check; use --skip-dependency-check to opt out (#21880)
Performance
- Speed up uv_build editable wheel creation by omitting compression from temporary wheels (#21918)
Bug fixes
- Select package versions with wheels compatible with each Python resolution fork, correctly interpreting generic and stable-ABI wheel tags (#21835, #21836)
- Restore project, script, and lock files when uv add, uv remove, or uv version fails or is interrupted (#21860, #21856)
- Use configured dependency-metadata when checking whether installed requirements are satisfied (#21843)
- Reject archive entries that normalize to absolute Windows paths (#21923)
- Recognize distribution filenames and archive extensions when URL fragments contain ? (#21920)
- Generate correctly lowercased platform tags for BSD and Haiku releases (#21853)
- Avoid rebuilding a Windows relative path into an absolute form (#21923) |
| 0.12.17 | 18 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-18.
Enhancements
- Reject unsupported Git archive paths in lockfiles with a clear error instead of panicking during frozen exports (#21780)
Preview features
- Set minimum glibc and musl versions that universal resolutions must support with minimum-libc-version (#21651)
- Reject pylock.toml files whose wheel filenames do not match their declared package names or versions (#20746)
- Keep uv workspace metadata read-only unless --sync is provided (#21821)
- Apply uv check lock modes when retrieving workspace metadata (#21821)
Performance
- Speed up builds with many exclusion patterns by avoiding quadratic deduplication (#21650)
- Reduce resolver allocations when deduplicating package and distribution requests (#21810)
Bug fixes
- Prevent required-environments from selecting package versions whose wheels require a newer macOS version than the configured Darwin baseline (#21825)
Documentation
- Clarify the 0.12.14 and 0.12.15 release notes (#21817) |
| 0.12.16 | 18 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-17.
Python
- Add Pyodide 314.0.7, 0.29.5, and 0.27.8 (#21741)
Enhancements
- Verify downloaded wheels and source distributions against hashes supplied by package indexes (#21562)
- Allow build-constraint-dependencies entries to include hashes for verifying downloaded build dependencies (#21467)
- Honor Darwin platform_release markers in required-environments using macOS wheel deployment targets (#21766)
- Reject unsupported Git URL schemes while parsing lockfiles instead of panicking during frozen exports (#21779)
Preview features
- Support lock-without-metadata across all dependency types while retaining package.metadata for remote URL dependencies to enable offline validation (#21163)
- Honor configured and command-line index settings, including credentials, in uv upgrade (#21776)
- Allow uv check to run in projects that are not managed by uv and outside workspaces (#21777)
- Respect --python and UV_PYTHON when selecting the Python version for uv check (#21744)
Bug fixes
- Redact Azure shared access signatures from displayed and logged URLs (#21755)
- Check archive sizes from pylock.toml before reusing cached distributions (#21609)
- Keep user-authored local dependency paths relative in lockfiles when backend metadata reports absolute paths (#20631)
- Use the bundled uv_build backend only when its version matches active version pins (#21742)
- Handle malformed index URLs without panicking when credentials are configured (#21784)
- Report a configuration error instead of panicking for proxy URLs without a host (#21781)
- Return a credential-redacted error instead of panicking when a URL cannot be converted to a path (#21783) |
| 0.12.15 | 15 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-15.
This release fixes a regression in 0.12.14 that lead to rejecting valid installation commands such as using
uv pip install --system in python:* docker images or when using uv pip install --target .. (#21699)
Performance
- Speed up cold-cache resolution and HTTP cache revalidation by batching cache writes (#21675)
Bug fixes
- Revert "Reject symlinked wheel installation destinations" (#21699) |
| 0.12.14 | 15 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-15.
Package-operation errors now use uv's standard diagnostics, with consistent hints and compact, labeled cause chains. (#17110, #21599, #21603)
Package-operation exit codes now reflect the underlying cause: expected failures return 1, while recognized operational and internal failures return 2. (#17110)
Enhancements
- Resume interrupted downloads with HTTP Range requests when supported (#21570)
- Show underlying causes and hints in user warnings (#21565)
- Show resolver hints for failed uv tool upgrade operations (#21566)
Preview features
- Export multiple dependency selections from a shared lockfile in one uv export --batch invocation with the batch-export preview feature (#21618)
Performance
- Speed up dependency resolution from local wheelhouses by reading wheel metadata in a single blocking task (#21619)
- Speed up cold resolution against large package indexes by parsing Simple API responses in bounded background workers (#21593)
- Speed up warm-cache resolution by decoding fresh HTTP cache entries in the cache-read task (#21621)
Bug fixes
- Select releases that satisfy required-environments within each resolver fork instead of combining incompatible wheel coverage across forks (#21672)
- Install packages with paths longer than MAX_PATH on Windows systems without long-path support enabled (#21625)
- Prevent uv python install from overwriting valid unmanaged Python symlinks with relative targets on Unix (#21639)
- Redact credentials and signatures from missing-path-segment URL errors (#21616)
- Avoid exceeding the configured retry budget when cached HTTP responses fail revalidation (#21640)
- Prefer bin/python over bin/python3 when discovering interpreters in Unix environments (#21559)
- Suppress managed-Python fallback warnings under --quiet (#21565)
- Keep failed uv tool upgrade errors visible with -q while suppressing them with -qq (#21566) |
| 0.12.13 | 10 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-10.
Python
- Add GraalPy 3.13.0 (#21431)
Enhancements
- Verify hashes when downloading PEP 658 metadata sidecars (#21563)
Preview features
- Respect ty exclusions when uv check automatically selects members of a virtual workspace (#21555)
Performance
- Avoid full wheel downloads during resolution by reusing supported hashes from direct URL fragments when metadata is available separately (#21279)
Bug fixes
- Edit Windows entry-point launcher resources in memory to support Nano Server and reduce antivirus contention (#18713)
- Prefer core-metadata over legacy aliases in JSON index responses (#21563) |
| 0.12.12 | 9 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-09.
The executables in our macOS and Windows release archives and uv and uv_build wheels are now code-signed. macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables verification of the release publisher and binary integrity, supports publisher-based allowlisting, and should reduce security warnings and antivirus false positives.
Bug fixes
- Exclude distributions uploaded after the exclude-newer cutoff from lockfiles and generated requirement hashes (#21539) |
| 0.12.11 | 8 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-08.
Preview features
- Generate missing artifact hashes when exporting pylock.toml files to ensure they conform to PEP 751 (#20146)
- Warn when pylock.toml artifact hash tables are empty, which will be rejected in a future uv release (#21462)
Performance
- Speed up installs that overwrite existing files by eliminating per-file temporary directories for atomic hard-link, symlink, and reflink replacements (#21478)
- Speed up installs that merge copied wheels into existing environments by replacing per-file temporary directories with adjacent temporary files (#21468)
- Speed up local wheel installs by replacing the shared ZIP cursor lock with positioned reads (#21500)
- Speed up local wheel installs by reusing ZIP readers and buffers across extracted files (#21499)
- Avoid transitive dependency checks and unnecessary resolution when uv pip install --no-deps finds the requested packages already installed (#21523)
Bug fixes
- Verify source archives against hashes recorded in uv.lock before reading their metadata or running their build backends (#21223)
- Verify supplied hashes for registry requirements pinned with === under both --verify-hashes and --require-hashes (#21543)
- Apply hashes from public-version pins to matching local versions when no exact local-version hash is provided (#21544)
- Support PowerShell virtual environment activation from UNC paths, including WSL paths (#19159)
- Trim surrounding whitespace from entries in .python-version and .python-versions files (#21529)
- Suppress VIRTUAL_ENV mismatch warnings for uv add --no-sync, uv remove --no-sync, and uv add --frozen (#21496)
- Warn and continue when uv python list cannot query an interpreter (#21498)
Documentation
- Restore TOML syntax highlighting for exclude-newer examples (#21534) |
| 0.12.10 | 4 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-04.
Enhancements
- Attempt to revoke short-lived PyPI trusted-publishing tokens after uv publish completes, including when publishing fails (#21423)
Preview features
- Omit exclude-newer-package settings for packages outside the resolution from uv.lock with the missing-exclude-newer-package-lock preview feature (#21455)
- Show terminal dependency cycles in uv tree --invert output (#21404)
Performance
- Speed up locking large workspaces with conflicts by excluding unrelated extras and dependency groups from conflict simplification (#21399)
- Speed up uv publish by hashing each artifact in a single blocking task and reusing the buffer across reads (#21389)
Bug fixes
- Prevent --locked from failing when exclude-newer-package settings differ only for packages outside the resolution (#21454)
- Allow uv lock --check to reuse a lockfile when an absolute exclude-newer cutoff is moved later (#19571)
- Allow uv lock --check to reuse a lockfile when a package-specific exclude-newer cutoff is disabled (#21450)
- Require an explicit --name when uv init would infer a project name reserved for a Python interpreter (#21395)
- Write package-specific exclude-newer cutoffs to uv.lock in a deterministic order (#21453) |
| 0.12.9 | 1 กันยายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-09-01.
Python
- Add CPython 3.15.0rc2 (#21413, #21415)
Enhancements
- Add --no-locked and --no-frozen to disable lock modes enabled by UV_LOCKED and UV_FROZEN for a single invocation (#21408)
- Report the exact command-line lock-mode flag in warnings and errors (#21402)
Performance
- Speed up cold wheel installs by extracting each streaming ZIP archive in a single blocking task and reusing buffers across files (#21372)
Bug fixes
- Update async_http_range_reader to 0.11.1 to address a potential memory-safety issue when reading metadata ranges from untrusted wheels (#21401)
- Remove sensitive headers when redirects cross authentication realms, including same-host redirects that change URL schemes (#21382)
- Redact secrets in signed URLs from retry diagnostics, including nested request errors (#21381)
- Give --locked, --frozen, --check, and --check-exists precedence over conflicting UV_LOCKED and UV_FROZEN values (#21396)
- Prevent concurrent uv processes from redundantly extracting the same local or source-built wheel (#21400) |
| 0.12.8 | 31 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-08-31.
Enhancements
- Warn about invalid tool directories and continue upgrading valid tools with uv tool upgrade --all (#21368)
Preview features
- Deduplicate identical files within and across cached wheels with the content-addressed-cache preview feature (#21327)
- Reduce allocations while extracting content-addressed wheels by reusing the hashing buffer across files (#21340)
- Speed up content-addressed cache cleanup on macOS by reading hard-link counts in bulk (#21344)
Performance
- Prevent concurrent uv processes from downloading and extracting the same remote wheel more than once (#21379)
- Speed up dependency graph construction from large lockfiles by indexing packages during traversal (#21373)
- Extend indexed lockfile traversal to exports, dependency trees, audits, and freshness checks (#21377)
- Speed up warm resolutions by reducing repeated marker interner work (#21300)
Bug fixes
- Do not trust hashes from direct URLs discovered only in wheel metadata when installing with --require-hashes (#21348)
- Use a compatible Azure Storage API version for anonymous and authenticated requests, allowing credential retries when public access is disabled (#21366)
- Redact Azure shared access signature (sig) query parameters from displayed URLs (#21360)
- Treat projects below one-level workspace member globs as standalone instead of aborting workspace discovery (#21341)
Other changes
- Update astral-tokio-tar to 0.7.0 and use effective sizes when tracking extracted hard links (#21346) |
| 0.12.7 | 27 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-08-27.
Python
- Replace managed Python installations when upgrading to a newer build of the same version (#21323)
Enhancements
- Support Linux s390x, ppc64le, and loongarch64 targets for cross-platform dependency resolution (#21313)
- Retry downloads with configured credentials when Azure Storage denies anonymous access to an endpoint configured via UV_AZURE_ENDPOINT_URL (#21318)
Preview features
- Use content-based directory hashes to deduplicate extracted wheels in the cache with the content-addressed-cache preview feature (#19693)
Bug fixes
- Reject source archives with hash mismatches before persisting their extracted contents to the cache (#21248)
Other changes
- remove pyx specific features (#21182, #21183, #21184, #21185, #21186) |
| 0.12.6 | 25 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-08-25.
Python
- Update CPython to use OpenSSL 3.5.8 and libffi 3.4.8 #21295)
Enhancements
- Report cache-cleaning space savings from filesystem block allocation and avoid double-counting hard links (#21261)
- Limit warnings about unbounded uv_build requirements to source-distribution builds (#21078)
- Display byte counts below 1 KiB without a fractional part (#21237)
Preview features
- Add uv workspace metadata --sync --exact to remove packages outside the selected resolution (#21117)
- Add the artifact-hash-filtering preview feature to make uv pip compile --generate-hashes honor --only-binary and --no-binary (#21235)
- Respect package-specific exclude-newer cutoffs when uv check selects its ty executable (#21227)
- Preserve virtual-environment hints from tar-codec source-distribution errors when the base interpreter is outside a bin directory (#21146)
Performance
- Enable profile-guided optimization for Linux x86-64 release binaries (#21001)
- Enable profile-guided optimization for Windows x86-64 release binaries (#21003)
- Enable profile-guided optimization for macOS ARM64 release binaries (#21002)
- Enable profile-guided optimization for Linux ARM64 release binaries (#21004)
- Speed up syncing projects with many activated conflict items by reusing their encoded representation (#21148)
Bug fixes
- Allow explicit uv build and non-editable first-party workspace packages when no-build is enabled (#21294)
- Reuse configured index credentials during uv tool upgrade when the tool receipt references the same index (#21275)
- Ensure full 40-character Git commit pins resolve to the requested object instead of a SHA-named branch (#21224)
- Prevent TLS segfaults in riscv64 musl release binaries (#21158)
- Preserve dependencies selected by recursive extras when markers mix production and extra conditions (#21181)
- Preserve version constraints from transitively referenced recursive extras (#21209)
- Resolve repository-relative Git archive dependencies inside the checkout during the initial uv sync (#21264)
- Return an error instead of panicking when a bearer token cannot be encoded as an HTTP header (#21282)
- Do not misclassify package URLs ending in .py as local script paths (#21144)
- Use directory creation times consistently across libc implementations for directory cache-keys entries (#21137)
- Promote human-readable sizes to the next unit at rounding boundaries (#21136)
Other changes
- Add Python 3.15 release-candidate Docker images (#21293)
- Raise the minimum supported Rust version to 1.96 and update the repository toolchain to Rust 1.98 (#21258) |
| 0.12.5 | 14 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.12.4 | 13 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.12.3 | 7 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-08-07.
Python
- Add CPython 3.13.15 (#20997)
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) |
| 0.12.2 | 5 สิงหาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-08-05.
Python
- Add CPython 3.15.0rc1 (#20948)
- Add CPython 3.14.7 (#20971)
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) |
| 0.12.1 | 31 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.12.0 | 28 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP |
| 0.11.33 | 28 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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
- Avoid checking any scripts in uv check unless --script is passed (#20676)
- Check locked tools for malware before cache reuse (#20301)
- Write and read package.metadata-free lockfiles (#20688, #20691, #20685, #20695)
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) |
| 0.11.32 | 23 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.30 | 20 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-07-20.
Python
- Add CPython 3.15.0b4 (#20519)
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
- Add a contribution guide (#20511, #20552) |
| 0.11.29 | 15 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.28 | 7 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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
- Upgrade GraalPy to 25.1.3 (#20069)
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) |
| 0.11.27 | 6 กรกฎาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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
- Re-add pub APIs used in Pixi (#20074)
- Update Rust toolchain to 1.96.1 (#20103) |
| 0.11.26 | 30 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.25 | 27 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.24 | 23 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-06-23.
Python
- Add CPython 3.15.0b3 (#19964)
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) |
| 0.11.23 | 19 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.22 | 18 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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
- Archive the 0.10.x changelog (#19813)
Other changes
- Mark more tests as requiring network for vendors that need to run tests offline (#19819) |
| 0.11.21 | 11 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-06-11.
Python
- Add CPython 3.13.14 and 3.14.6 (#19787)
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) |
| 0.11.20 | 10 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.19 | 3 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-06-03.
Python
- Add CPython 3.15.0b2 (#19531)
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) |
| 0.11.18 | 1 มิถุนายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-06-01.
Performance
- Fix performance regression in unzip of local wheels (#19637)
Preview
- Add uv check to run ty from uv (#19605)
Bug fixes
- Update activation scripts with upstream fixes (#19628)
Other changes
- Bump MSRV to 1.94 (#19600) |
| 0.11.17 | 28 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น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) |
| 0.11.15 | 18 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-18.
Security
- Fix a TAR parser differential, see GHSA-3cv2-h65g-fgmm (#19463)
- Enforce that entry points cannot escape in the scripts directory, see GHSA-4gg8-gxpx-9rph (#19464)
Enhancements
- Add TOML v1.1 → v1.0 backwards compatibility for source distributions (#18741)
- Add support for Azure request signing (#19421)
- Apply stricter validation to all wheel filename segments (#19364)
- Reject empty strings as an invalid package name (#19435)
- Use structured errors for signing authentication failures (#19422)
Preview
- uv audit: Add JSON output (#19305)
Configuration
- Respect required-environments in uv pip compile (#19378)
Performance
- Avoid parsing JSON manifest when local Python is available (#19398)
- Avoid walking nested directories in linker conflict registration (#19382)
- Optimize async wheel ZIP writing (#19383)
- Fix dead "already trimmed" fast-path in Version::only_release_trimmed (#19425)
Bug fixes
- Apply workspace-member [tool.uv.sources] credentials under uv sync --frozen (#19423)
- Skip empty directories in uv build outputs (#19437)
- Fix Git submodule handling when using relative paths (#12156)
- Fix line number reporting in netrc parsing (#19452)
Documentation
- Move Bazel auth helper setup into integration guide (#19392) |
| 0.11.14 | 12 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-12.
Enhancements
- Add Astral mirror URL override (#19206)
- Ignore top_level.txt entries in uninstall that are not valid Python identifiers (#19340)
Bug fixes
- Avoid applying .env files in parent process (#19343)
- Filter ANSI codes in logging output (#19311)
- Fix uv tree showing extra-conditional deps for packages required without extras (#19332)
- Respect build options (e.g., --no-build) during lock validation (#19366) |
| 0.11.13 | 11 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-10.
Bug fixes
- Include data files in editable builds (#19312)
- Respect --require-hashes when installing from pylock.toml files (#19334)
Python
- Add CPython 3.14.5 |
| 0.11.12 | 8 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-08.
Python
- Add CPython 3.15.0b1
Enhancements
- Add --no-editable support to uv pip install (#19306)
- Require git refs in URLs to be percent-encoded (#19320)
Bug fixes
- Respect --no-dev over UV_DEV=1 (#19313)
- Don't suggest non-existent --no-frozen flag (#19290) (#19294)
Documentation
- Fix bug from inconsistent workflow name in GHA-PyPI guide example (#19309) |
| 0.11.11 | 6 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-06.
Bug fixes
- Accept legacy ID format from pre-0.11.9 cache entries (#19301) |
| 0.11.10 | 5 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-05.
Bug fixes
- Allow pre-release Python requests with non-zero patch versions (#19286) |
| 0.11.9 | 5 พฤษภาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-05-04.
Note due to a timeout publishing to crates.io, the GitHub portion of this release was published manually by a maintainer using the artifacts built in CI. This release will not be fully published to crates.io. There should be no other effect.
Python 3.14.5 release candidate
This release includes a special release candidate for the next Python 3.14 patch release. Python 3.14 included a new garbage collection implementation, which reduced pause times but caused significant unexpected memory pressure in production environments. In 3.14.5 and 3.15, the previous garbage collection implementation will be restored.
We would greatly appreciate if you tested the 3.14.5rc1 version included in this release. The stable version is expected to be released soon and any feedback on potential issues would be helpful to the Python development team.
For more context, see the announcement, issue, and pull request.
Issues with the new release can be reported in the uv or CPython issue trackers.
Python
- Upgrade PyPy to v7.3.22
- Add CPython 3.14.5rc1
- On macOS, CPython statically links libpython to match Linux
Enhancements
- Omit compatible release desugaring for pre-release hints (#19267)
- Fix file locks on Android (#18323)
Preview
- uv audit add reporting for adverse project statuses (#19128)
Bug fixes
- Discover versioned Python executables when requires-python pins a version (#18700)
- Fix URL prefix matching to require path boundaries (#19154)
- Fix transitive Git path dependencies in lockfiles (#19269)
- Handle incorrect unlock error in LockedFile::drop on Wine (#19229)
- Prevent uninstalling site-packages for empty top_level.txt in .egg-info (#19114)
- Use symlinks instead of junctions on Wine (#19213)
- Fix floating-point environment handling on ARMv7 (#19157)
- Redact credentials from remote requirements URL in offline errors (#19216)
- Windows tramplolines no longer set PYTHONHOME and only set __PYVENV_LAUNCHER__ for virtual environments (#19199)
Documentation
- Mark --native-tls and UV_NATIVE_TLS as deprecated (#18705)
- Re-add pytorch-triton-rocm to PyTorch ROCm docs (#19241)
- Tweak changelog entries for 0.11.8 (#19188)
- Add 'Exporting lockfiles' to the Concepts->Projects index (#19209)
- Clarify that uv init creates git files / folders in the projects guide (#19183) |
| 0.11.8 | 27 เมษายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-04-27.
Enhancements
- Add --python-downloads-json-url to python pin (#19092)
- Fetch uv from Astral mirror during self-update (#18682)
- Support pip uninstall -y (#19082)
- Add UV_PYTHON_NO_REGISTRY (#19035)
- Allow exclude-newer to be missing from the lockfile when exclude-newer-span is present (#19024)
- Only show the version number in uv self version --short (#19019)
- Silence warnings on empty SSL_CERT_DIR directory (#19018)
- Use a sentinel timestamp for relative exclude-newer and exclude-newer-package values in lockfiles (#19022, #19101)
Configuration
- Add an environment variable for UV_NO_PROJECT (#19052)
- Expose UV_PYTHON_SEARCH_PATH for Python discovery PATH overrides (#19034)
Bug fixes
- Add rust-toolchain.toml to uv-build sdist (#19131)
- Ensure uv invocations of git do not inherit repository location environment variables (#19088)
- Redact pre-signed upload URLs in verbose output (#19146)
- Handle transitive URL dependencies in PEP 517 build requirements (#19076, #19086)
- Support uv lock on a pyproject.toml that only contains dependency-groups (#19087)
- Disable transparent Python upgrades in projects when a patch version is requested via .python-version (#19102)
- Fix Python variant tagging in the Windows registry (#19012)
- Use a single codepath for extracting a .tar.zst wheel, disallowing external symlinks (#19144)
Documentation
- Bump astral-sh/setup-uv version in docs (#19030)
- Update PyTorch documentation for PyTorch 2.11 (#19095)
- Remove deprecated license classifiers from uv-build and add Python 3.14 classifier (#19130) |
| 0.11.7 | 15 เมษายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-04-15.
Python
- Upgrade CPython build to 20260414 including an OpenSSL security upgrade (#19004)
Enhancements
- Elevate configuration errors to required-version mismatches (#18977)
- Further improve TLS certificate validation messages (#18933)
- Improve --exclude-newer hints (#18952)
Preview features
- Fix --script handling in uv audit (#18970)
- Fix traversal of extras in uv audit (#18970)
Bug fixes
- De-quote workspace metadata in linehaul data (#18966)
- Avoid installing tool workspace member dependencies as editable (#18891)
- Emit JSON report for uv sync --check failures (#18976)
- Filter and warn on invalid TLS certificates (#18951)
- Fix equality comparisons for version specifiers with ~= operators (#18960)
- Fix stale Python upgrade preview feature check in project environment construction (#18961)
- Improve Windows path normalization (#18945) |
| 0.11.6 | 9 เมษายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-04-09.
Bug fixes
- Do not remove files outside the venv on uninstall (#18942)
- Validate and heal wheel RECORD during installation (#18943)
- Avoid uv cache clean errors due to Win32 path normalization (#18856) |
| 0.11.5 | 8 เมษายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-04-08.
Python
- Add CPython 3.13.13, 3.14.4, and 3.15.0a8 (#18908)
Enhancements
- Fix build_system.requires error message (#18911)
- Remove trailing path separators in path normalization (#18915)
- Improve error messages for unsupported or invalid TLS certificates (#18924)
Preview features
- Add exclude-newer to [[tool.uv.index]] (#18839)
- uv audit: add context/warnings for ignored vulnerabilities (#18905)
Bug fixes
- Normalize persisted fork markers before lock equality checks (#18612)
- Clear junction properly when uninstalling Python versions on Windows (#18815)
- Report error cleanly instead of panicking on TLS certificate error (#18904)
Documentation
- Remove the legacy PIP_COMPATIBILITY.md redirect file (#18928)
- Fix uv init example-bare --bare examples (#18822, #18925) |
| 0.11.4 | 8 เมษายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-04-07.
Python
- Add CPython 3.13.13, 3.14.4, and 3.15.0a8 (#18908)
Enhancements
- Add support for --upgrade-group (#18266)
- Merge repeated archive URL hashes by version ID (#18841)
- Require all direct URL hash algorithms to match (#18842)
Bug fixes
- Avoid panics in environment finding via cycle detection (#18828)
- Enforce direct URL hashes for pyproject.toml dependencies (#18786)
- Error on --locked and --frozen when script lockfile is missing (#18832)
- Fix uv export extra resolution for workspace member and conflicting extras (#18888)
- Include conflicts defined in virtual workspace root (#18886)
- Recompute relative exclude-newer values during uv tree --outdated (#18899)
- Respect --exclude-newer in uv tool list --outdated (#18861)
- Sort by comparator to break specifier ties (#18850)
- Store relative timestamps in tool receipts (#18901)
- Track newly-activated extras when determining conflicts (#18852)
- Patch Cargo.lock in uv-build source distributions (#18831)
Documentation
- Clarify that --exclude-newer compares artifact upload times (#18830) |
| 0.11.3 | 1 เมษายน 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-04-01.
Enhancements
- Add progress bar for hashing phase in uv publish (#18752)
- Add support for ROCm 7.2 (#18730)
- Emit abi3t tags for every abi3 version (#18777)
- Expand uv workspace metadata with dependency information from the lock (#18356)
- Implement support for PEP 803 (#18767)
- Pretty-print platform in built wheel errors (#18738)
- Publish installers to /installers/uv/latest on the mirror (#18725)
- Show free-threaded Python in built-wheel errors (#18740)
Preview features
- Add --ignore and --ignore-until-fixed to uv audit (#18737)
Bug fixes
- Bump simple API cache (#18797)
- Don't drop blake2b hashes (#18794)
- Handle broken range request implementations (#18780)
- Remove powerpc64-unknown-linux-gnu from release build targets (#18800)
- Respect dependency metadata overrides in uv pip check (#18742)
- Support debug CPython ABI tags in environment compatibility (#18739)
Documentation
- Document false opt-out for exclude-newer-package (#18768, #18803) |
| 0.11.2 | 26 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-26.
Enhancements
- Add a dedicated Windows PE editing error (#18710)
- Make uv self update fetch the manifest from the mirror first (#18679)
- Use uv reqwest client for self update (#17982)
- Show uv self update success and failure messages with --quiet (#18645)
Preview features
- Evaluate extras and groups when determining auditable packages (#18511)
Bug fixes
- Skip redundant project configuration parsing for uv run (#17890) |
| 0.11.1 | 24 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-24.
Bug fixes
- Add missing hash verification for riscv64gc-unknown-linux-musl (#18686)
- Fallback to direct download when direct URL streaming is unsupported (#18688)
- Revert treating 'Dynamic' values as case-insensitive (#18692)
- Remove torchdata from list of packages to source from the PyTorch index (#18703)
- Special-case == Python version request ranges (#9697)
Documentation
- Cover --python <dir> in "Using arbitrary Python environments" (#6457)
- Fix version annotations for PS_MODULE_PATH and UV_WORKING_DIR (#18691) |
| 0.11.0 | 23 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-23.
Breaking changes
This release includes changes to the networking stack used by uv. While we think that breakage will be rare, it is possible that these changes will result in the rejection of certificates previously trusted by uv so we have marked the change as breaking out of an abundance of caution.
The changes are largely driven by the upgrade of reqwest, which powers uv's HTTP clients, to v0.13 which included some breaking changes to TLS certificate verification.
The following changes are included:
- rustls-platform-verifier is used instead of rustls-native-certs and webpki for certificate verification
This change should have no effect unless you are using the native-tls option to enable reading system certificates.
rustls-platform-verifier delegates to the system for certificate validation (e.g., Security.framework on macOS) instead of eagerly loading certificates from the system and verifying them via webpki. The effects of this change will vary based on the operating system. In general, uv's certificate validation should now be more consistent with browsers and other native applications. However, this is the most likely cause of breaking changes in this release. Some previously failing certificate chains may succeed, and some previously accepted certificate chains may fail. In either case, we expect the validation to be more correct and welcome reports of regressions.
In particular, because more responsibility for validating the certificate is transferred to your system's security library, some features like CA constraints or revocation of certificates via OCSP and CRLs may now be used.
This change should improve performance when using system certificate on macOS, as uv no longer needs to load all certificates from the keychain at startup.
- aws-lc is used instead of ring for a cryptography backend
There should not be breaking changes from this change. We expect this to expand support for certificate signature algorithms.
- --native-tls is deprecated in favor of a new --system-certs flag
The --native-tls flag is still usable and has identical behavior to --system-certs.
This change was made to reduce confusion about the TLS implementation uv uses. uv always uses rustls not native-tls.
- Building uv on x86-64 and i686 Windows requires NASM
NASM is required by aws-lc. If not found on the system, a prebuilt blob provided by aws-lc-sys will be used.
If you are not building uv from source, this change has no effect.
See the CONTRIBUTING guide for details.
- Empty SSL_CERT_FILE values are ignored (for consistency with SSL_CERT_DIR)
See #18550 for details.
Python
- Enable frame pointers for improved profiling on Linux x86-64 and aarch64
See the python-build-standalone release notes for details.
Enhancements
- Treat 'Dynamic' values as case-insensitive (#18669)
- Use a dedicated error for invalid cache control headers (#18657)
- Enable checksum verification in the generated installer script (#18625)
Preview features
- Add --service-format and --service-url to uv audit (#18571)
Performance
- Avoid holding flat index lock across indexes (#18659)
Bug fixes
- Find the dynamic linker on the file system when sniffing binaries fails (#18457)
- Fix export of conflicting workspace members with dependencies (#18666)
- Respect installed settings in uv tool list --outdated (#18586)
- Treat paths originating as PEP 508 URLs which contain expanded variables as relative (#18680)
- Fix uv export for workspace member packages with conflicts (#18635)
- Continue to alternative authentication providers when the pyx store has no token (#18425)
- Use redacted URLs for log messages in cached client (#18599)
Documentation
- Add details on Linux versions to the platform policy (#18574)
- Clarify FLASH_ATTENTION_SKIP_CUDA_BUILD guidance for flash-attn installs (#18473)
- Split the dependency bots page into two separate pages (#18597)
- Split the alternative indexes page into separate pages (#18607) |
| 0.10.12 | 19 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-19.
Python
- Add pypy 3.11.15 (#18468)
- Add support for using Python 3.6 interpreters (#18454)
Enhancements
- Include uv's target triple in version report (#18520)
- Allow comma separated values in --no-emit-package (#18565)
Preview features
- Show uv audit in the CLI help (#18540)
Bug fixes
- Improve reporting of managed interpreter symlinks in uv python list (#18459)
- Preserve end-of-line comments on previous entries when removing dependencies (#18557)
- Treat abi3 wheel Python version as a lower bound (#18536)
- Detect hard-float support on aarch64 kernels running armv7 userspace (#18530)
Documentation
- Add Python 3.15 to supported versions (#18552)
- Adjust the PyPy note (#18548)
- Move Pyodide to Tier 2 in the Python support policy (#18561)
- Move Rust and Python version support out of the Platform support policy (#18535)
- Update Docker guide with changes from uv-docker-example (#18558)
- Update the Python version policy (#18559) |
| 0.10.11 | 17 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-16.
Enhancements
- Fetch Ruff release metadata from an Astral mirror (#18358)
- Use PEP 639 license metadata for uv itself (#16477)
Performance
- Improve distribution id performance (#18486)
Bug fixes
- Allow --project to refer to a pyproject.toml directly and reduce to a warning on other files (#18513)
- Disable SYSTEM_VERSION_COMPAT when querying interpreters on macOS (#18452)
- Enforce available distributions for supported environments (#18451)
- Fix uv sync --active recreating active environments when UV_PYTHON_INSTALL_DIR is relative (#18398)
Documentation
- Add missing -o requirements.txt in uv pip compile example (#12308)
- Link to organization security policy (#18449)
- Link to the AI policy in the contributing guide (#18448) |
| 0.10.10 | 13 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-13.
Python
- Add CPython 3.15.0a7 (#18403)
Enhancements
- Add --outdated flag to uv tool list (#18318)
- Add riscv64 musl target to build-release-binaries workflow (#18228)
- Fetch Ruff from an Astral mirror (#18286)
- Improve error handling for platform detection in Python downloads (#18453)
- Warn if --project directory does not exist (#17714)
- Warn when workspace member scripts are skipped due to missing build system (#18389)
- Update build backend versions used in uv init (#18417)
- Log explicit config file path in verbose output (#18353)
- Make uv cache clear an alias of uv cache clean (#18420)
- Reject invalid classifiers, warn on license classifiers in uv_build (#18419)
Preview features
- Add links to uv audit output (#18392)
- Output/report formatting for uv audit (#18193)
- Switch to batched OSV queries for uv audit (#18394)
Bug fixes
- Avoid sharing version metadata across indexes (#18373)
- Bump zlib-rs to 0.6.2 to fix panic on decompression of large wheels on Windows (#18362)
- Filter out unsupported environment wheels (#18445)
- Preserve absolute/relative paths in lockfiles (#18176)
- Recreate Python environments under uv tool install --force (#18399)
- Respect timestamp and other cache keys in cached environments (#18396)
- Simplify selected extra markers in uv export (#18433)
- Send pyx mint-token requests with a proper Content-Type (#18334)
- Fix Windows operating system and version reporting (#18383)
Documentation
- Update the platform support policy with a tier 3 section including freebsd and 32-bit windows (#18345) |
| 0.10.9 | 6 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-06.
Enhancements
- Add fbgemm-gpu, fbgemm-gpu-genai, torchrec, and torchtune to the PyTorch list (#18338)
- Add torchcodec to PyTorch List (#18336)
- Log the duration we took before erroring (#18231)
- Warn when using uv_build settings without uv_build (#15750)
- Add fallback to /usr/lib/os-release on Linux system lookup failure (#18349)
- Use cargo auditable to include SBOM in uv builds (#18276)
Configuration
- Add an environment variable for UV_VENV_RELOCATABLE (#18331)
Performance
- Avoid toml Document overhead (#18306)
- Use a single global workspace cache (#18307)
Bug fixes
- Continue on trampoline job assignment failures (#18291)
- Handle the hard link limit gracefully instead of failing (#17699)
- Respect build constraints for workspace members (#18350)
- Revalidate editables and other dependencies in scripts (#18328)
- Support Python 3.13+ on Android (#18301)
- Support cp3-none-any (#17064)
- Skip tool environments with broken links to Python on Windows (#17176)
Documentation
- Add documentation for common marker values (#18327)
- Improve documentation on virtual dependencies (#18346) |
| 0.10.8 | 3 มีนาคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-03-03.
Python
- Add CPython 3.10.20
- Add CPython 3.11.15
- Add CPython 3.12.13
Enhancements
- Add Docker images based on Docker Hardened Images (#18247)
- Add resolver hint when --exclude-newer filters out all versions of a package (#18217)
- Configure a real retry minimum delay of 1s (#18201)
- Expand uv_build direct build compatibility (#17902)
- Fetch CPython from an Astral mirror by default (#18207)
- Download uv releases from an Astral mirror in installers by default (#18191)
- Add SBOM attestations to Docker images (#18252)
- Improve hint for installing meson-python when missing as build backend (#15826)
Configuration
- Add UV_INIT_BARE environment variable for uv init (#18210)
Bug fixes
- Prevent uv tool upgrade from installing excluded dependencies (#18022)
- Promote authentication policy when saving tool receipts (#18246)
- Respect exclusions in scripts (#18269)
- Retain default-branch Git SHAs in pylock.toml files (#18227)
- Skip installed Python check for URL dependencies (#18211)
- Respect constraints during --upgrade (#18226)
- Fix uv tree orphaned roots and premature deduplication (#17212)
Documentation
- Mention cooldown and tweak inline script metadata in dependency bots documentation (#18230)
- Move cache prune in GitLab to after_script (#18206) |
| 0.10.7 | 27 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-27.
Bug fixes
- Fix handling of junctions in Windows Containers on Windows (#18192)
Enhancements
- Activate logging for middleware retries (#18200)
- Upload uv releases to a mirror (#18159) |
| 0.10.6 | 25 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-24.
Bug fixes
- Apply lockfile marker normalization for fork markers (#18116)
- Fix Python version selection for scripts with a requires-python conflicting with .python-version (#18097)
- Preserve file permissions when using reflinks on Linux (#18187)
Documentation
- Remove verbose documentation from optional dependencies help text (#18180) |
| 0.10.5 | 24 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-23.
Enhancements
- Add hint when named index is found in a parent config file (#18087)
- Add warning for uv lock --frozen (#17859)
- Attempt to use reflinks by default on Linux (#18117)
- Fallback to hardlinks after reflink failure before copying (#18104)
- Filter pylock.toml wheels by tags and requires-python (#18081)
- Validate wheel filenames are normalized during uv publish (#17783)
- Fix message when exclude-newer invalidates the lock file (#18100)
- Change the missing files log level to debug (#18075)
Performance
- Improve performance of repeated conflicts with an extra (#18094)
Bug fixes
- Fix --no-emit-workspace with --all-packages on single-member workspaces (#18098)
- Fix UV_NO_DEFAULT_GROUPS rejecting truthy values like 1 (#18057)
- Fix iOS detection (#17973)
- Propagate project-level conflicts to package extras (#18096)
- Use a global build concurrency semaphore (#18054)
Documentation
- Update documentation heading for environment variable files (#18122)
- Fix comment about uv export formats (#17900)
- Make it clear that Windows is supported in user- and system- level configuration docs (#18106) |
| 0.10.4 | 17 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-17.
Enhancements
- Remove duplicate references to the affected paths when showing uv python errors (#18008)
- Skip discovery of workspace members that contain only git-ignored files, including in sub-directories (#18051)
Bug fixes
- Don't panic when initialising a package at the filesystem root (e.g. uv init / --name foo) (#17983)
- Fix permissions on wheel and sdist files produced by the uv_build build backend (#18020)
- Revert locked file change to fix locked files on NFS mounts (#18071) |
| 0.10.3 | 16 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-16.
Python
- Add CPython 3.15.0a6
Enhancements
- Don't open file locks for writing (#17956)
- Make Windows trampoline error messages consistent with uv proper (#17969)
- Log which preview features are enabled (#17968)
Preview features
- Add support for ruff version constraints and exclude-newer in uv format (#17651)
- Fix script path handling when target-workspace-discovery is enabled (#17965)
- Use version constraints to select the default ruff version used by uv format (#17977)
Bug fixes
- Avoid matching managed Python versions by prefixes, e.g. don't match CPython 3.10 when cpython-3.1 is specified (#17972)
- Fix handling of --allow-existing with minor version links on Windows (#17978)
- Fix panic when encountering unmanaged workspace members (#17974)
- Improve accuracy of request timing (#18007)
- Reject u64::MAX in version segments to prevent overflow (#17985)
Documentation
- Reference Debian Trixie instead of Bookworm (#17991) |
| 0.10.2 | 10 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-10.
Enhancements
- Deprecate unexpected ZIP compression methods (#17946)
Bug fixes
- Fix cargo-install failing due to missing uv-test dependency (#17954) |
| 0.10.1 | 10 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-10.
Enhancements
- Don't panic on metadata read errors (#17904)
- Skip empty workspace members instead of failing (#17901)
- Don't fail creating a read-only sdist-vX/.git if it already exists (#17825)
Documentation
- Suggest uv python update-shell over uv tool update-shell in Python docs (#17941) |
| 0.10.0 | 5 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นSince we released uv 0.9.0 in October of 2025, we've accumulated various changes that improve correctness and user experience, 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.
This release also includes the stabilization of preview features. Python upgrades are now stable, including the uv python upgrade command, uv python install --upgrade, and automatically upgrading Python patch versions in virtual environments when a new version is installed. The add-bounds and extra-build-dependencies settings are now stable. Finally, the uv workspace dir and uv workspace list utilities for writing scripts against workspace members are now stable.
Breaking changes
- Require --clear to remove existing virtual environments in uv venv (#17757)
Previously, uv venv would prompt for confirmation before removing an existing virtual environment in interactive contexts, and remove it without confirmation in non-interactive contexts. Now, uv venv requires the --clear flag to remove an existing virtual environment. A warning for this change was added in uv 0.8.
You can opt out of this behavior by passing the --clear flag or setting UV_VENV_CLEAR=1.
- Error if multiple indexes include default = true (#17011)
Previously, uv would silently accept multiple indexes with default = true and use the first one. Now, uv will error if multiple indexes are marked as the default.
You cannot opt out of this behavior. Remove default = true from all but one index.
- Error when an explicit index is unnamed (#17777)
Explicit indexes can only be used via the [tool.uv.sources] table, which requires referencing the index by name. Previously, uv would silently accept unnamed explicit indexes, which could never be referenced. Now, uv will error if an explicit index does not have a name.
You cannot opt out of this behavior. Add a name to the explicit index or remove the entry.
- Install alternative Python executables using their implementation name (#17756, #17760)
Previously, uv python install would install PyPy, GraalPy, and Pyodide executables with names like python3.10 into the bin directory. Now, these executables will be named using their implementation name, e.g., pypy3.10, graalpy3.10, and pyodide3.12, to avoid conflicting with CPython installations.
You cannot opt out of this behavior.
- Respect global Python version pins in uv tool run and uv tool install (#14112)
Previously, uv tool run and uv tool install did not respect the global Python version pin (set via uv python pin --global). Now, these commands will use the global Python version when no explicit version is requested.
For uv tool install, if the tool is already installed, the Python version will not change unless --reinstall or --python is provided. If the tool was previously installed with an explicit --python flag, the global pin will not override it.
You can opt out of this behavior by providing an explicit --python flag.
- Remove Debian Bookworm, Alpine 3.21, and Python 3.8 Docker images (#17755)
The Debian Bookworm and Alpine 3.21 images were replaced by Debian Trixie and Alpine 3.22 as defaults in uv 0.9. These older images are now removed. Python 3.8 images are also removed, as Python 3.8 is no longer supported in the Trixie or Alpine base images.
The following image tags are no longer published:
- uv:bookworm, uv:bookworm-slim
- uv:alpine3.21
- uv:python3.8-*
Use uv:debian or uv:trixie instead of uv:bookworm, uv:alpine or uv:alpine3.22 instead of uv:alpine3.21, and a newer Python version instead of uv:python3.8-*.
- Drop PPC64 (big endian) builds (#17626)
uv no longer provides pre-built binaries for PPC64 (big endian). This platform appears to be largely unused and is only supported on a single manylinux version. PPC64LE (little endian) builds are unaffected.
Building uv from source is still supported for this platform.
- Skip generating activat |
| 0.9.30 | 4 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-04.
Python
- Add CPython 3.14.3 and 3.13.12 (#17849)
Enhancements
- Allow comma-separated values for --extra option (#17525)
- Check all files during a dry-run publish instead of stopping at the first failure (#17785)
- Clarify UV_HTTP_TIMEOUT error message (#17493)
Preview features
- Use relocatable virtual environments by default (#17770)
Bug fixes
- Fix deadlock on token refresh in uv publish when using pyx (#17832)
- Ignore global Python pins when incompatible with project (#15473) |
| 0.9.29 | 3 กุมภาพันธ์ 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-02-03.
Python
- Update to Pyodide 0.29.3 (#17730)
Enhancements
- Add wheel-tag-style aliases for manylinux platform names (#17750)
- Hint on uv version --bump dev similar to pre-release bumps (#17796)
- Improve display of RFC 9457 Problem Detail responses in uv publish server errors (#17787)
- Improve the wording of publish errors during dry-run (#17782)
- Set backoff to 10 retries (#17816)
- Add properties to synthentic and project roots in Cyclone DX exports (#17820)
- Identify the invidividual clients in uv publish trace logs (#17784)
Preview features
- Remove special casing for base and default conda environment names (#17758)
Bug fixes
- Fix PYTHONHOME inheritance when spawning different Python versions (#17821)
- Fix wheel rejections on freethreading+debug builds (#17812)
- Pad with zeros during comparisons in EqualStar and NotEqualStar operators (#17751)
- Reject unknown field names in conflict declarations (#17727)
- Fix panics in system-configuration in sandboxes (#17829)
Documentation
- Update pip pre-release compatibility information (#17788)
Security
- Hide a subset of environment variable values in --help (#17745) |
| 0.9.28 | 29 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-29.
Python
- Update CPython to use OpenSSL 3.5.5 which includes fixes for high severity CVEs (python-build-standalone#960)
Enhancements
- Add support for Pyodide interpreter on Windows (#17658)
- Warn if multiple indexes include default = true (#17713)
- Skip uploads when validation reports 'Already uploaded' (#17412)
Configuration
- Add a reflink alias for the "clone" link mode (#17724)
Bug fixes
- Ensure uv.exe exits when uvw.exe or uvx.exe is killed (#17500) |
| 0.9.27 | 26 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-26.
Python
- Upgrade Pyodide to 0.29.2 (#17652)
- Upgrade to GraalPy 25.0.2 (#17634)
Enhancements
- Add -t shortform for --target to uv pip subcommands (#17501)
- Add support for ROCm 7.0 and 7.1 accelerator backends (#17681)
- Further improve free-threading ABI incompatibility errors (#17491)
- Implement uv pip freeze --exclude flag (#17045)
- Improve warnings for --system and --no-system in uv venv (#17647)
- Make uv pip compile attempt to download a specified --python-version if it can. (#17249)
- Support Trusted Publishing with pyx (#17438)
- Fix JSON schema for exclude-newer-package (#17665)
Preview features
- Better detection for conflicting packages (#17623)
- Upgrade based on outdated build versions in uv python upgrade (#17653)
Bug fixes
- Change chocolatey system test to ensure uv uses the right python (#17533)
- Fix infinite loop when SSL_CERT_FILE is a directory (#17503)
Documentation
- Add cargo-xwin to the CONTRIBUTING guide (#17507)
- Fix typo in the documentation of UV_PUBLISH_INDEX (#17672)
- Move MSRV to platform support section (#17534)
- Update the testing instructions in the CONTRIBUTING guide (#17528)
- Use --locked to install cargo-xwin in guide (#17530)
- Warn about PyPy being unmaintained (#17643)
- docs: Correct gitlab-ci.yml to .gitlab-ci.yml (#17682)
Other changes
- Update MSRV to 1.91 (#17677) |
| 0.9.26 | 15 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-15.
Python
- Add CPython 3.15.0a5
Enhancements
- Add a hint to update uv when a managed Python download is not found (#17461)
- Improve cache initialization failure error message (#17469)
- Improve error message for abi3 wheels on free-threaded Python (#17442)
- Add support for --no-sources-package (#14910)
Preview features
- Add METADATA.json and WHEEL.json in uv build backend (#15510)
- Add support for GCS request signing (#17474)
- Adjust the process ulimit to the maximum allowed on startup (#17464)
Bug fixes
- Lock to avoid concurrent refresh of pyx tokens (#17479)
Documentation
- Add linting and formatting instructions to the CONTRIBUTING guide (#17470)
- Avoid rendering pyproject.toml examples for more system-level settings (#17462) |
| 0.9.25 | 13 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-13.
Python
- Add CPython 3.15.0a4
- Upgrade Tcl/Tk used by CPython to 9.0
Enhancements
- Add --compile-bytecode to uv python install and uv python upgrade to compile the standard library (#17088)
- Allow disabling exclude-newer per package (#16854)
- Broadcast WM_SETTINGCHANGE on uv tool update-shell (#17404)
Preview features
- Detect workspace from uv run target (#17423)
Bug fixes
- Avoid unwrapping size for file responses (#17434)
- Use keyring authentication when retrieving tool@latest version (#17448)
- Use latest Pyodide version for each python version (#17372)
- Improve trampoline file handle closing (#17374)
- Fix error message when installing musl python on armv7 (#17213) |
| 0.9.24 | 9 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-09.
Bug fixes
- Fix handling of UV_NO_SYNC=1 uv run ... (#17391)
- Rebuild dynamic distribution when version changes with --no-cache (#17387)
Documentation
- Add Rust language classifier (#17389) |
| 0.9.23 | 9 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-09.
Enhancements
- Only write portable paths in RECORD files (#17339)
- Support relative paths in UV_PYTHON_BIN_DIR and UV_TOOL_BIN_DIR (#17367)
Preview features
- Enable uploads to S3 via pre-signed URLs (#17349)
Configuration
- Allow setting proxy variables via global / user configuration (#16918)
- Manually parse and reconcile Boolean environment variables (#17321)
Bug fixes
- Avoid broken build artifacts on build failure (#17276)
- Fix missing dependencies on synthetic root in SBOM export (#17363)
- Recognize armv8l as an alias for armv7l in platform tag parsing (#17384)
- Fix redaction of a URL in a middleware trace log (#17346)
Documentation
- Add index.md suggestion to llms.txt (#17362)
- Clarify that uv run uses inexact syncing by default (#17366) |
| 0.9.22 | 6 มกราคม 2569 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2026-01-06.
Enhancements
- Use a dedicated error message when lockfile can't be found (#17318)
Bug fixes
- Filter unusable wheels from the lockfile for more architectures (#17317)
- Correctly count retries originating from early middleware errors (#17274)
Documentation
- Clarify requirements file format in docs (#17284) |
| 0.9.21 | 30 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-30.
Bug fixes
- Fix regression where zstd distribution hashes were not considered valid (#17265)
Documentation
- Fix a typo in the resolution documentation (#17258)
- Fix a typo in python install --default documentation (#9826) |
| 0.9.20 | 29 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-29.
This is a re-release of 0.9.20, with internal crate versions incremented to enable publishing to crates.io. |
| 0.9.18 | 16 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-16.
Enhancements
- Add value hints to command line arguments to improve shell completion accuracy (#17080)
- Improve error handling in uv publish (#17096)
- Improve rendering of multiline error messages (#17132)
- Support redirects in uv publish (#17130)
- Include Docker images with the alpine version, e.g., python3.x-alpine3.23 (#17100)
Configuration
- Accept --torch-backend in [tool.uv] (#17116)
Performance
- Speed up uv cache size (#17015)
- Initialize S3 signer once (#17092)
Bug fixes
- Avoid panics due to reads on failed requests (#17098)
- Enforce latest-version in @latest requests (#17114)
- Explicitly set EntryType for file entries in tar (#17043)
- Ignore pyproject.toml index username in lockfile comparison (#16995)
- Relax error when using uv add with UV_GIT_LFS set (#17127)
- Support file locks on ExFAT on macOS (#17115)
- Change schema for exclude-newer into optional string (#17121)
Documentation
- Drop arm musl caveat from Docker documentation (#17111)
- Fix version reference in resolver example (#17085)
- Better documentation for exclude-newer* (#17079) |
| 0.9.17 | 9 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-09.
Enhancements
- Add torch-tensorrt and torchao to the PyTorch list (#17053)
- Add hint for misplaced --verbose in uv tool run (#17020)
- Add support for relative durations in exclude-newer (a.k.a., dependency cooldowns) (#16814)
- Add support for relocatable nushell activation script (#17036)
Bug fixes
- Respect dropped (but explicit) indexes in dependency groups (#17012)
Documentation
- Improve source-exclude reference docs (#16832)
- Recommend UV_NO_DEV in Docker installs (#17030)
- Update UV_VERSION in docs for GitLab CI/CD (#17040) |
| 0.9.16 | 6 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-06.
Python
- Add CPython 3.14.2
- Add CPython 3.13.11
Enhancements
- Add a 5m default timeout to acquiring file locks to fail faster on deadlock (#16342)
- Add a stub debug subcommand to uv pip announcing its intentional absence (#16966)
- Add bounds in uv add --script (#16954)
- Add brew specific message for uv self update (#16838)
- Error when built wheel is for the wrong platform (#16074)
- Filter wheels from PEP 751 files based on --no-binary et al in uv pip compile (#16956)
- Support --target and --prefix in uv pip list, uv pip freeze, and uv pip show (#16955)
- Tweak language for build backend validation errors (#16720)
- Use explicit credentials cache instead of global static (#16768)
- Enable SIMD in HTML parsing (#17010)
Preview features
- Fix missing preview warning in uv workspace metadata (#16988)
- Add a uv auth helper --protocol bazel command (#16886)
Bug fixes
- Fix Pyston wheel compatibility tags (#16972)
- Allow redundant entries in tool.uv.build-backend.module-name but emit warnings (#16928)
- Fix infinite loop in non-attribute re-treats during HTML parsing (#17010)
Documentation
- Clarify --project flag help text to indicate project discovery (#16965)
- Regenerate the crates.io READMEs on release (#16992)
- Update Docker integration guide to prefer COPY over ADD for simple cases (#16883)
- Update PyTorch documentation to include information about supporting CUDA 13.0.x (#16957)
- Update the versioning policy (#16710)
- Upgrade PyTorch documentation to latest versions (#16970) |
| 0.9.15 | 3 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-02.
Continuing the unfortunate chain of disrupted releases, this release failed due to an error publishing new PEP 740 attestations to PyPI. The release workflow was re-run after removing the PEP 740 attestations (see #16944) and our GitHub and PyPI artifacts were published as normal, but the crates.io publish completed in the first run and does not match the 0.9.15 tag — instead, the crates were published at commit https://github.com/astral-sh/uv/commit/e7af5838bbd3fe00d45b0ae6f399975846dbf41b. The only difference is the inclusion of https://github.com/astral-sh/uv/pull/16885.
Python
- Add CPython 3.14.1
- Add CPython 3.13.10
Enhancements
- Add ROCm 6.4 to --torch-backend=auto (#16919)
- Add a Windows manifest to uv binaries (#16894)
- Add LFS toggle to Git sources (#16143)
- Cache source reads during resolution (#16888)
- Allow reading requirements from scripts without an extension (#16923)
- Allow reading requirements from scripts with HTTP(S) paths (#16891)
Configuration
- Add UV_HIDE_BUILD_OUTPUT to omit build logs (#16885)
Bug fixes
- Fix uv-trampoline-builder builds from crates.io by moving bundled executables (#16922)
- Respect NO_COLOR and always show the command as a header when paging uv help output (#16908)
- Use 0o666 permissions for flock files instead of 0o777 (#16845)
- Revert "Bump astral-tl to v0.7.10 (#16887)" to narrow down a regression causing hangs in metadata retrieval (#16938)
Documentation
- Link to the uv version in crates.io member READMEs (#16939) |
| 0.9.14 | 1 ธันวาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-12-01.
Performance
- Bump astral-tl to v0.7.10 to enable SIMD for HTML parsing (#16887)
Bug fixes
- Allow earlier post releases with exclusive ordering (#16881)
- Prefer updating existing .zshenv over creating a new one in tool update-shell (#16866)
- Respect -e flags in uv add (#16882)
Enhancements
- Attach subcommand to User-Agent string (#16837)
- Prefer UV_WORKING_DIR over UV_WORKING_DIRECTORY for consistency (#16884) |
| 0.9.13 | 26 พฤศจิกายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-11-26.
Bug fixes
- Revert "Allow --with-requirements to load extensionless inline-metadata scripts" to fix reading of requirements files from streams (#16861)
- Validate URL wheel tags against Requires-Python and required environments (#16824)
Documentation
- Drop unpublished crates from the uv crates.io README (#16847)
- Fix the links to uv in crates.io member READMEs (#16848) |
| 0.9.12 | 25 พฤศจิกายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-11-24.
Enhancements
- Allow --with-requirements to load extensionless inline-metadata scripts (#16744)
- Collect and upload PEP 740 attestations during uv publish (#16731)
- Prevent uv export from overwriting pyproject.toml (#16745)
Documentation
- Add a crates.io README for uv (#16809)
- Add documentation for intermediate Docker layers in a workspace (#16787)
- Enumerate workspace members in the uv crate README (#16811)
- Fix documentation links for crates (#16801)
- Generate a crates.io README for uv workspace members (#16812)
- Move the "Export" guide to the projects concept section (#16835)
- Update the cargo install recommendation to use crates (#16800)
- Use the word "internal" in crate descriptions (#16810) |
| 0.9.11 | 20 พฤศจิกายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-11-20.
Due to rate limiting during publish to crates.io, this release was partially published and manually finished. Consequently, crates.io does not include all of the artifacts and the GitHub Release was published by a maintainer instead of GitHub Actions. The artifacts from GitHub Actions were used without alteration. There should be no consequences from this; we just want to be transparent about the provenance of the artifacts.
Python
- Add CPython 3.15.0a2
See the python-build-standalone release notes for details.
Enhancements
- Add SBOM support to uv export (#16523)
- Publish to crates.io (#16770)
Preview features
- Add uv workspace list --paths (#16776)
- Fix the preview warning on uv workspace dir (#16775)
Bug fixes
- Fix uv init author serialization via toml_edit inline tables (#16778)
- Fix status messages without TTY (#16785)
- Preserve end-of-line comment whitespace when editing pyproject.toml (#16734)
- Disable always-authenticate when running under Dependabot (#16773)
Documentation
- Document the new behavior for free-threaded python versions (#16781)
- Improve note about build system in publish guide (#16788)
- Move do not upload publish note out of the guide into concepts (#16789) |
| 0.9.10 | 17 พฤศจิกายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-11-17.
Enhancements
- Add support for SSL_CERT_DIR (#16473)
- Enforce UTF‑8-encoded license files during uv build (#16699)
- Error when a project.license-files glob matches nothing (#16697)
- pip install --target (and sync) install Python if necessary (#16694)
- Account for python_downloads_json_url in pre-release Python version warnings (#16737)
- Support HTTP/HTTPS URLs in uv python --python-downloads-json-url (#16542)
Preview features
- Add support for --upgrade in uv python install (#16676)
- Fix handling of python install --default for pre-release Python versions (#16706)
- Add uv workspace list to list workspace members (#16691)
Bug fixes
- Don't check file URLs for ambiguously parsed credentials (#16759)
Documentation
- Add a "storage" reference document (#15954) |
| 0.9.9 | 12 พฤศจิกายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-11-12.
Deprecations
- Deprecate use of --project in uv init (#16674)
Enhancements
- Add iOS support to Python interpreter discovery (#16686)
- Reject ambiguously parsed URLs (#16622)
- Allow explicit values in uv version --bump (#16555)
- Warn on use of managed pre-release Python versions when a stable version is available (#16619)
- Allow signing trampolines on Windows by using .rcdata to store metadata (#15068)
- Add --only-emit-workspace and similar variants to uv export (#16681)
Preview features
- Add uv workspace dir command (#16678)
- Add uv workspace metadata command (#16516)
Configuration
- Add UV_NO_DEFAULT_GROUPS environment variable (#16645)
Bug fixes
- Remove torch-model-archiver and torch-tb-profiler from PyTorch backend (#16655)
- Fix Pixi environment detection (#16585)
Documentation
- Fix CMD path in FastAPI Dockerfile (#16701) |
| 0.9.8 | 7 พฤศจิกายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-11-07.
Enhancements
- Accept multiple packages in uv export (#16603)
- Accept multiple packages in uv sync (#16543)
- Add a uv cache size command (#16032)
- Add prerelease guidance for build-system resolution failures (#16550)
- Allow Python requests to include +gil to require a GIL-enabled interpreter (#16537)
- Avoid pluralizing 'retry' for single value (#16535)
- Enable first-class dependency exclusions (#16528)
- Fix inclusive constraints on available package versions in resolver errors (#16629)
- Improve uv init error for invalid directory names (#16554)
- Show help on uv build -h (#16632)
- Include the Python variant suffix in "Using Python ..." messages (#16536)
- Log most recently modified file for cache-keys (#16338)
- Update Docker builds to use nightly Rust toolchain with musl v1.2.5 (#16584)
Configuration
- Expose UV_NO_GROUP as an environment variable (#16529)
- Add UV_NO_SOURCES as an environment variable (#15883)
Bug fixes
- Allow --check and --locked to be used together in uv lock (#16538)
- Allow for unnormalized names in the METADATA file (#16547) (#16548)
- Fix missing value_type for default-groups in schema (#16575)
- Respect multi-GPU outputs in nvidia-smi (#15460)
- Fix DNS lookup errors in Docker containers (#8450)
Documentation
- Fix typo in uv tool list doc (#16625)
- Note uv pip list name normalization in docs (#13210)
Other changes
- Update Rust toolchain to 1.91 and MSRV to 1.89 (#16531) |
| 0.9.7 | 30 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-30.
Enhancements
- Add Windows x86-32 emulation support to interpreter architecture checks (#13475)
- Improve readability of progress bars (#16509)
Bug fixes
- Drop terminal coloring from uv auth token output (#16504)
- Don't use UV_LOCKED to enable --check flag (#16521) |
| 0.9.6 | 29 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-29.
This release contains an upgrade to Astral's fork of async_zip, which addresses potential sources of ZIP parsing differentials between uv and other Python packaging tooling. See GHSA-pqhf-p39g-3x64 for additional details.
Security
- Address ZIP parsing differentials (GHSA-pqhf-p39g-3x64)
Python
- Upgrade GraalPy to 25.0.1 (#16401)
Enhancements
- Add --clear to uv build to remove old build artifacts (#16371)
- Add --no-create-gitignore to uv build (#16369)
- Do not error when a virtual environment directory cannot be removed due to a busy error (#16394)
- Improve hint on pip install --system when externally managed (#16392)
- Running uv lock --check with outdated lockfile will print that --check was passed, instead of --locked (#16322)
- Update uv init template for Maturin (#16449)
- Improve ordering of Python sources in logs (#16463)
- Restore DockerHub release images and annotations (#16441)
Bug fixes
- Check for matching Python implementation during uv python upgrade (#16420)
- Deterministically order --find-links distributions (#16446)
- Don't panic in uv export --frozen when the lockfile is outdated (#16407)
- Fix root of uv tree when --package is used with circular dependencies (#15908)
- Show package list with pip freeze --quiet (#16491)
- Limit uv auth login pyx.dev retries to 60s (#16498)
- Add an empty group with uv add --group ... -r ... (#16490)
Documentation
- Update docs for maturin build backend init template (#16469)
- Update docs to reflect previous changes to signal forwarding semantics (#16430)
- Add instructions for installing via MacPorts (#16039) |
| 0.9.5 | 21 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-21.
Enhancements
- Add required environment marker example to hint (#16244)
- Fix typo in MissingTopLevel warning (#16351)
- Improve 403 Forbidden error message to indicate package may not exist (#16353)
- Add a hint on uv pip install failure if the --system flag is used to select an externally managed interpreter (#16318)
Bug fixes
- Fix backtick escaping for PowerShell (#16307)
Documentation
- Document metadata consistency expectation (#15683)
- Remove outdated aarch64 musl note (#16385) |
| 0.9.4 | 18 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-17.
Enhancements
- Add CUDA 13.0 support (#16321)
- Add auto-detection for Intel GPU on Windows (#16280)
- Implement display of RFC 9457 HTTP error contexts (#16199)
Bug fixes
- Avoid obfuscating pyx tokens in uv auth token output (#16345) |
| 0.9.3 | 15 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-14.
Python
- Add CPython 3.15.0a1
- Add CPython 3.13.9
Enhancements
- Obfuscate secret token values in logs (#16164)
Bug fixes
- Fix workspace with relative pathing (#16296) |
| 0.9.2 | 10 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-10.
Python
- Add CPython 3.9.24.
- Add CPython 3.10.19.
- Add CPython 3.11.14.
- Add CPython 3.12.12.
Enhancements
- Avoid inferring check URLs for pyx in uv publish (#16234)
- Add uv tool list --show-python (#15814)
Documentation
- Add missing "added in" to new environment variables in reference (#16217) |
| 0.9.1 | 9 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-09.
Enhancements
- Log Python choice in uv init (#16182)
- Fix pylock.toml config conflict error messages (#16211)
Configuration
- Add UV_UPLOAD_HTTP_TIMEOUT and respect UV_HTTP_TIMEOUT in uploads (#16040)
- Support UV_WORKING_DIRECTORY for setting --directory (#16125)
Bug fixes
- Allow missing Scripts directory (#16206)
- Fix handling of Python requests with pre-releases in ranges (#16208)
- Preserve comments on version bump (#16141)
- Retry all HTTP/2 errors (#16038)
- Treat deleted Windows registry keys as equivalent to missing ones (#16194)
- Ignore pre-release Python versions when a patch version is requested (#16210)
Documentation
- Document why uv discards upper bounds on requires-python (#15927)
- Document uv version environment variables were added in (#15196) |
| 0.9.0 | 7 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-07.
Breaking changes
This breaking release is primarily motivated by the release of Python 3.14, which contains some breaking changes (we recommend reading the "What's new in Python 3.14" page). uv may use Python 3.14 in cases where it previously used 3.13, e.g., if you have not pinned your Python version and do not have any Python versions installed on your machine. While we think this is uncommon, we prefer to be cautious. We've included some additional small changes that could break workflows.
There are no breaking changes to uv_build. If you have an upper bound in your [build-system] table, you should update it.
- Python 3.14 is now the default stable version
The default Python version has changed from 3.13 to 3.14. This applies to Python version installation when no Python version is requested, e.g., uv python install. By default, uv will use the system Python version if present, so this may not cause changes to general use of uv. For example, if Python 3.13 is installed already, then uv venv will use that version. If no Python versions are installed on a machine and automatic downloads are enabled, uv will now use 3.14 instead of 3.13, e.g., for uv venv or uvx python. This change will not affect users who are using a .python-version file to pin to a specific Python version.
- Allow use of free-threaded variants in Python 3.14+ without explicit opt-in (#16142)
Previously, free-threaded variants of Python were considered experimental and required explicit opt-in (i.e., with 3.14t) for usage. Now uv will allow use of free-threaded Python 3.14+ interpreters without explicit selection. The GIL-enabled build of Python will still be preferred, e.g., when performing an installation with uv python install 3.14. However, e.g., if a free-threaded interpreter comes before a GIL-enabled build on the PATH, it will be used. This change does not apply to free-threaded Python 3.13 interpreters, which will continue to require opt-in.
- Use Python 3.14 stable Docker images (#16150)
Previously, the Python 3.14 images had an -rc suffix, e.g., python:3.14-rc-alpine or
python:3.14-rc-trixie. Now, the -rc suffix has been removed to match the stable
upstream images. The -rc images tags will no longer be
updated. This change should not break existing workflows.
- Upgrade Alpine Docker image to Alpine 3.22
Previously, the uv:alpine Docker image was based on Alpine 3.21. Now, this image is based on Alpine 3.22. The previous image can be recovered with uv:alpine3.21 and will continue to be updated until a future release.
- Upgrade Debian Docker images to Debian 13 "Trixie"
Previously, the uv:debian and uv:debian-slim Docker images were based on Debian 12 "Bookworm". Now, these images are based on Debian 13 "Trixie". The previous images can be recovered with uv:bookworm and uv:bookworm-slim and will continue to be updated until a future release.
- Fix incorrect output path when a trailing / is used in uv build (#15133)
When using uv build in a workspace, the artifacts are intended to be written to a dist directory in the workspace root. A bug caused workspace root determination to fail when the input path included a trailing / causing the dist directory to be placed in the child directory. This bug has been fixed in this release. For example, uv build child/ is used, the output path will now be in <workspace root>/dist/ rather than <workspace root>/child/dist/.
Python
- Add CPython 3.14.0
- Add CPython 3.13.8
Enhancements
- Don't warn when dependency is constraint by other dependency (#16149)
Bug fixes
- Fix uv python upgrade / install output when there is a no-op for one request (#16158)
- Surface pinned-version hint when uv tool upgrade can’t move the tool (#16081)
- Ban pre-release versions in uv python upgrade requests (#16160)
- Fix uv python upgrade replacement of installed binaries on pre-release to stable (#16159)
Documentation
- Update uv pip compile args in layout.md (#16155) |
| 0.8.24 | 7 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-06.
Enhancements
- Emit a message on cache clean and prune when lock is held (#16138)
- Add --force flag for uv cache prune (#16137)
Documentation
- Fix example of bumping beta version without patch bump (#16132) |
| 0.8.23 | 4 ตุลาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-10-03.
Enhancements
- Build s390x on stable Rust compiler version (#16082)
- Add UV_SKIP_WHEEL_FILENAME_CHECK to allow installing invalid wheels (#16046)
Bug fixes
- Avoid rejecting already-installed URL distributions with --no-sources (#16094)
- Confirm that the directory name is a valid Python install key during managed check (#16080)
- Ignore origin when comparing installed tools (#16055)
- Make cache control lookups robust to username (#16088)
- Re-order lock validation checks by severity (#16045)
- Remove tracking of inferred dependency conflicts (#15909)
- Respect --no-color on the CLI (#16044)
- Deduplicate marker-specific dependencies in uv pip tree output (#16078)
Documentation
- Document transparent x86_64 emulation on aarch64 (#16041)
- Document why we ban URLs from index dependencies (#15929)
- Fix rendering of _CONDA_ROOT in reference (#16114)
- Windows arm64 and Linux RISC-V64 are Tier 2 supported (#16027) |
| 0.8.22 | 23 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-09-23.
Python
- Upgrade Pyodide to 0.28.3 (#15999)
Security
- Upgrade astral-tokio-tar to 0.5.5 which hardens tar archive extraction (#16004) |
| 0.8.21 | 23 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่น+Released on 2025-09-23.
Enhancements
- Refresh lockfile when --refresh is provided (#15994)
Preview features
Add support for S3 request signing (#15925) |
| 0.8.20 | 22 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-09-22.
Enhancements
- Add --force flag for uv cache clean (#15992)
- Improve resolution errors with proxied packages (#15200)
Preview features
- Allow upgrading pre-release versions of the same minor Python version (#15959)
Bug fixes
- Hide freethreaded+debug Python downloads in uv python list (#15985)
- Retain the cache lock and temporary caches during uv run and uvx (#15990)
Documentation
- Add package level conflicts to the conflicting dependencies docs (#15963)
- Document pyodide support (#15962)
- Document support for free-threaded and debug Python versions (#15961)
- Expand the contribution docs on issue selection (#15966)
- Tweak title for viewing version in project guide (#15964) |
| 0.8.19 | 19 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-09-19.
Python
- Add CPython 3.14.0rc3
- Upgrade OpenSSL to 3.5.3
See the python-build-standalone release notes for more details.
Bug fixes
- Make uv cache clean parallel process safe (#15888)
- Fix implied platform_machine marker for win_arm64 platform tag (#15921) |
| 0.8.18 | 17 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-09-17.
Enhancements
- Add PyG packages to torch backend (#15911)
- Add handling for unnamed conda environments in base environment detection (#15681)
- Allow selection of debug build interpreters (#11520)
- Improve uv init defaults for native build backend cache keys (#15705)
- Error when pyproject.toml target does not exist for dependency groups (#15831)
- Infer check URL from publish URL when known (#15886)
- Support Gitlab CI/CD as a trusted publisher (#15583)
- Add GraalPy 25.0.0 with support for Python 3.12 (#15900)
- Add --no-clear to uv venv to disable removal prompts (#15795)
- Add conflict detection between --only-group and --extra flags (#15788)
- Allow [project] to be missing from a pyproject.toml (#14113)
- Always treat conda environments named base and root as base environments (#15682)
- Improve log message when direct build for uv_build is skipped (#15898)
- Log when the cache is disabled (#15828)
- Show pyx organization name after authenticating (#15823)
- Use _CONDA_ROOT to detect Conda base environments (#15680)
- Include blake2b hash in uv publish upload form (#15794)
- Fix misleading debug message when removing environments in uv sync (#15881)
Deprecations
- Deprecate tool.uv.dev-dependencies (#15469)
- Revert "feat(ci): build loongarch64 binaries in CI (#15387)" (#15820)
Preview features
- Propagate preview flag to client for native-auth feature (#15872)
- Store native credentials for realms with the https scheme stripped (#15879)
- Use the root index URL when retrieving credentials from the native store (#15873)
Bug fixes
- Fix uv sync --no-sources not switching from editable to registry installations (#15234)
- Avoid display of an empty string when a path is the working directory (#15897)
- Allow cached environment reuse with @latest (#15827)
- Allow escaping spaces in --env-file handling (#15815)
- Avoid ANSI codes in debug! messages (#15843)
- Improve BSD tag construction (#15829)
- Include SHA when listing lockfile changes (#15817)
- Invert the logic for determining if a path is a base conda environment (#15679)
- Load credentials for explicit members when lowering (#15844)
- Re-add triton as a torch backend package (#15910)
- Respect UV_INSECURE_NO_ZIP_VALIDATION=1 in duplicate header errors (#15912)
Documentation
- Add GitHub Actions to PyPI trusted publishing example (#15753)
- Add Coiled integration documentation (#14430)
- Add verbose output to the getting help section (#15915)
- Document NO_PROXY support (#15816)
- Document cache-keys for native build backends (#15811)
- Add documentation for dependency group requires-python (#14282) |
| 0.8.17 | 10 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นReleased on 2025-09-10.
Enhancements
- Improve error message for HTTP validation in auth services (#15768)
- Respect PYX_API_URL when suggesting uv auth login on 401 (#15774)
- Add pyx as a supported PyTorch index URL (#15769)
Bug fixes
- Avoid initiating login flow for invalid API keys (#15773)
- Do not search for a password for requests with a token attached already (#15772)
- Filter pre-release Python versions in uv init --script (#15747) |
| 0.8.16 | 10 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นDue to a bug in the release process for the new loongarch64 support (see #15762), this release was partially published and manually finished. Consequently, the uv_build artifacts were uploaded to PyPI with a PAT instead of via OIDC and the GitHub Release was published by a maintainer instead of GitHub Actions. The artifacts from GitHub Actions were used without alteration. The uv artifacts were not affected. There should be no consequences from this; we just want to be transparent about the provenance of the artifacts.
Enhancements
- Allow --editable to override editable = false annotations (#15712)
- Allow editable = false for workspace sources (#15708)
- Show a dedicated error for virtual environments in source trees on build (#15748)
- Support Android platform tags (#15646)
- Support iOS platform tags (#15640)
- Support scripts with inline metadata in --with-requirements and --requirements (#12763)
Preview features
- Support --no-project in uv format (#15572)
- Allow uv format in unmanaged projects (#15553)
Bug fixes
- Avoid erroring when match-runtime target is optional (#15671)
- Ban empty usernames and passwords in uv auth (#15743)
- Error early for parent path in build backend (#15733)
- Retry on IO errors during HTTP/2 streaming (#15675)
- Support recursive requirements and constraints inclusion (#15657)
- Use token store credentials for uv publish (#15759)
- Fix virtual environment activation script compatibility with latest nushell (#15272)
- Skip Python interpreters that cannot be queried with permission errors (#15685)
Documentation
- Clarify that uv auth commands take a URL (#15664)
- Improve the CLI help for options that accept requirements files (#15706)
- Adds example for caching for managed Python downloads in Docker builds (#15689) |
| 0.8.15 | 3 กันยายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Upgrade SQLite 3.50.4 in CPython builds for CVE-2025-6965 (see also python/cpython#137134)
Enhancements
- Add uv auth commands for credential management (#15570)
- Add pyx support to uv auth commands (#15636)
- Add uv tree --show-sizes to show package sizes (#15531)
- Add --python-platform riscv64-unknown-linux (#15630)
- Add --python-platform to uv run and uv tool (#15515)
- Add uv publish --dry-run (#15638)
- Add zstandard support for wheels (#15645)
- Allow registries to pre-provide core metadata (#15644)
- Retry streaming Python and binary download errors (#15567)
Bug fixes
- Fix settings rendering for extra-build-dependencies (#15622)
- Skip non-existent directories in bytecode compilation (#15608)
Error messages
- Add error trace to invalid package format (#15626) |
| 0.8.14 | 28 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add managed CPython distributions for aarch64 musl
Enhancements
- Add --python-platform to uv pip check (#15486)
- Add an environment variable for UV_ISOLATED (#15428)
- Add logging to the uv build backend (#15533)
- Allow more trailing null bytes in zip files (#15452)
- Allow pinning managed Python versions to specific build versions (#15314)
- Cache PyTorch wheels by default (#15481)
- Reject already-installed wheels that don't match the target platform (#15484)
- Add --no-install-local option to uv sync, uv add and uv export (#15328)
- Include cycle error message in uv pip CLI (#15453)
Preview features
- Fix format of {version} on uv format failure (#15527)
- Lock during installs in uv format to prevent races (#15551)
- Respect --project in uv format (#15438)
- Run uv format in the project root (#15440)
Configuration
- Add file-to-CLI overrides for build isolation configuration (#15437)
- Add file-to-CLI overrides for reinstall configuration (#15426)
Performance
- Cache WHEEL and METADATA reads in installed distributions (#15489)
Bug fixes
- Avoid erroring when creating venv in current working directory (#15537)
- Avoid introducing unnecessary system dependency on CUDA (#15449)
- Clear discovered site packages when creating virtual environment (#15522)
- Read index credentials from the environment during uv publish checks (#15545)
- Refuse to remove non-virtual environments in uv venv (#15538)
- Stop setting CLICOLOR_FORCE=1 when calling build backends (#15472)
- Support file or directory removal for Windows symlinks (#15543)
Documentation
- Fix GitHub guide highlight lines (#15443)
- Move Resolver to new Internals section in the Reference (#15465)
- Split the "Authentication" page into sections (#15575)
- Update uninstall docs to mention uvw.exe needs to be removed (#15536) |
| 0.8.13 | 21 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --no-install-* arguments to uv add (#15375)
- Initialize Git prior to reading author in uv init (#15377)
- Add CUDA 129 to available torch backends (#15416)
- Update Pyodide to 0.28.2 (#15385)
Preview features
- Add an experimental uv format command (#15017)
- Allow version specifiers in extra-build-dependencies if match-runtime is explicitly false (#15420)
Bug fixes
- Add triton to torch-backend manifest (#15405)
- Avoid panicking when resolver returns stale distributions (#15389)
- Fix uv_build wheel hashes (#15400)
- Treat --upgrade-package on the command-line as overriding upgrade = false in configuration (#15395)
- Restore DockerHub publishing (#15381) |
| 0.8.12 | 19 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add 3.13.7
- Improve performance of zstd in Python 3.14
See the python-build-standalone release notes for details.
Enhancements
- Add an aarch64-pc-windows-msvc target for python-platform (#15347)
- Add fallback parent process detection to uv tool update-shell (#15356)
- Install non-build-isolation packages in a second phase (#15306)
- Add hint when virtual environments are included in source distributions (#15202)
- Add Docker images derived from buildpack-deps:trixie, debian:trixie-slim, alpine:3.22 (#15351)
Bug fixes
- Reject already-installed wheels built with outdated settings (#15289)
- Skip interpreters that are not found on query (#15315)
- Handle dotted package names in script path resolution (#15300)
- Reject match-runtime = true for dynamic packages (#15292)
Documentation
- Document improvements to build-isolation setups (#15326)
- Fix reference documentation recommendation to use uv cache clean instead of clear (#15313) |
| 0.8.11 | 14 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add Python 3.14.0rc2
- Update Pyodide to 0.28.1
Enhancements
- Add Debian 13 trixie to published Docker images (#15269)
- Add extra-build-dependencies hint for any missing module on build failure (#15252)
- Make 'v' prefix cyan in overlap warnings (#15259)
Bug fixes
- Fix missing uv version in extended Docker image tags (#15263)
- Persist cache info when re-installing cached wheels (#15274)
Rust API
- Allow passing custom reqwest clients to RegistryClient (#15281) |
| 0.8.10 | 13 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add support for installing Pyodide versions (#14518)
Enhancements
- Allow Python requests with missing segments, e.g., just aarch64 (#14399)
Preview
- Move warnings for conflicting modules into preview (#15253) |
| 0.8.9 | 12 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --reinstall flag to uv python upgrade (#15194)
Bug fixes
- Include build settings in cache key for registry source distribution lookups (#15225)
- Avoid creating bin links on uv python upgrade if they don't already exist (#15192)
- Respect system proxies on macOS and Windows (#15221)
Documentation
- Add the 3.14 classifier (#15187) |
| 0.8.8 | 9 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Fix find_uv_bin compatibility with Python ❤️.10 (#15177) |
| 0.8.7 | 8 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- On Mac/Linux, libtcl, libtk, and _tkinter are built as separate shared objects, which fixes matplotlib's tkagg backend (the default on Linux), Pillow's PIL.ImageTk library, and other extension modules that need to use libtcl/libtk directly.
- Tix is no longer provided on Linux. This is a deprecated Tk extension that appears to have been previously broken.
See the python-build-standalone release notes for details.
Enhancements
- Do not update uv.lock when using --isolated (#15154)
- Add support for --prefix and --with installations in find_uv_bin (#14184)
- Add support for discovering base prefix installations in find_uv_bin (#14181)
- Improve error messages in find_uv_bin (#14182)
- Warn when two packages write to the same module (#13437)
Preview features
- Add support for package-level conflicts in workspaces (#14906)
Configuration
- Add UV_DEV and UV_NO_DEV environment variables (for --dev and --no-dev) (#15010)
Bug fixes
- Fix regression where --require-hashes applied to build dependencies in uv pip install (#15153)
- Ignore GraalPy devtags (#15013)
- Include all site packages directories in ephemeral environment overlays (#15121)
- Search in the user scheme scripts directory last in find_uv_bin (#14191)
Documentation
- Add missing periods (.) to list elements in Features docs page (#15138) |
| 0.8.6 | 7 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นThis release contains hardening measures to address differentials in behavior between uv and Python's built-in ZIP parser (CVE-2025-54368).
Prior to this release, attackers could construct ZIP files that would be extracted differently by pip, uv, and other tools. As a result, ZIPs could be constructed that would be considered harmless by (e.g.) scanners, but contain a malicious payload when extracted by uv. As of v0.8.6, uv now applies additional checks to reject such ZIPs.
Thanks to a triage effort with the Python Security Response Team and PyPI maintainers, we were able to determine that these differentials were not exploited via PyPI during the time they were present. The PyPI team has also implemented similar checks and now guards against these parsing differentials on upload.
Although the practical risk of exploitation is low, we take the hypothetical risk of parser differentials very seriously. Out of an abundance of caution, we have assigned this advisory a CVE identifier and have given it a "moderate" severity suggestion.
These changes have been validated against the top 15,000 PyPI packages; however, it's plausible that a non-malicious ZIP could be falsely rejected with this additional hardening. As an escape hatch, users who do encounter breaking changes can enable UV_INSECURE_NO_ZIP_VALIDATION to restore the previous behavior. If you encounter such a rejection, please file an issue in uv and to the upstream package.
Security
- Harden ZIP streaming to reject repeated entries and other malformed ZIP files (#15136)
Python
- Add CPython 3.13.6
Configuration
- Add support for per-project build-time environment variables (#15095)
Bug fixes
- Avoid invalid simplification with conflict markers (#15041)
- Respect UV_HTTP_RETRIES in uv publish (#15106)
- Support UV_NO_EDITABLE where --no-editable is supported (#15107)
- Upgrade cargo-dist to add UV_INSTALLER_URL to PowerShell installer (#15114)
- Upgrade h2 again to avoid too_many_internal_resets errors (#15111)
- Consider pythonw when copying entry points in uv run (#15134)
Documentation
- Ensure symlink warning is shown (#15126) |
| 0.8.5 | 5 สิงหาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Enable uv run with a GitHub Gist (#15058)
- Improve HTTP response caching log messages (#15067)
- Show wheel tag hints in install plan (#15066)
- Support installing additional executables in uv tool install (#14014)
Preview features
- Enable extra build dependencies to 'match runtime' versions (#15036)
- Remove duplicate extra-build-dependencies warnings for uv pip (#15088)
- Use "option" instead of "setting" in pylock warning (#15089)
- Respect extra build requires when reading from wheel cache (#15030)
- Preserve lowered extra build dependencies (#15038)
Bug fixes
- Add Python versions to markers implied from wheels (#14913)
- Ensure consistent indentation when adding dependencies (#14991)
- Fix handling of python-preference = system when managed interpreters are on the PATH (#15059)
- Fix symlink preservation in virtual environment creation (#14933)
- Gracefully handle entrypoint permission errors (#15026)
- Include wheel hashes from local Simple indexes (#14993)
- Prefer system Python installations over managed ones when --system is used (#15061)
- Remove retry wrapper when matching on error kind (#14996)
- Revert h2 upgrade (#15079)
Documentation
- Improve visibility of copy and line separator in dark mode (#14987) |
| 0.8.4 | 30 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Improve styling of warning cause chains (#14934)
- Extend wheel filtering to Android tags (#14977)
- Perform wheel lockfile filtering based on platform and OS intersection (#14976)
- Clarify messaging when a new resolution needs to be performed (#14938)
Preview features
- Add support for extending package's build dependencies with extra-build-dependencies (#14735)
- Split preview mode into separate feature flags (#14823)
Configuration
- Add support for package specific exclude-newer dates via exclude-newer-package (#14489)
Bug fixes
- Avoid invalidating lockfile when path or workspace dependencies define explicit indexes (#14876)
- Copy entrypoints that have a shebang that differs in python vs python3 (#14970)
- Fix incorrect file permissions in wheel packages (#14930)
- Update validation for environments and required-environments in uv.toml (#14905)
Documentation
- Show uv_build in projects documentation (#14968)
- Add UV_ prefix to installer environment variables (#14964)
- Un-hide uv from --build-backend options (#14939)
- Update documentation for preview flags (#14902) |
| 0.8.3 | 24 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add CPython 3.14.0rc1
See the python-build-standalone release notes for more details.
Enhancements
- Allow non-standard entrypoint names in uv_build (#14867)
- Publish riscv64 wheels to PyPI (#14852)
Bug fixes
- Avoid writing redacted credentials to tool receipt (#14855)
- Respect --with versions over base environment versions (#14863)
- Respect credentials from all defined indexes (#14858)
- Fix missed stabilization of removal of registry entry during Python uninstall (#14859)
- Improve concurrency safety of Python downloads into cache (#14846)
Documentation
- Fix typos in uv_build reference documentation (#14853)
- Move the "Cargo" install method further down in docs (#14842) |
| 0.8.2 | 22 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add derivation chains for dependency errors (#14824)
Configuration
- Add UV_INIT_BUILD_BACKEND (#14821)
Bug fixes
- Avoid reading files in the environment bin that are not entrypoints (#14830)
- Avoid removing empty directories when constructing virtual environments (#14822)
- Preserve index URL priority order when writing to pyproject.toml (#14831)
Rust API
- Expose tls_built_in_root_certs for client (#14816)
Documentation
- Archive the 0.7.x changelog (#14819) |
| 0.8.1 | 22 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add support for HF_TOKEN (#14797)
- Allow --config-settings-package to apply configuration settings at the package level (#14573)
- Create (e.g.) python3.13t executables in uv venv (#14764)
- Disallow writing symlinks outside the source distribution target directory (#12259)
- Elide traceback when python -m uv in interrupted with Ctrl-C on Windows (#14715)
- Match --bounds formatting for uv_build bounds in uv init (#14731)
- Support extras and dependency_groups markers in PEP 508 grammar (#14753)
- Support extras and dependency_groups markers on uv pip install and uv pip sync (#14755)
- Add hint to use uv self version when uv version cannot find a project (#14738)
- Improve error reporting when removing Python versions from the Windows registry (#14722)
- Make warnings about masked [tool.uv] fields more precise (#14325)
Preview features
- Emit JSON output in uv sync with --quiet (#14810)
Bug fixes
- Allow removal of virtual environments with missing interpreters (#14812)
- Apply Cache-Control overrides to response, not request headers (#14736)
- Copy entry points into ephemeral environments to ensure layers are respected (#14790)
- Workaround Jupyter Lab application directory discovery in ephemeral environments (#14790)
- Enforce requires-python in pylock.toml (#14787)
- Fix kebab casing of README variants in build backend (#14762)
- Improve concurrency resilience of removing Python versions from the Windows registry (#14717)
- Retry HTTP requests on invalid data errors (#14703)
- Update virtual environment removal to delete pyvenv.cfg last (#14808)
- Error on unknown fields in dependency-metadata (#14801)
Documentation
- Recommend installing setup-uv after setup-python in Github Actions integration guide (#14741)
- Clarify which portions of requires-python behavior are consistent with pip (#14752) |
| 0.8.0 | 17 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP |
| 0.7.22 | 17 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Upgrade GraalPy to 24.2.2
See the GraalPy release notes for more details.
Configuration
- Add UV_COMPILE_BYTECODE_TIMEOUT environment variable (#14369)
- Allow users to override index cache-control headers (#14620)
- Add UV_LIBC to override libc selection in multi-libc environment (#14646)
Bug fixes
- Fix --all-arches when paired with --only-downloads (#14629)
- Skip Windows Python interpreters that return a broken MSIX package code (#14636)
- Warn on invalid uv.toml when provided via direct path (#14653)
- Improve async signal safety in Windows exception handler (#14619)
Documentation
- Mention the revision in the lockfile versioning doc (#14634)
- Move "Conflicting dependencies" to the "Resolution" page (#14633)
- Rename "Dependency specifiers" section to exclude PEP 508 reference (#14631)
- Suggest uv cache clean prior to --reinstall (#14659)
Preview features
- Make preview Python registration on Windows non-fatal (#14614)
- Update preview installation of Python executables to be non-fatal (#14612)
- Add uv python update-shell (#14627) |
| 0.7.21 | 14 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Restore the SQLite fts4, fts5, rtree, and geopoly extensions on macOS and Linux
See the python-build-standalone release notes for more details.
Enhancements
- Add --python-platform to uv sync (#14320)
- Support pre-releases in uv version --bump (#13578)
- Add -w shorthand for --with (#14530)
- Add an exception handler on Windows to display information on crash (#14582)
- Add hint when Python downloads are disabled (#14522)
- Add UV_HTTP_RETRIES to customize retry counts (#14544)
Preview features
- Add uv sync --output-format json (#13689)
Bug fixes
- Do not re-resolve with a new Python version in uv tool if it is incompatible with --python (#14606)
- Fix handling of globs in cache-key: follow symlinks (#13438) and .. and improve performance (#13469)
Documentation
- Document how to nest dependency groups with include-group (#14539)
- Fix repeated word in Pyodide doc (#14554)
- Update CONTRIBUTING.md with instructions to format markdown files (#14246)
- Fix version number for setup-python (#14533) |
| 0.7.20 | 9 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add Python 3.14.0b4
- Add zstd support to Python 3.14 on Unix (it already was available on Windows)
- Add PyPy 7.3.20 (for Python 3.11.13)
See the PyPy and python-build-standalone release notes for more details.
Enhancements
- Add --workspace flag to uv add (#14496)
- Add auto-detection for Intel GPUs (#14386)
- Drop trailing arguments when writing shebangs (#14519)
- Add debug message when skipping Python downloads (#14509)
- Add support for declaring multiple modules in namespace packages (#14460)
Bug fixes
- Revert normalization of trailing slashes on index URLs (#14511)
- Fix forced resolution with all extras in uv version (#14434)
- Fix handling of pre-releases in preferences (#14498)
- Remove transparent variants in uv-extract to enable retries (#14450)
Rust API
- Add method to get packages involved in a NoSolutionError (#14457)
- Make ErrorTree for NoSolutionError public (#14444)
Documentation
- Finish incomplete sentence in pip migration guide (#14432)
- Remove cache-dependency-glob examples for setup-uv (#14493)
- Remove uv pip sync suggestion with pyproject.toml (#14510)
- Update documentation for GitHub to use setup-uv@v6 (#14490) |
| 0.7.19 | 2 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นThe uv build backend is now stable, and considered ready for production use.
The uv build backend is a great choice for pure Python projects. It has reasonable defaults, with the goal of requiring zero configuration for most users, but provides flexible configuration to accommodate most Python project structures. It integrates tightly with uv, to improve messaging and user experience. It validates project metadata and structures, preventing common mistakes. And, finally, it's very fast — uv sync on a new project (from uv init) is 10-30x faster than with other build backends.
To use uv as a build backend in an existing project, add uv_build to the [build-system] section in your pyproject.toml:
[build-system]
requires = ["uv_build>=0.7.19,<0.8.0"]
build-backend = "uv_build"
In a future release, it will replace hatchling as the default in uv init. As before, uv will remain compatible with all standards-compliant build backends.
Python
- Add PGO distributions of Python for aarch64 Linux, which are more optimized for better performance
See the python-build-standalone release for more details.
Enhancements
- Ignore Python patch version for --universal pip compile (#14405)
- Update the tilde version specifier warning to include more context (#14335)
- Clarify behavior and hint on tool install when no executables are available (#14423)
Bug fixes
- Make project and interpreter lock acquisition non-fatal (#14404)
- Includes sys.prefix in cached environment keys to avoid --with collisions across projects (#14403)
Documentation
- Add a migration guide from pip to uv projects (#12382) |
| 0.7.18 | 1 กรกฎาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Added arm64 Windows Python 3.11, 3.12, 3.13, and 3.14
These are not downloaded by default, since x86-64 Python has broader ecosystem support on Windows.
However, they can be requested with cpython-<version>-windows-aarch64.
Enhancements
- Keep track of retries in ManagedPythonDownload::fetch_with_retry (#14378)
- Reuse build (virtual) environments across resolution and installation (#14338)
- Improve trace message for cached Python interpreter query (#14328)
- Use parsed URLs for conflicting URL error message (#14380)
Preview features
- Ignore invalid build backend settings when not building (#14372)
Bug fixes
- Fix equals-star and tilde-equals with python_version and python_full_version (#14271)
- Include the canonical path in the interpreter query cache key (#14331)
- Only drop build directories on program exit (#14304)
- Error instead of panic on conflict between global and subcommand flags (#14368)
- Consistently normalize trailing slashes on URLs with no path segments (#14349)
Documentation
- Add instructions for publishing to JFrog's Artifactory (#14253)
- Edits to the build backend documentation (#14376) |
| 0.7.17 | 29 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Apply build constraints when resolving --with dependencies (#14340)
- Drop trailing slashes when converting index URL from URL (#14346)
- Ignore UV_PYTHON_CACHE_DIR when empty (#14336)
- Fix error message ordering for pyvenv.cfg version conflict (#14329) |
| 0.7.16 | 27 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add Python 3.14.0b3
See the python-build-standalone release notes for more details.
Enhancements
- Include path or URL when failing to convert in lockfile (#14292)
- Warn when ~= is used as a Python version specifier without a patch version (#14008)
Preview features
- Ensure preview default Python installs are upgradeable (#14261)
Performance
- Share workspace cache between lock and sync operations (#14321)
Bug fixes
- Allow local indexes to reference remote files (#14294)
- Avoid rendering desugared prefix matches in error messages (#14195)
- Avoid using path URL for workspace Git dependencies in requirements.txt (#14288)
- Normalize index URLs to remove trailing slash (#14245)
- Respect URL-encoded credentials in redirect location (#14315)
- Lock the source tree when running setuptools, to protect concurrent builds (#14174)
Documentation
- Note that GCP Artifact Registry download URLs must have /simple component (#14251) |
| 0.7.15 | 25 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Consistently use Ordering::Relaxed for standalone atomic use cases (#14190)
- Warn on ambiguous relative paths for --index (#14152)
- Skip GitHub fast path when rate-limited (#13033)
- Preserve newlines in schema.json descriptions (#13693)
Bug fixes
- Add check for using minor version link when creating a venv on Windows (#14252)
- Strip query parameters when parsing source URL (#14224)
Documentation
- Add a link to PyPI FAQ to clarify what per-project token is (#14242)
Preview features
- Allow symlinks in the build backend (#14212) |
| 0.7.14 | 23 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add XPU to --torch-backend (#14172)
- Add ROCm backends to --torch-backend (#14120)
- Remove preview label from --torch-backend (#14119)
- Add [tool.uv.dependency-groups].mygroup.requires-python (#13735)
- Add auto-detection for AMD GPUs (#14176)
- Show retries for HTTP status code errors (#13897)
- Support transparent Python patch version upgrades (#13954)
- Warn on empty index directory (#13940)
- Publish to DockerHub (#14088)
Performance
- Make cold resolves about 10% faster (#14035)
Bug fixes
- Don't use walrus operator in interpreter query script (#14108)
- Fix handling of changes to requires-python (#14076)
- Fix implied platform_machine marker for win_amd64 platform tag (#14041)
- Only update existing symlink directories on preview uninstall (#14179)
- Serialize Python requests for tools as canonicalized strings (#14109)
- Support netrc and same-origin credential propagation on index redirects (#14126)
- Support reading dependency-groups from pyproject.tomls with no [project] (#13742)
- Handle an existing shebang in uv init --script (#14141)
- Prevent concurrent updates of the environment in uv run (#14153)
- Filter managed Python distributions by platform before querying when included in request (#13936)
Documentation
- Replace cuda124 with cuda128 (#14168)
- Document the way member sources shadow workspace sources (#14136)
- Sync documented PyTorch integration index for CUDA and ROCm versions from PyTorch website (#14100) |
| 0.7.13 | 12 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add Python 3.14.0b2
- Add Python 3.13.5
- Fix stability of uuid.getnode on 3.13
See the python-build-standalone release notes for more details.
Enhancements
- Download versions in uv python pin if not found (#13946)
- Use TTY detection to determine if SIGINT forwarding is enabled (#13925)
- Avoid fetching an exact, cached Git commit, even if it isn't locked (#13748)
- Add zstd and deflate to Accept-Encoding (#13982)
- Build binaries for riscv64 (#12688)
Bug fixes
- Check if relative URL is valid directory before treating as index (#13917)
- Ignore Python discovery errors during uv python pin (#13944)
- Do not allow uv add --group ... --script (#13997)
Preview changes
- Build backend: Support namespace packages (#13833)
Documentation
- Add 3.14 to the supported platform reference (#13990)
- Add an llms.txt to uv (#13929)
- Add supported macOS version to the platform reference (#13993)
- Update platform support reference to include Python implementation list (#13991)
- Update pytorch.md (#13899)
- Update the CLI help and reference to include references to the Python bin directory (#13978) |
| 0.7.12 | 6 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add uv python pin --rm to remove .python-version pins (#13860)
- Don't hint at versions removed by excluded-newer (#13884)
- Add hint to use tool.uv.environments on resolution error (#13455)
- Add hint to use tool.uv.required-environments on resolution error (#13575)
- Improve python pin error messages (#13862)
Bug fixes
- Lock environments during uv sync, uv add and uv remove to prevent race conditions (#13869)
- Add --no-editable to uv export for pylock.toml (#13852)
Documentation
- List .gitignore in project init files (#13855)
- Move the pip interface documentation into the concepts section (#13841)
- Remove the configuration section in favor of concepts / reference (#13842)
- Update Git and GitHub Actions docs to mention gh auth login (#13850)
Preview
- Fix directory glob traversal fallback preventing exclusion of all files (#13882) |
| 0.7.11 | 4 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add Python 3.14.0b1
- Add Python 3.13.4
- Add Python 3.12.11
- Add Python 3.11.13
- Add Python 3.10.18
- Add Python 3.9.23
Enhancements
- Add Pyodide support (#12731)
- Better error message for version specifier with missing operator (#13803)
Bug fixes
- Downgrade reqwest and hyper-util to resolve connection reset errors over IPv6 (#13835)
- Prefer uv's binary's version when checking if it's up to date (#13840)
Documentation
- Use "terminal driver" instead of "shell" in SIGINT docs (#13787) |
| 0.7.10 | 3 มิถุนายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --show-extras to uv tool list (#13783)
- Add dynamically generated sysconfig replacement mappings (#13441)
- Add data locations to install wheel logs (#13797)
Bug fixes
- Avoid redaction of placeholder git username when using SSH authentication (#13799)
- Propagate credentials to files on devpi indexes ending in /+simple (#13743)
- Restore retention of credentials for direct URLs in uv export (#13809) |
| 0.7.9 | 30 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
The changes reverted in 0.7.8 have been restored.
See the
python-build-standalone release notes
for more details.
Enhancements
- Improve obfuscation of credentials in URLs (#13560)
- Allow running non-default Python implementations via uvx (#13583)
- Add uvw as alias for uv without console window on Windows (#11786)
- Allow discovery of x86-64 managed Python builds on macOS (#13722)
- Differentiate between implicit vs explicit architecture requests (#13723)
- Implement ordering for Python architectures to prefer native installations (#13709)
- Only show the first match per platform (and architecture) by default in uv python list (#13721)
- Write the path of the parent environment to an extends-environment key in the pyvenv.cfg file of an ephemeral environment (#13598)
- Improve the error message when libc cannot be found, e.g., when using the distroless containers (#13549)
Performance
- Avoid rendering info log level (#13642)
- Improve performance of uv-python crate's manylinux submodule (#11131)
- Optimize Version display (#13643)
- Reduce number of reference-checks for uv cache clean (#13669)
Bug fixes
- Avoid reinstalling dependency group members with --all-packages (#13678)
- Don't fail direct URL hash checking with dependency metadata (#13736)
- Exit early on self update if global --offline is set (#13663)
- Fix cases where the uv lock is incorrectly marked as out of date (#13635)
- Include pre-release versions in uv python install --reinstall (#13645)
- Set LC_ALL=C for git when checking git worktree (#13637)
- Avoid rejecting Windows paths for remote Python download JSON targets (#13625)
Preview
- Add uv add --bounds to configure version constraints (#12946)
Documentation
- Add documentation about Python versions to Tools concept page (#7673)
- Add example of enabling Dependabot (#13692)
- Fix exclude-newer date format for persistent configuration files (#13706)
- Quote versions variables in GitLab documentation (#13679)
- Update Dependabot support status (#13690)
- Explicitly specify to add a new repo entry to the repos list item in the .pre-commit-config.yaml (#10243)
- Add integration with marimo guide (#13691)
- Add pronunciation to README (#5336) |
| 0.7.8 | 24 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
We are reverting most of our Python changes from uv 0.7.6 and uv 0.7.7 due to
a miscompilation that makes the Python interpreter behave incorrectly, resulting
in spurious type-errors involving str. This issue seems to be isolated to
x86_64 Linux, and affected at least Python 3.12, 3.13, and 3.14.
The following changes that were introduced in those versions of uv are temporarily
being reverted while we test and deploy a proper fix for the miscompilation:
- Add Python 3.14 on musl
- free-threaded Python on musl
- Add Python 3.14.0a7
- Statically link libpython into the interpreter on Linux for a significant performance boost
See the issue for details.
Documentation
- Remove misleading line in pin documentation (#13611) |
| 0.7.7 | 22 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Work around third-party packages that (incorrectly) assume the interpreter is dynamically linking libpython
- Allow the experimental JIT to be enabled at runtime on Python 3.13 and 3.14 on macOS on aarch64 aka Apple Silicon
See the python-build-standalone release notes for more details.
Bug fixes
- Make uv version lock and sync (#13317)
- Fix references to ldd in diagnostics to correctly refer to ld.so (#13552)
Documentation
- Clarify adding SSH Git dependencies (#13534) |
| 0.7.6 | 20 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add Python 3.14 on musl
- Add free-threaded Python on musl
- Add Python 3.14.0a7
- Statically link libpython into the interpreter on Linux for a significant performance boost
See the
python-build-standalone release notes
for more details.
Enhancements
- Improve compatibility of VIRTUAL_ENV_PROMPT value (#13501)
- Bump MSRV to 1.85 and Edition 2024 (#13516)
Bug fixes
- Respect default extras in uv remove (#13380)
Documentation
- Fix PowerShell code blocks (#13511) |
| 0.7.5 | 17 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Support case-sensitive module discovery in the build backend (#13468)
- Bump Simple cache bucket to v16 (#13498)
- Don't error when the script is too short for the buffer (#13488)
- Add missing word in "script not supported" error (#13483) |
| 0.7.4 | 15 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add more context to external errors (#13351)
- Align indentation of long arguments (#13394)
- Preserve order of dependencies which are sorted naively (#13334)
- Align progress bars by largest name length (#13266)
- Reinstall local packages in uv add (#13462)
- Rename --raw-sources to --raw (#13348)
- Show 'Downgraded' when self update is used to install an older version (#13340)
- Suggest uv self update if required uv version is newer (#13305)
- Add 3.14 beta images to uv Docker images (#13390)
- Add comma after "i.e." in Conda environment error (#13423)
- Be more precise in unpinned packages warning (#13426)
- Fix detection of sorted dependencies when include-group is used (#13354)
- Fix display of HTTP responses in trace logs for retry of errors (#13339)
- Log skip reasons during Python installation key interpreter match checks (#13472)
- Redact credentials when displaying URLs (#13333)
Bug fixes
- Avoid erroring on pylock.toml dependency entries (#13384)
- Avoid panics for cannot-be-a-base URLs (#13406)
- Ensure cached realm credentials are applied if no password is found for index URL (#13463)
- Fix .tgz parsing to respect true extension (#13382)
- Fix double self-dependency (#13366)
- Reject pylock.toml in uv add -r (#13421)
- Retain dot-separated wheel tags during cache prune (#13379)
- Retain trailing comments after PEP 723 metadata block (#13460)
Documentation
- Use "export" instead of "install" in uv export arguments (#13430)
- Remove extra newline (#13461)
Preview features
- Build backend: Normalize glob paths (#13465) |
| 0.7.3 | 7 พฤษภาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --dry-run support to uv self update (#9829)
- Add --show-with to uv tool list to list packages included by --with (#13264)
- De-duplicate fetched index URLs (#13205)
- Support more zip compression formats: bzip2, lzma, xz, zstd (#13285)
- Add support for downloading GraalPy (#13172)
- Improve error message when a virtual environment Python symlink is broken (#12168)
- Use fs_err for paths in symlinking errors (#13303)
- Minify and embed managed Python JSON at compile time (#12967)
Preview features
- Build backend: Make preview default and add configuration docs (#12804)
- Build backend: Allow escaping in globs (#13313)
- Build backend: Make builds reproducible across operating systems (#13171)
Configuration
- Add python-downloads-json-url option for uv.toml to configure custom Python installations via JSON URL (#12974)
Bug fixes
- Check nested IO errors for retries (#13260)
- Accept musllinux_1_0 as a valid platform tag (#13289)
- Fix discovery of pre-release managed Python versions in range requests (#13330)
- Respect locked script preferences in uv run --with (#13283)
- Retry streaming downloads on broken pipe errors (#13281)
- Treat already-installed base environment packages as preferences in uv run --with (#13284)
- Avoid enumerating sources in errors for path Python requests (#13335)
- Avoid re-creating virtual environment with --no-sync (#13287)
Documentation
- Remove outdated description of index strategy (#13326)
- Update "Viewing the version" docs (#13241) |
| 0.7.2 | 30 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Improve trace log for retryable errors (#13228)
- Use "error" instead of "warning" for self-update message (#13229)
- Error when uv version is used with project-specific flags but no project is found (#13203)
Bug fixes
- Fix incorrect virtual environment invalidation for pre-release Python versions (#13234)
- Fix patching of clang in managed Python sysconfig (#13237)
- Respect --project in uv version (#13230) |
| 0.7.1 | 30 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancement
- Add support for BLAKE2b-256 (#13204)
Bugfix
- Revert fix handling of authentication when encountering redirects (#13215) |
| 0.7.0 | 29 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นThis release contains various changes that improve correctness and user experience, but could break some workflows; many changes have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes.
Breaking changes
- Update uv version to display and update project versions (#12349)
Previously, uv version displayed uv's version. Now, uv version will display or update the project's version. This interface was heavily requested and, after much consideration, we decided that transitioning the top-level command was the best option.
Here's a brief example:
$ uv init example
Initialized project `example` at `./example`
$ cd example
$ uv version
example 0.1.0
$ uv version --bump major
example 0.1.0 => 1.0.0
$ uv version --short
1.0.0
If used outside of a project, uv will fallback to showing its own version still:
$ uv version
warning: failed to read project: No `pyproject.toml` found in current directory or any parent directory
running `uv self version` for compatibility with old `uv version` command.
this fallback will be removed soon, pass `--preview` to make this an error.
uv 0.7.0 (4433f41c9 2025-04-29)
As described in the warning, --preview can be used to error instead:
$ uv version --preview
error: No `pyproject.toml` found in current directory or any parent directory
The previous functionality of uv version was moved to uv self version.
- Avoid fallback to subsequent indexes on authentication failure (#12805)
When using the first-index strategy (the default), uv will stop searching indexes for a package once it is found on a single index. Previously, uv considered a package as "missing" from an index during authentication failures, such as an HTTP 401 or HTTP 403 (normally, missing packages are represented by an HTTP 404). This behavior was motivated by unusual responses from some package indexes, but reduces the safety of uv's index strategy when authentication fails. Now, uv will consider an authentication failure as a stop-point when searching for a package across indexes. The index.ignore-error-codes option can be used to recover the existing behavior, e.g.:
[[tool.uv.index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cpu"
ignore-error-codes = [401, 403]
Since PyTorch's indexes always return a HTTP 403 for missing packages, uv special-cases indexes on the pytorch.org domain to ignore that error code by default.
- Require the command in uvx <name> to be available in the Python environment (#11603)
Previously, uvx would attempt to execute a command even if it was not provided by a Python package. For example, if we presume foo is an empty Python package which provides no command, uvx foo would invoke the foo command on the PATH (if present). Now, uv will error early if the foo executable is not provided by the requested Python package. This check is not enforced when --from is used, so patterns like uvx --from foo bash -c "..." are still valid. uv also still allows uvx foo where the foo executable is provided by a dependency of foo instead of foo itself, as this is fairly common for packages which depend on a dedicated package for their command-line interface.
- Use index URL instead of package URL for keyring credential lookups (#12651)
When determining credentials for querying a package URL, uv previously sent the full URL to the keyring command. However, some keyring plugins expect to receive the index URL (which is usually a parent of the package URL). Now, uv requests credentials for the index URL instead. This behavior matches pip.
- Remove --version from subcommands (#13108)
Previously, uv allowed the --version flag on arbitrary subcommands, e.g., uv run --version. However, the --version flag is useful for other operations since uv is a package manager. Consequently, we've removed the --version flag from subcommands — it is only available as uv --version.
- Omit Python 3.7 downloads from managed versions (#13022)
Python 3.7 is EOL and not formall |
| 0.6.17 | 25 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPreview features
- Add PyTorch v2.7.0 to GPU backend (#13072)
Bug fixes
- Avoid panic for invalid Python versions (#13077)
- Block scripts from overwriting python (#13051)
- Check distribution names to handle invalid redirects (#12917)
- Check for mismatched package and distribution names on resolver thread (#13088)
- Fix panic with invalid last character in PEP 508 name (#13105)
- Reject requires-python even if not listed on the index page (#13086) |
| 0.6.16 | 22 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Revert "Properly handle authentication for 302 redirect URLs" (#13041) |
| 0.6.15 | 22 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นThis release includes preliminary support for the pylock.toml file format, as standardized in PEP 751. pylock.toml is an alternative resolution output format intended to replace requirements.txt (e.g., in the context of uv pip compile, whereby a "locked" requirements.txt file is generated from a set of input requirements). pylock.toml is standardized and tool-agnostic, such that in the future, pylock.toml files generated by uv could be installed by other tools, and vice versa.
As of this release, pylock.toml is supported in the following commands:
- To export a uv.lock to the pylock.toml format, run: uv export -o pylock.toml
- To generate a pylock.toml file from a set of requirements, run: uv pip compile -o pylock.toml -r requirements.in
- To install from a pylock.toml file, run: uv pip sync pylock.toml or uv pip install -r pylock.toml
Enhancements
- Add PEP 751 support to uv pip compile (#13019)
- Add uv export support for PEP 751 (#12955)
- Accept requirements.txt (verbatim) as a format on the CLI (#12957)
- Add UV_NO_EDITABLE environment variable to set --no-editable on all invocations (#12773)
- Add pylock.toml to uv pip install and uv pip sync (#12992)
- Add a brief sleep before sending SIGINT to child processes (#13018)
- Add upload time to uv.lock (#12968)
- Allow updating Git sources by name (#12897)
- Cache which git in uv init (#12893)
- Enable --dry-run with --locked / --frozen for uv sync (#12778)
- Infer output type in uv export (#12958)
- Make uv init resilient against broken git (#12895)
- Respect build constraints for uv run --with dependencies (#12882)
- Split UV_INDEX on all whitespace (#12820)
- Support build constraints in uv tool and PEP723 scripts. (#12842)
- Use suffix from uvx binary when searching for uv binary (#12923)
- Update version formatting to use cyan color (#12943)
- Add debug logs for version file search (#12951)
- Fix SourceNotAllowed error message during Python discovery (#13012)
- Obfuscate password in credentials debug messages (#12944)
- Obfuscate possible tokens in URL logs (#12969)
- Validate that PEP 751 entries don't include multiple sources (#12993)
Preview features
- Build backend: Add reference docs and schema (#12803)
Bug fixes
- Align supported config-settings with example in docs (#12947)
- Ensure virtual environment is compatible with interpreter on sync (#12884)
- Fix PythonDownloadRequest parsing for partial keys (#12925)
- Fix pre-release exclusive comparison operator in uv-pep440 (#12836)
- Forward additional signals to the child process in uv run (#13017)
- Omit PEP 751 version for source trees (#13030)
- Patch CC and CCX entries in sysconfig for cross-compiled aarch64 Python distributions (#12239)
- Properly handle authentication for HTTP 302 redirect URLs (#12920)
- Set 4MB stack size for all threads, introduce UV_STACK_SIZE (#12839)
- Show PyPy downloads during uv python list (#12915)
- Add subdirectory to Direct URL for local directories (#12971)
- Prefer stable releases over pre-releases in uv python install (#12194)
- Write requested Python variant to pin file in uv init (#12870)
Documentation
- Fix CLI reference with code block (#12807)
- Fix lockfile note (#12793)
- Fix typo in a reference (#12858)
- Improve docs for uv python list --only-downloads and --only-installed (#12916)
- Update not on lack of musl distributions to ARM-only (#12825)
- Add section on shebangs for scripts (#11553)
- Display aliases for long and short args in the CLI reference (#12824)
- Fix highlight line in explicit index documentation (#12887)
- Add explicit source (matching PyTorch guide) (#12844)
- Fix link to issue (#12823)
- Fix grammatical error in FastAPI guide (#12908)
- Add --locked to uv sync in GitHub Actions guide (#12819)
- Improve formatting for "all" default-groups setting documentation (#12963)
- Replace --frozen with --locked in Docker integration guide (#12818) |
| 0.6.14 | 9 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นPython versions
The following Python versions have been added:
- CPython 3.13.3
- CPython 3.12.10
- CPython 3.11.12
- CPython 3.10.17
- CPython 3.9.22
See the python-build-standalone release notes for more details.
Enhancements
- Add uv-build and uv_build aliases to uv init --build-backend (#12776)
- Emit dedicated error message for Conda environment.yml files (#12669)
Preview features
- Build backend: Check module dir exists for sdist build (#12779)
- Build backend: Fix sdist with long directories (#12764)
Performance
- Avoid querying GitHub on repeated install invocations (#12767)
Bug fixes
- Error when tool.uv.sources is set in system-level configuration file (#12757)
- Split workspace members onto their own lines in uv init (#12756)
Documentation
- Add lockfile note about PEP 751 (#12732)
- Extend the reference documentation for uv pip sync (#12683)
- Fix mismatched pip interface header / nav titles (#12640)
uv 0.6.14 |
| 0.6.13 | 7 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --show-version to uv python find (#12376)
- Remove --no-config warning from uv pip compile and uv pip sync (#12642)
- Skip repeated directories in PATH when searching for Python interpreters (#12367)
- Unset SCRIPT_PATH in relocatable activation script (#12672)
- Add UV_PYTHON_DOWNLOADS_JSON_URL to set custom managed python sources (#10939)
- Reject pyproject.toml files in uv pip compile -o (#12673)
- Respect the --offline flag for Git operations (#12619)
Bug fixes
- Warn instead of error if CRC appears to be missing (#12722)
- Avoid infinite loop in uv export with conflicts (#12726)
Rust API
- Update MSRV to 1.84 (#12670)
uv 0.6.13 |
| 0.6.12 | 2 เมษายน 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Report the queried executable path in uv python list (#12628)
- Improve archive unpack error messages (#12627)
Bug fixes
- Respect authenticate when using explicit = true (#12631)
- Normalize extra and group names in uv add and uv remove (#12586)
- Enforce CRC-32 checks when unpacking archives (#12623)
- Fix parsing of python-platform in settings files (#12592)
Documentation
- Add note about uv build to package = false (#12608)
- Add index fallback note to authenticate = always documentation (#12498)
- Fix invalid 'kind' reference in flat index docs (#12583)
uv 0.6.12 |
| 0.6.11 | 30 มีนาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add dependents ("via ..." comments) in uv export command (#12350)
- Bump least-recent non-EOL macOS version to 13.0 (#12518)
- Support --find-links-style "flat" indexes in [[tool.uv.index]] (#12407)
- Distinguish between -q and -qq (#12300)
Configuration
- Support UV_PROJECT environment to set project directory. (#12327)
Performance
- Use a boxed slice for various requirement types (#12514)
Bug fixes
- Add a newline after metadata when initializing scripts with other metadata blocks (#12501)
- Avoid writing empty requires-python to script blocks (#12517)
- Respect build constraints in uv sync (#12502)
- Respect transitive dependencies in uv tree --only-group (#12560)
uv 0.6.11 |
| 0.6.10 | 26 มีนาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add uv sync --check flag (#12342)
- Add support for Python version requests in uv python list (#12375)
- Support .env files in uv tool run (#12386)
- Support python find --script (#11891)
Preview features
- Check all compatible torch indexes when --torch-backend is enabled (#12385)
Performance
- Use a boxed slice for extras and groups (#12391)
- Use small string for index name type (#12355)
Bug fixes
- Allow virtual packages with --no-build (#12314)
- Ignore --find-links entries for pinned indexes (#12396)
- Omit wheels from lockfile based on --exclude-newer (#12299)
- Retain end-of-line comment position when adding dependency (#12360)
- Omit fragment when querying for wheels in Simple HTML API (#12384)
- Error on missing argument in requirements.txt (#12354)
- Support modules with different casing in build backend (#12240)
- Add authentication policy support for pip commands (#12470)
uv 0.6.10 |
| 0.6.9 | 20 มีนาคม 2568 | — | 64 บิต ZIPARM64 ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Use keyring --mode creds when authenticate = "always" (#12316)
- Fail with specific error message when no password is present and authenticate = "always" (#12313)
Bug fixes
- Add boolish value parser for UV_MANAGED_PYTHON flags (#12345)
- Make deserialization non-fatal when assessing source tree revisions (#12319)
- Use resolver-returned wheel over alternate cached wheel (#12301)
Documentation
- Add experimental --torch-backend to the PyTorch guide (#12317)
- Fix #keyring-provider references in alternative index docs (#12315)
- Fix --directory path in examples (#12165)
Preview changes
- Automatically infer the PyTorch index via --torch-backend=auto (#12070)
uv 0.6.9 |
| 0.6.8 | 18 มีนาคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add support for enabling all groups by default with default-groups = "all" (#12289)
- Add simpler --managed-python and --no-managed-python flags for toggling Python preferences (#12246)
Performance
- Avoid allocations for default cache keys (#12063)
Bug fixes
- Allow local version mismatches when validating lockfile (#12285)
- Allow owned string when deserializing requires-python (#12278)
- Make cache errors non-fatal in Planner::build (#12281)
uv 0.6.8 |
| 0.6.7 | 17 มีนาคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add CPython 3.14.0a6
- Fix regression where extension modules would use wrong CXX compiler on Linux
- Enable FTS3 enhanced query syntax for SQLite
See the python-build-standalone release notes for more details.
Enhancements
- Add support for -c constraints in uv add (#12209)
- Add support for --global default version in uv python pin (#12115)
- Always reinstall local source trees passed to uv pip install (#12176)
- Render token claims on publish permission error (#12135)
- Add pip-compatible --group flag to uv pip install and uv pip compile (#11686)
Preview features
- Avoid creating duplicate directory entries in built wheels (#12206)
- Allow overriding module names for editable builds (#12137)
Performance
- Avoid replicating core-metadata field on File struct (#12159)
Bug fixes
- Add src to default cache keys (#12062)
- Discard insufficient fork markers (#10682)
- Ensure python pin --global creates parent directories if missing (#12180)
- Fix GraalPy abi tag parsing and discovery (#12154)
- Remove extraneous script packages in uv sync --script (#12158)
- Remove redundant activate.bat output (#12160)
- Avoid subsequent index hint when no versions are available on the first index (#9332)
- Error on lockfiles with incoherent wheel versions (#12235)
Rust API
- Update BaseClientBuild to accept custom proxies (#12232)
Documentation
- Make testpypi index explicit in example snippet (#12148)
- Reverse and format the archived changelogs (#12099)
- Use consistent commas around i.e. and e.g. (#12157)
- Fix typos in MRE docs (#12198)
- Fix double space typo (#12171)
uv 0.6.7 |
| 0.6.6 | 12 มีนาคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นPython
- Add support for dynamic musl Python distributions on x86-64 Linux (#12121)
- Allow the experimental JIT to be enabled at runtime on Python 3.13 and 3.14 on Linux
- Upgrade the build toolchain to LLVM 20, improving performance
See the python-build-standalone release notes for more details.
Enhancements
- Add --marker flag to uv add (#12012)
- Allow overriding module name for uv build backend (#11884)
- Sync latest Python releases (#12120)
- Use 'Upload' instead of 'Download' in publish reporter (#12029)
- Add [index].authenticate allowing authentication to be required on an index (#11896)
- Add support for Windows legacy scripts in uv tool run (#12079)
- Propagate conflicting dependency groups when using include-group (#12005)
- Show ambiguous requirements when uv add failed (#12106)
Performance
- Cache workspace discovery (#12096)
- Insert dependencies into fork state prior to fetching metadata (#12057)
- Remove some allocations from uv-auth (#12077)
Bug fixes
- Avoid considering PATH updated when the export is commented in the shellrc (#12043)
- Fix uv publish retry on network failures (#12041)
- Use a sized stream in uv publish to comply with WSGI PyPI server constraints (#12111)
- Fix uv python install --reinstall when the version was not previously installed (#12124)
Preview features
- Fix uv_build invocation (#12058)
Documentation
- Quote versions string in python-versions.md (#12112)
- Fix tool concept page headings (#12053)
- Update the [index].authenticate docs (#12102)
- Update versioning policy (#11666)
uv 0.6.6 |
| 0.6.5 | 6 มีนาคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Allow --constraints and --overrides in uvx (#10207)
- Allow overrides in satisfies check for uv tool run (#11994)
- Allow users to set package = true on tool.uv.sources (#12014)
- Add support for Windows legacy scripts via uv run (#11888)
- Return error when running uvx with a .py script (#11623)
- Warn user on use of uvx run (#11992)
Configuration
- Add NO_BUILD and NO_BUILD_PACKAGE environment variables (#11968)
Performance
- Allow overrides in all satisfies checks (#11995)
- Respect markers on constraints when validating current environment (#11976)
Bug fixes
- Compare major-minor specifiers when filtering interpreters (#11952)
- Fix system site packages detection default (#11956)
- Invalidate lockfile when empty dependency groups are added or removed (#12010)
- Remove prepended sys.path (#11954)
- Fix PyPy Python version label (#11965)
- Fix error message suggesting --user instead of --username (#11947)
Preview
- Move the uv build backend into a separate, minimal uv_build package (#11446) |
| 0.6.4 | 3 มีนาคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Upgrade pypy3.10 to v7.3.19 (#11814)
- Allow configuring log verbosity from the CLI (i.e., -vvv) (#11758)
- Warn when duplicate index names found in single file (#11824)
Bug fixes
- Always store registry index on resolution packages (#11815)
- Avoid error on relative paths in uv tool uninstall (#11889)
- Avoid silently dropping errors in directory enumeration (#11890)
- Disable interactive git terminal prompts during fetches (#11744)
- Discover Windows registry (PEP 514) Python versions across 32/64-bit (#11801)
- Don't panic on Ctrl-C in confirm prompt (#11706)
- Fix non-directory in workspace on Windows (#11833)
- Make interpreter caching robust to OS upgrades (#11875)
- Respect include-system-site-packages in layered environments (#11873)
- Suggest uv tool update-shell in PowerShell (#11846)
- Update code page to 65001 before setting environment variables in virtual environments (#11831)
- Use hash instead of full wheel name in wheels bucket (#11738)
- Fix version string truncation while generating cache_key (#11830)
- Explicitly handle ctrl-c in confirmation prompt instead of using a signal handler (#11897)
Performance
- Avoid cloning to string when creating cache path (#11772)
- Avoid redundant clones in version containment check (#11767)
- Avoid string allocation when enumerating tool names (#11910)
- Avoid using owned String for package name constructors (#11768)
- Avoid using owned String in deserializers (#11764)
- Migrate to zlib-rs (again) (#11894)
- Remove unnecessary clones when adding package names (#11771)
- Skip unquote allocation for non-quoted strings (#11813)
- Use SmallString for filenames and URLs (#11765)
- Use a Boxed slice for version specifiers (#11766)
- Use matches over contains for extra value parsing (#11770)
Documentation
- Avoid fallback to PyPI in mixed CPU/CUDA example (#11115)
- Docs: Clarify that setting cache-keys overrides defaults (#11895)
- Document our MSRV policy (#11898)
- Fix reference to macOS cache path (#11845)
- Fix typo in no_default_groups documentation and changelog (#11928)
- Update the "Locking and syncing" page (#11647)
- Update alternative indexes documentation to use new interface (#10826) |
| 0.6.3 | 24 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Allow quotes around command-line options in requirement.txt files (#11644)
- Initialize PEP 723 script in uv lock --script (#11717)
Configuration
- Accept multiple .env files in UV_ENV_FILE (#11665)
Performance
- Reduce overhead in converting resolutions (#11660)
- Use SmallString on Hashes (#11756)
- Use a Box for Yanked on File (#11755)
- Use a SmallString for the Yanked enum (#11715)
- Use boxed slices for hash vector (#11714)
- Use install concurrency for bytecode compilation too (#11615)
Bug fixes
- Avoid installing duplicate dependencies across conflicting groups (#11653)
- Check subdirectory existence after cache heal (#11719)
- Include uppercase platforms for Windows wheels (#11681)
- Respect existing PEP 723 script settings in uv add (#11716)
- Reuse refined interpreter to create tool environment (#11680)
- Skip removed directories during bytecode compilation (#11633)
- Support conflict markers in uv export (#11643)
- Treat lockfile as outdated if (empty) extras are added (#11702)
- Display path separators as backslashes on Windows (#11667)
- Display the built file name instead of the canonicalized name in uv build (#11593)
- Fix message when there are no buildable packages (#11722)
- Re-allow HTTP schemes for Git dependencies (#11687)
Documentation
- Add anchor links to arguments and options in the CLI reference (#11754)
- Add link to environment marker specification (#11748)
- Fix missing a closing bracket in the cache-keys setting (#11669)
- Remove the last edited date from documentation pages (#11753)
- Fix readme typo (#11742) |
| 0.6.2 | 19 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add support for constraining build dependencies with tool.uv.build-constraint-dependencies (#11585)
- Sort dependency group keys when adding new group (#11591)
Performance
- Use an Arc for index URLs (#11586)
Bug fixes
- Allow use of x86-64 Python on ARM Windows (#11625)
- Fix an issue where conflict markers could instigate a very large lock file (#11293)
- Fix duplicate packages with multiple conflicting extras declared (#11513)
- Respect color settings for log messages (#11604)
- Eagerly reject unsupported Git schemes (#11514)
Documentation
- Add documentation for specifying Python versions in tool commands (#11598) |
| 0.6.1 | 17 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Allow users to mark platforms as "required" for wheel coverage (#10067)
- Warn for builds in non-build and workspace root pyproject.toml (#11394)
Bug fixes
- Add --all to uvx --reinstall message (#11535)
- Fallback to GET on HTTP 400 when attempting to use range requests for wheel download (#11539)
- Prefer local variants in preference selection (#11546)
- Respect verbatim executable name in uvx (#11524)
Documentation
- Add documentation for required environments (#11542)
- Note that main.py used to be hello.py (#11519) |
| 0.6.0 | 14 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นThere have been 31 releases and 1135 pull requests since 0.5.0, our last release with breaking changes. As before, we've accumulated various changes that improve correctness and user experience, 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.
Breaking changes
- Create main.py instead of hello.py in uv init (#10369)
Previously, uv init created a hello.py sample file. Now, uv init will create main.py instead — which aligns with expectations from user feedback. The --bare option can be used to avoid creating the file altogether.
- Respect UV_PYTHON in uv python install (#11487)
Previously, uv python install did not read this environment variable; now it does. We believe this matches user expectations, however, this will take priority over .python-version files which could be considered breaking.
- Set UV to the uv executable path (#11326)
When uv spawns a subprocess, it will now have the UV environment variable set to the uv binary path. This change is breaking if you are setting the UV environment variable yourself, as we will overwrite its value.
Additionally, this change requires marking the uv Rust entrypoint (uv::main) as unsafe to avoid unsoundness — this is only relevant if you are invoking uv using Rust. See the Rust documentation for details about the safety of updating a process' environment.
- Error on non-existent extras, e.g., in uv sync (#11426)
Previously, uv would silently ignore non-existent extras requested on the command-line (e.g., via uv sync --extra foo). This is generally correct behavior when resolving requests for package extras, because an extra may be present on one compatible version of a package but not another. However, this flexibility doesn't need to apply to the local project and it's less surprising to error here.
- Error on missing dependency groups when --frozen is provided (#11499)
Previously, uv would not validate that the requested dependency groups were present in the lockfile when the --frozen flag was used. Now, an error will be raised if a requested dependency group is not present.
- Change -p to a --python alias in uv pip compile (#11486)
In uv pip compile, -p was an alias for --python-version while everywhere else in uv's interface it is an alias for --python. Additionally, uv pip compile did not respect the UV_PYTHON environment variable. Now, the semantics of this flag have been updated for parity with the rest of the CLI.
However, --python-version is unique: if we cannot find an interpreter with the given version, we will not fail. Instead, we'll use an alternative interpreter and override its version tags with the requested version during package resolution. This behavior is retained here for backwards compatibility, --python <version> / -p <version> will not fail if the version cannot be found. However, if a specific interpreter is requested, e.g., with --python <path> or --python pypy, and cannot be found — uv will exit with an error.
The breaking changes here are that UV_PYTHON is respected and --python <version> will no longer fail if the version cannot be found.
- Bump alpine default tag to 3.21 for derived Docker images (#11157)
Alpine 3.21 was released in Dec 2024 and is used in the official Alpine-based Python images. Our uv:python3.x-alpine images have been using 3.21 since uv v0.5.8. However, now the the uv:alpine image will use 3.21 instead of 3.20 and uv:alpine3.20 will no longer be updated.
- Use files instead of junctions on Windows (#11269)
Previously, we used junctions for atomic replacement of cache entries on Windows. Now, we use a file with a pointer to the cache entry instead. This resolves various edge-case behaviors with junctions. These files are only intended to be consumed by uv and the cache version has been bumped. We do not think this change will affect workflows.
Stabilizations
- uv publish is no longe |
| 0.5.31 | 12 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add uv sync --script (#11361)
- Allow PEP 508 requirements in tool requests (#11337)
- Allow source distributions to produce wheels with +local suffixes (#11429)
- Bring parity to uvx and uv tool install requests (#11345)
- Use a stable directory for local, remote, and stdin script virtual environments (#11347, #11364)
- Detect infinite recursion in uv run (#11386)
Python
The managed Python distributions have been updated, including:
- CPython 3.14.0a5, which includes a new tail calling interpreter for a significant performance improvement
- The bundled OpenSSL version was updated from 3.0.15 to 3.0.16 which fixes a security advisory
See the python-build-standalone release notes for more details.
Bug fixes
- Fix cross-drive script installation (#11167)
- Add indexes in priority order (#11451)
- Allow --python <dir> requests to match existing environments if sys.executable is the same file (#11290)
- Avoid comparing to system site packages in --dry-run mode (#11427)
- Prefer running executables in the environment with <name> over <name>/__main__.py (#11431)
- Retry local clones without hardlinks if they fail (#11421)
Documentation
- Update alternative-indexes.md to use UV_INDEX instead of UV_EXTRA_INDEX_URL (#11381)
- Update scripts guide to include using package indexes (#11443) |
| 0.5.30 | 10 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นPython
The managed PyPy distributions have been updated for PyPy v7.3.18, which includes:
- PyPy3.10, which updates the standard library from Python 3.10.14 to 3.10.19
- PyPy3.11, which adds beta support for Python 3.11.11
See the PyPy release for more details.
Enhancements
- Add uv sync --dry-run (#11299)
- Ignore #egg fragment in HTML Simple API response (#11340)
Configuration
- Add NO_BINARY and NO_BINARY_PACKAGE environment variables (#11399)
Performance
- Avoid re-cloning name when populating ambiguous set (#11401)
- Optimize flattening in large workspaces (#11313)
Bug fixes
- Allow dynamic packages to be overloaded (#11400)
- Fix credential caching for index roots when URL ends in simple/ (#11336)
- Fix marker merging for requirements.txt for psycopg (#11298)
- Set 777 permissions on locked files (#11328)
- Support extras in @ requests for tools (#11335)
- Upgrade astral-tokio-tar to v0.5.1 (#11359)
- Avoid missing logging for no-op upgrade events (#11301)
- Use refined specifiers when logging narrowed Python range (#11334)
- Don't use popup-generating eprintln in trampoline warnings (#11295)
- Patch pkg-config files to be relocatable (#11291)
- Fix a case of duplicate torch packages when using conflicting extras (#11323)
Documentation
- Add docs for uv tool install --editable (#11280)
- Fix broken anchors in README and docs index (#11338) |
| 0.5.29 | 6 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --bare option to uv init (#11192)
- Add support for respecting VIRTUAL_ENV in project commands via --active (#11189)
- Allow the project VIRTUAL_ENV warning to be silenced with --no-active (#11251)
Python
The managed Python distributions have been updated, including:
- CPython 3.12.9
- CPython 3.13.2
- pkg-config files are now relocatable
See the python-build-standalone release notes for more details.
Bug fixes
- Always use base Python discovery logic for cached environments (#11254)
- Use a flock to avoid concurrent initialization of project environments (#11259)
- Fix handling of --all-groups and --no-default-groups flags (#11224)
Documentation
- Minor touchups to the Docker provenance docs (#11252)
- Move content from the mkdocs.public.yml into the template (#11246) |
| 0.5.28 | 5 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Allow discovering virtual environments from the first interpreter found on the PATH (#11218)
- Clear ephemeral overlays when running tools (#11141)
- Disable SSL in Git commands for --allow-insecure-host (#11210)
- Fix hardlinks in tar unpacking (#11221)
- Set base executable when returning virtual environment (#11209)
- Use base Python for cached environments (#11208)
Documentation
- Add documentation on verifying Docker image attestations (#11140)
- Add last updated to documentation (#11164) |
| 0.5.27 | 3 กุมภาพันธ์ 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Avoid setting permissions during tar extraction (#11191)
- Remove warnings for missing lower bounds (#11195)
- Update PubGrub to set-based outdated priority tracking (#11169)
- Improve error messages for uv pip install with --extra or --all-extras and invalid sources (#11193)
- Sign Docker images using GitHub attestations (#8685)
Preview features
- Don't expand self-referential extras in the build backend (#11142)
Performance
- Filter discovered Python executables by source before querying (#11143)
- Optimize exclusion computation for markers (#11158)
- Use Astral-maintained tokio-tar fork (#11174)
- Remove unneeded .clone() (#11127)
Bug fixes
- Fix relative paths in bytecode compilation (#11177)
- Percent-decode URLs in canonical comparisons (#11088)
- Respect concurrency limits in parallel index fetch (#11182)
- Use wire JSON schema for conflict items (#11196)
- Use explicit _GLibCVersion tuple in uv-python crate (#11122)
Documentation
- Add Git SHA locking behavior to docs (#11125)
- Add best-practice flags to pip install example in troubleshooting guide (#11194)
- Set VIRTUAL_ENV in Jupyter kernels (#11155)
- Add instructions for deactivating an environment (#11200) |
| 0.5.26 | 30 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add support for uvx python (#11076)
- Allow --no-dev --invert in uv tree (#11068)
- Update uv python install --reinstall to reinstall all previous versions (#11072)
- Consistently write log messages with capitalized first word (#11111)
- Suggest --build-backend when --backend is passed to uv init (#10958)
- Improve retry trace message (#11108)
Performance
- Remove unnecessary UTF-8 conversion in hash parsing (#11110)
Bug fixes
- Ignore non-hash fragments in HTML API responses (#11107)
- Avoid resolving symbolic links when querying Python interpreters (#11083)
- Avoid sharing state between universal and non-universal resolves (#11051)
- Error when --script is passing a non-PEP 723 script (#11118)
- Make metadata deserialization failures non-fatal in the cache (#11105)
- Mark metadata as dynamic when reading from built wheel cache (#11046)
- Propagate credentials for <index>/simple to <index>/... endpoints (#11074)
- Fix conflicting extra bug during uv sync (#11075)
Documentation
- Add PyTorch XPU instructions to the PyTorch guide (#11109)
- Add docs for signal handling (#11041)
- Explain build frontend vs. build backend (#11094)
- Fix formatting of RUST_LOG documentation (#10053)
- Fix typo in --no-deps description (#11073)
- Reflow CLI documentation comments (#11040)
- Shorten "Using existing Python versions" nav item so it fits on one line (#11077)
- Some minor touch-ups to the Python install guide (#11116)
- Update Dependabot tracking issue link (#11054)
- Update documentation for running in a container (#11052)
- Upgrade PyTorch version in documentation (#11114)
- Use sys_platform in lieu of platform_system in PyTorch docs (#11113)
- Use positive (rather than negative) markers in PyTorch examples (#11112)
- Fix unnecessary backslashes in brackets (#11059)
- Suggest setting copy link mode in GitLab integration guide (#11067) |
| 0.5.25 | 28 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Allow installation of manylinux wheels on loongarch64 (#10927)
- Allow optional = for editables in requirements.txt (#10954)
- Add Windows aarch64 to the release binaries (#10885)
Bug fixes
- Use spec-compliant (128+n) exit codes for uv run and uv tool run on Unix (#10781)
- Fix best-interpreter lookups when there is an invalid interpreter in the PATH (#11030)
- Guard against concurrent cache writes on Windows (#11007)
- Prioritize package preferences with greater package versions (#10963)
- Reject --editable flag on non-directory requirements (#10994)
- Respect --no-sources for uv pip install workspace discovery (#11003)
- Set JEMALLOC_SYS_WITH_LG_PAGE=16 in ARM Docker builds (#10943)
- Update riscv64 Python downloads to allow install on riscv64gc (#10937)
- Fix file persist retries on Windows (#11008)
- Fix incorrect error message when specifying tool.uv.sources.(package).workspace with other options (#11013)
- Improve SIGINT handling in uv run (#11009)
Documentation
- Add SECURITY policy (#11035)
- Add Requires-Python upper bound behavior to the docs (#10964)
- Add a troubleshooting section and reproducible example guide (#10947)
- Add documentation for uv add -r (#10926)
- Amend requires-python rules in resolver documentation (#10993)
- Reference workspaces in --no-sources documentation (#10995)
- Update documentation for activating virtual environments in different shell (#11000)
- Add Docker SHA pinning tip (#10955) |
| 0.5.24 | 24 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Improve determinism of resolution by always setting package priorities (#10853)
- Upgrade to cargo-dist 0.28.0; improves several installer behaviors (#10884)
Performance
- Remove dependencies clone in resolver (#10880)
- Use Hashbrown's raw entry API to reduce hashes and clone in resolver priority determination (#10881)
Bug fixes
- Allow fallback to Python download on non-critical discovery errors (#10908)
Preview features
- Register managed Python version with the Windows Registry (PEP 514) (#10634)
Documentation
- Improve documentation for some environment variables (#10887)
- Add git subdirectory example (#10894) |
| 0.5.23 | 23 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --refresh to uv venv (#10834)
- Add --no-default-groups command-line flag (#10618)
Bug fixes
- Sort extras and groups when comparing lockfile requirements (#10856)
- Include commit_id and requested_revision in direct_url.json (#10862)
- Invalidate lockfile when static versions change (#10858)
- Make GitHub fast path errors non-fatal (#10859)
- Remove warnings for --frozen and --locked in uv run --script (#10840)
- Resolve find-links paths relative to the configuration file (#10827)
- Respect visitation order for proxy packages (#10833)
- Treat version mismatch errors as non-fatal in fast paths (#10860)
- Mark --locked and --upgrade are conflicting (#10836)
- Relax error checking around unconditional enabling of conflicting extras (#10875)
Documentation
- Reduce ambiguity in conflicting extras example (#10877)
- Update pre-commit documentation (#10756)
Error messages
- Error when workspace contains conflicting Python requirements (#10841)
- Improve uvx error message when uv is missing (#9745) |
| 0.5.22 | 21 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Include version and contact information in GitHub User Agent (#10785)
Performance
- Add fast-path for recursive extras in dynamic validation (#10823)
- Fetch pyproject.toml from GitHub API (#10765)
- Remove allocation in Git SHA truncation (#10801)
- Skip GitHub fast path when full commit is already known (#10800)
Bug fixes
- Add fallback to build backend when Requires-Dist mismatches (#10797)
- Avoid deserialization error for paths above the root (#10789)
- Avoid respecting preferences from other indexes (#10782)
- Disable the distutils setuptools shim during interpreter query (#10819)
- Omit variant when detecting compatible Python installs (#10722)
- Remove TOCTOU errors in Git clone (#10758)
- Validate metadata under GitHub fast path (#10796)
- Include conflict markers in fork markers (#10818)
Error messages
- Add tag incompatibility hints to sync failures (#10739)
- Improve log when distutils is missing (#10713)
- Show non-critical Python discovery errors if no other interpreter is found (#10716)
- Use colors for lock errors (#10736)
Documentation
- Add testing instructions to the AWS Lambda guide (#10805) |
| 0.5.21 | 17 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Avoid building dynamic versions when validating lockfile (#10703)
Configuration
- Add UV_VENV_SEED environment variable (#10715)
Performance
- Store unsupported tags in wheel filename (#10665)
Bug fixes
- Avoid attempting to patch macOS dylib for non-macOS installs (#10721)
- Avoid narrowing requires-python marker with disjunctions (#10704)
- Respect environment variable credentials for indexes outside root (#10688)
- Respect preferences for explicit index dependencies from requirements.txt (#10690)
- Sort preferences by environment, then index (#10700)
- Ignore permission errors when looking for user-level configuration file (#10697)
Documentation
- Add SyntaxWarning compatibility note to bytecode compilation docs (#10701)
- Add MACOSX_DEPLOYMENT_TARGET to the --python-platform documentation (#10698) |
| 0.5.20 | 15 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Avoid failing when deserializing unknown tags (#10655) |
| 0.5.19 | 15 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Filter wheels from lockfile based on architecture (#10584)
- Omit dynamic versions from the lockfile (#10622)
- Add support for pip freeze --path (#10488)
- Reduce verbosity of inline-metadata message when using uv run <script.py> (#10588)
- Add opt-in Git LFS support (#10335)
- Recommend --native-tls on SSL errors (#10605)
- Show expected and available ABI tags in resolver errors (#10527)
- Show target Python version in error messages (#10582)
- Add --output-format=json support to uv python list (#10596)
Python
The managed Python distributions have been updated, including:
- Python 3.14 support on Windows
- Python 3.14.0a4 support
- 64-bit RISC-V Linux support
- Bundled libedit updated from 20210910-3.1 -> 20240808-3.1
- Bundled tcl/tk updated from 8.6.12 -> 8.6.14 (for all Python versions on Unix, only for Python 3.14 on Windows)
See the python-build-standalone release notes for more details.
Performance
- Avoid allocating when stripping source distribution extension (#10625)
- Reduce WheelFilename to 48 bytes (#10583)
- Reduce distribution size to 200 bytes (#10601)
- Remove import re from entrypoint wrapper scripts (#10627)
- Shrink size of platform tag enum (#10546)
- Use ArcStr in verbatim URL (#10600)
- Use memchr for wheel parsing (#10620)
Bug fixes
- Avoid reading symlinks during uv python install on Windows (#10639)
- Correct Pyston tag format (#10580)
- Provide pyproject.toml path for parse errors in uv venv (#10553)
- Don't treat setuptools and wheel as seed packages in uv sync on Python 3.12 (#10572)
- Fix git-tag cache-key reader in case of slashes (#10467) (#10500)
- Include build tag in rendered wheel filenames (#10599)
- Patch embedded install path for Python dylib on macOS during python install (#10629)
- Read cached registry distributions when --config-settings are present (#10578)
- Show resolver hints for packages with markers (#10607)
Documentation
- Add meta titles to documents in guides, excluding integration documents (#10539)
- Remove build-system from example workspace rot (#10636)
Preview features
- Make build backend type annotations more generic (#10549) |
| 0.5.18 | 11 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Avoid forking for identical markers (#10490)
- Avoid panic in uv remove when only comments exist (#10484)
- Revert "improve shell compatibility of venv activate scripts (#10397)" (#10497) |
| 0.5.17 | 10 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นThis release includes support for generating lockfiles from scripts based on inline metadata, as defined in PEP 723.
By default, scripts remain unlocked, and must be locked explicitly with uv lock --script /path/to/script.py, which will generate a lockfile adjacent to the script (e.g., script.py.lock). Once generated, the lockfile will be respected (and updated, if necessary) across uv run --script, uv add --script, and uv remove --script invocations.
This release also includes support for uv export --script and uv tree --script. Both commands support PEP 723 scripts with and without accompanying lockfiles.
Enhancements
- Add support for locking PEP 723 scripts (#10135)
- Respect PEP 723 script lockfiles in uv run (#10136)
- Update PEP 723 lockfile in uv add --script (#10145)
- Update PEP 723 lockfile in uv remove --script (#10162)
- Add --script support to uv export for PEP 723 scripts (#10160)
- Add --script support to uv tree for PEP 723 scripts (#10159)
- Add ls alias to uv {tool, python, pip} list (#10240)
- Allow reading --with-requirements from stdin in uv add and uv run (#10447)
- Warn-and-ignore for unsupported requirements.txt options (#10420)
Preview features
- Add remaining Python type annotations to build backend (#10434)
Performance
- Avoid allocating for names in the PEP 508 parser (#10476)
- Fetch concurrently for non-first-match index strategies (#10432)
- Remove unnecessary .to_string() call (#10419)
- Respect sentinels in package prioritization (#10443)
- Use ArcStr for marker values (#10453)
- Use ArcStr for package, extra, and group names (#10475)
- Use matches! rather than contains in requirements.txt parsing (#10423)
- Use faster disjointness check for markers (#10439)
- Pre-compute PEP 508 markers from universal markers (#10472)
Bug fixes
- Fix UV_FIND_LINKS delimiter to split on commas (#10477)
- Improve uv tool list output when tool environment is broken (#10409)
- Only track markers for compatible versions (#10457)
- Respect requires-python when installing tools (#10401)
- Visit proxy packages eagerly (#10441)
- Improve shell compatibility of venv activate scripts (#10397)
- Read publish username from URL (#10469)
Documentation
- Add Lambda layer instructions to AWS Lambda guide (#10411)
- Add uv lock --script to the docs (#10414)
- Use Windows-specific instructions in Jupyter guide (#10446) |
| 0.5.16 | 8 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Accept full requirements in uv remove (#10338)
Performance
- Avoid over-counting versions in batch prefetcher (#10350)
- Deactivate tracing for version-choosing (#10351)
- Force a niche into VersionSmall (#10385)
- Optimize requirements_for_extra (#10348)
- Re-enable zlib-ng on x86 platforms (#10365)
- Re-enable zlib-ng on all platforms (except s390x, PowerPC, and FreeBSD) (#10370)
- Remove [u64; 4] from small version to move Arc to full version (#10345)
- Shrink Dist from 352 to 288 bytes (#10389)
- Speed up file pins by removing nested hash map (#10346)
- Buffer file reads in serde_json::from_reader (#10341)
Bug fixes
- Avoid enforcing project-level required version for uv self (#10374)
- Fix Ruff linting warnings from generated template files for extension modules (#10371)
Documentation
- Add AWS Lambda integration guide (#10278) |
| 0.5.15 | 7 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นPython
The managed Python distributions have been updated, including:
- Python 3.14.0a3 support on macOS and Linux
- Performance improvements
- Fixes to SQLite feature detection
See the python-build-standalone release notes for more details.
Enhancements
- Respect FORCE_COLOR environment variable (#10315)
Performance
- Avoid generating unused hashes during uv lock (#10307)
- Visit source distributions before wheels (#10291)
Bug fixes
- Avoid downgrading packages when --upgrade is provided (#10097)
- Extract supported architectures from wheel tags (#10179)
- Redact new index credentials in uv add (#10329)
Documentation
- Clarify exclude-newer only allows full timestamps in settings documentation (#9135)
- Tweak script --no-project comment (#10331)
- Update copyright year (#10297)
- Add instructinos for installing with Scoop (#10332) |
| 0.5.14 | 2 มกราคม 2568 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --exact flag to uv run (#10198)
- Add --outdated support to uv pip tree (#10199)
- Add a required version setting to uv (#10248)
- Add loongarch64 to supported Python platform tags (#10223)
- Add manylinux2014 aliases for --python-platform (#10217)
- Add support for Python interpreters on ARMv5TE platforms (#10234)
- Add support for optional --description in uv init (#10209)
- Ignore empty or missing hrefs in Simple HTML (#10276)
- Patch pkgconfig files after Python install (#10189)
Performance
- Actually use jemalloc as alternative allocator (#10269)
- Parse URLs lazily in resolver (#10259)
- Use BTreeMap::range to avoid iterating over unnecessary versions (#10266)
Bug fixes
- Accept directories with space names in uv init (#10246)
- Avoid forking on version in non-universal resolutions (#10274)
- Avoid stripping query parameters from URLs (#10253)
- Consider workspace dependencies to be 'direct' (#10197)
- Detect cyclic dependencies during builds (#10258)
- Guard against self-deletion in uv venv and uv tool (#10206)
- Respect static metadata for already-installed distributions (#10242) |
| 0.5.13 | 27 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นBug fixes
- Avoid enforcing URL check on initial publish (#10182)
- Fix incorrect mismatched constraints reference (#10184)
- Revert "Update reqwest (#10178)" (#10187) |
| 0.5.12 | 26 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Support uv export for non-project workspaces (#10144)
- Set glibc versions for standalone installers (#10142)
- Allow environment variables to be included in cache keys (#10170)
Preview features
- Include extras in uv-build Requires-Dist metadata (#10110)
- Use shutil.which for the build backend (#10028)
Bug fixes
- Always write slash paths to RECORD file (#10164)
- Add support for subdirectories in direct URLs in uv.lock (#10068)
- Avoid duplicating backslashes in sysconfig parser (#10063)
- Avoid erroring when subdirectories are provided in uv add (#10095)
- Backtrack to non-local versions when wheels are missing platform support (#10046)
- Fix mirror script to handle newer metadata format (#10050)
- Preserve sort when deciding on requirement placement (#10078)
- Remove redundant alias in uv init CLI (#10124)
- Respect sources credentials in non-project workspaces (#10125)
- Show non-project dependencies in uv tree (#10149)
- Strip fragment when storing direct URL (#10093)
- Include hashes for local source archives (#10080)
Documentation
- Fix invalid syntax in some sources examples (#10127) |
| 0.5.11 | 20 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Normalize platform_system to sys_platform (#9949)
- Improve retry mechanisms on Windows for copy_atomic and write_atomic (#10026)
- Add nuance to prefetch logging (#9984)
- Update to python-build-standalone 20241219
Preview features
- Build backend: Preserve executable bits for scripts in distributions (#10027)
- Build backend: Handle case where metadata_directory already contains dist-info directory (#10005)
Performance
- Batch resolver pre-fetches per fork (#10029)
Bug fixes
- Allow --script to be provided with uv run - (#10035)
- Allow uv run arguments when reading from stdin (#10034)
- Prefer higher Python lower-bounds when forking (#10007)
- Remove references to deprecated first-match (#10036)
Documentation
- Add uv python install --preview to the documentation (#10010)
- Fix uv python install --default note about multiple requests (#10011)
- Fix typo in Caching docs (#10032)
- Remove remaining references to deprecated first-match (#10038)
- Supplement missing separators for UV_INSTALL_DIR directions on Windows (#9507) |
| 0.5.10 | 17 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Improve backtracking behavior when packages conflict repeatedly (#9843)
- Patch Python sysconfig values such as AR at ar install time (#9905)
- Patch Python sysconfig values such as clang to cc at install time (#9916)
- Skip --native-tls in pip compile header (#9913)
- Add resolver error hint for no-binary and no-build failures (#9948)
- Improve build error messages (#9660)
- Reduce redundant Python version incompatibilities in resolver error message (#9957)
- Reduce redundant enumeration of all package versions in some resolver errors (#9885)
- Improve display of ranges when pre-releases are not allowed (#9944)
- Improve error messages for uv remove (#9959)
- Improve phrasing for single term incompatibilities (#9953)
- Improve styling of uv remove dependency hints (#9960)
- Omit trailing zeros on Python requirements inferred from versions (#9952)
- Show a concise error message for missing version field (#9912)
- Use the build options value to improve hints for no wheel / source distribution errors (#9950)
Bug fixes
- Allow multiple disjoint URLs in overrides (#9893)
- Include explicit indexes in publish index choice (#9932)
- Fix Python interpreter detection for 32-bit operating systems on 64-bit hosts (#9970)
Documentation
- Fix typo "operation system" (#9971)
- Clarify uninstallation docs (#9938)
- Add a note to say that dependencies between workspace members are editable (#9363)
- Correctly document default value of fork-strategy setting (#9931)
- Use double quotes for Windows support in examples (#9946)
- Remove pypy from top-level pin example (#9896)
- Update references to python-build-standalone to reflect the transferred project (#9977)
- Use a different Ruff version in documentation (#9943)
- Change example so it works as-is on powershell and cmd.exe (#9903)
- Clarify best practice for Python matrix strategy in GitHub Actions (#9454)
- Add documentation for uv-lock and uv-export pre-commit hooks (#9872)
Preview features
- Build backend: Fix pre-PEP 639 license files (#9965) |
| 0.5.8 | 11 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นThis release does not include the powerpc64le-unknown-linux-musl target due to a build issue. See #9793 for details. If this change affects you, please file an issue with your use-case.
Enhancements
- Omit empty resolution markers in lockfile (#9738)
- Add --install-dir to to uv python install and uninstall commands (#7920)
- Add --show-urls and --only-downloads to uv python list (#8062)
- Add uv python list --all-arches (#9782)
- Add uv run --gui-script flag for running Python scripts with pythonw.exe (#9152)
- Allow --gui-script on Unix (#9787)
- Allow download of Python distribution variants optimized for newer x86_64 microarchitectures (#9781)
- Allow execution of pyw files on Unix (#9759)
- Allow users to specify URLs in project.dependencies and tool.uv.sources (#9718)
- Encode mutually-incompatible pairs of markers (#9444)
- Improve the error message when a Python install request is not valid (#9783)
- Preserve directory-level standalone build symlinks (#9723)
- Add support for uv publish --index <name> (#9694)
- Reframe --locked and --frozen as --check operations for uv lock (#9662)
- Rename Python install scratch directory from .cache -> .temp (#9756)
- Enable uv tool uninstall uv on Windows (#8963)
- Improve self-dependency hint to make shadowing clear (#9716)
- Refactor unavailable metadata to shrink the resolver (#9769)
- Show 'depends on itself' for proxy packages (#9717)
- Show a dedicated error for missing subdirectories (#9761)
- Show a dedicated hint for missing git+ prefixes (#9789)
Performance
- Eagerly error when parsing pyproject.toml requirements (#9704)
- Use copy-on-write when normalizing paths (#9710)
Bug fixes
- Avoid enforcing non-conflicts in uv export (#9751)
- Don't drop comments between items in TOML tables (#9784)
- Don't fail with --no-build when static metadata is available (#9785)
- Don't filter non-patch registry version (#9736)
- Don't read metadata from stale .egg-info files (#9760)
- Enforce correctness of self-dependencies (#9705)
- Fix projects's typo in resolver error messages (#9708)
- Ignore . prefixed directories during managed Python installation discovery (#9786)
- Improve handling of invalid virtual environments during interpreter discovery (#8086)
- Normalize relative paths when --project is specified (#9709)
- Respect self-constraints on recursive extras (#9714)
- Respect user settings for tracing coloring (#9733)
- Retry on tar extraction errors (#9753)
- Add conflict markers to the lock file (#9370)
- De-duplicate resolution markers (#9780)
- Avoid 403 error hint for PyTorch URLs (#9750)
- Avoid treating non-existent --find-links as relative URLs (#9720)
- Omit Windows Store python3.13.exe et al (#9679)
- Replace executables with broken symlinks during uv python install (#9706)
Documentation
- Fix build failure links (#9740) |
| 0.5.7 | 7 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Ignore dynamic version in source dist (#9549)
- Improve build frontend error handling (#9611)
- Un-hide uv build --no-build-logs option (#9642)
- Flag version mismatch between sdist and wheel during uv build (#9633)
- Improve message when updater receipt is for a different uv executable (#9487)
- Add environment variable to disable writing installer metadata files (#8877)
- Add managed downloads for the latest CPython releases: 3.9.21, 3.10.16, 3.11.11, 3.12.8, and 3.13.1 (#9696)
Preview features
- Build backend: Add hint on import with preview disabled (#9691)
- Build backend: Add direct builds to the resolver and installer (#9621)
- Build backend: Add integration test for scripts (#9635)
- Build backend: Add template to uv init (#9661)
- Build backend: Add --list option (#9610)
Bug fixes
- Create missing parent directories for output file of uv export / uv pip compile (#9648)
- Fix missing display of non-freethreaded Python 3.13 in python list (#9669)
- Implement Ord and PartialOrd without origin for Requirement (#9624)
- Include more sources to avoid lowest bound warning (#9644)
- Respect build tag priority in uv.lock (#9677)
Documentation
- Add build-essentials note to build failures doc (#9641)
- Add entry-point for distroless image in GitLab documentation (#9093)
- Add documentation for uv python pin without a REQUEST argument (#9631)
- Add a link to uv python pin reference docs (#9630) |
| 0.5.6 | 3 ธันวาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --dry-run to uv pip uninstall (#9557)
- Allow --constraints and --overrides in uv tool install (#9547)
- Display removed Python executables on uninstall (#9459)
- Warn when keyring has no password for uv publish (#8827)
- Add suggested action when .python-version pin is incompatible with the project (#9590)
- Improve error messages for mismatches in tool.uv.sources (#9482)
- Use constraints in trace rather than irrelevant requires-python (#9529)
Preview features
- Add uv python install --default (#8650)
- Fix Python executable installation when multiple patch versions are requested (#9607)
- Build backend: Revamp include / exclude (#9525)
- Build backend: Add fast path (#9556)
- Build backend: Add functions to collect file list (#9602)
- Build backend: Default excludes (#9552)
- Build backend: Refactoring before list (#9558)
- Build backend: Warn when visiting over 10k files (#9523)
Configuration
- Make check-url available in configuration files (#9032)
Performance
- Avoid adding non-extra package with extra dependencies (#9540)
- Avoid cloning String in marker evaluation (#9598)
Rust API
- uv-pep508: Add more methods for simplifying extra-related expressions (#9469)
Bug fixes
- Allow file: URLs to include package names (#9493)
- Avoid using IDs across PubGrub states (#9538)
- Consistently enforce requested-vs.-built metadata when retrieving wheels (#9484)
- Do not show empty version specifier in uv tool list (#9605)
- Include Git member information when getting metadata from cache (#9388)
- Include base installation directory in uv run PATH (#9585)
- Insert backslash when appending to system drive (#9488)
- Normalize paths when lowering Git dependencies (#9595)
- Omit origin when comparing requirements (#9570)
- Override manylinux_compatible with --python-platform (#9526)
- Pass extra when evaluating lockfile markers (#9539)
- Propagate markers for recursive extras in resolver (#9509)
- Respect path dependencies within Git dependencies (#9594)
- Support recursive extras with marker in pip compile -r pyproject.toml (#9535)
- Don't emit unpinned warning for proxy packages (#9497)
- Fix --refresh-package flag mentioned as --refresh-dependency (#9486)
- Handle Windows AV/EDR file locks during script installations (#9543)
- Re-enable conflicting extra/group tests and fix regression from #9540 (#9582)
Documentation
- Add missing word to docs for run.md (#9527)
- Add policies reference section and license document (#9367)
- Fix typo in entry point docs (#9491)
- Fix up version in prior uninstall instructions (#9485)
- Mention uv pip behavior in build system note (#9586)
- Update build failures document (#9584)
- Correct wording for multiple sources section (#9504) |
| 0.5.5 | 27 พฤศจิกายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add aliases for build backend requests (#9294)
- Avoid displaying empty paths (#9312)
- Allow constraints in uv tool upgrade (#9375)
- Remove conflict between --no-sync and --frozen in uv run (#9400)
- Respect dependency sources in overrides and constraints (#9455)
- Show an interpreter-focused message for --target and --prefix (#9373)
- Add --no-extra flag and setting (#9387)
- Add uv export --prune (#9389)
- Add dedicated error message for musl install attempts (#9430)
- Add various grammar changes to conflict error messages (#9369)
- Annotate default groups in conflict error messages (#9368)
- Report marker diagnostics during parsing, rather than evaluation (#9338)
- Use consistent formatting for build system errors (#9340)
- Use rich diagnostics for build failures (#9335)
Preview features
- Improve build backend excludes (#9281)
- Include PEP 639 license-files metadata during uv publish (#9442)
Performance
- Initialize rayon lazily (#9435)
- Migrate to PubGrub's arena for package names (#9448)
Bug fixes
- Allow dependency groups to include the containing package (#9385)
- Allow syncing to empty virtual environment directories (#9427)
- Allow system Python discovery with --target and --prefix (#9371)
- Don't warn when --output-file is empty (#9417)
- Fix Python interpreter discovery on non-glibc hosts (#9005)
- Fix tool.uv.dependency-metadata.[].version schema (#9468)
- Only respect preferences across the same indexes (#9302)
- Re-compile when --compile is passed to an install operation (#9378)
- Remove --upgrade, --no-upgrade, and --upgrade-package from uv tool upgrade (#9318)
- Remove dev dependencies in --all-groups --no-dev (#9300)
- Surface extras and group conflicts in uv export (#9365)
- Treat deprecated aliases as equivalent in marker algebra (#9342)
- Treat less compatible tags as lower priority in resolver (#9339)
Documentation
- Avoid referencing scikit-build (instead of scikit-build-core) (#9320)
- Expand entry points documentation (#9329)
- Fix example pyproject.toml in project concept documentation (#9298)
- Fix header level of "Conflicting dependencies" page (#9330)
- Touch-up the extension module guide (#9293)
- Update the dependencies documentation (#9359)
- Reference --no-progress option in related environment variable (#9357) |
| 0.5.4 | 20 พฤศจิกายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Accept either singular or plural values for CLI requirements (#9196)
- Add --all-groups to uv sync, uv run, uv export, and uv tree (#8892)
- Add a progress bar to uv tree --outdated and uv pip list --outdated (#9284)
- Add retries for Python downloads (#9274)
- Use exponential backoff for publish retries (#9276)
- Add manylinux target triples up to glibc 2.40 (#9234)
Performance
- Parallelize network requests in uv tree --outdated (#9280)
- Use zlib-rs on all platforms (#9264)
Bug fixes
- Avoid validating extra and group sources in build-system.requires (#9273)
- Catch retries with wrapped reqwest errors (#9253)
- Sort hashes in uv export output (#9237)
- Strip --index and --default-index from command header (#9288)
Documentation
- Add breadcrumbs to the documentation (#9242)
- Add minimum version to PyTorch guide (#9247)
- Add support for anchor redirects with client-side js (#9212)
- Improve content on project configuration (#9235)
- Improve the project creation documentation (#9236)
- Move the integration guides into the "Guides" section as a collapsed group (#9245)
- Reorganize the project concept documentation (#9121)
- Use the full screen height for the main content to stabilize the nav (#9153)
Error messages
- Add dedicated warning for empty stdin (#9256)
Install uv 0.5.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.4/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.5.4/uv-installer.ps1 | iex"
Download uv 0.5.4
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.5.3 | 19 พฤศจิกายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
This release includes support for conflicting optional dependencies and dependency groups in the uv resolver, including the ability to specify dependency sources (like index assignment) on a per-extra or per-group basis.For example, you can now select CPU-only vs. GPU-enabled PyTorch builds at runtime by defining conflicting extras in a pyproject.toml, and assigning different extras to different PyTorch indexes:
[project]
name = "project"
version = "0.1.0"
requires-python = ">=3.12.0"
[project.optional-dependencies]
# Include `torch` whenever `--extra cpu` or `--extra gpu` is provided.
cpu = ["torch>=2.5.1"]
gpu = ["torch>=2.5.1"]
[tool.uv]
# But allow `cpu` and `gpu` to choose conflicting versions of `torch`.
conflicts = [[{ extra = "cpu" }, { extra = "gpu" }]]
[tool.uv.sources]
torch = [
# With `--extra cpu`, pull PyTorch from the CPU-only index.
{ index = "pytorch-cpu", extra = "cpu", marker = "platform_system != 'Darwin'" },
# With `--extra gpu`, pull PyTorch from the GPU-enabled index.
{ index = "pytorch-gpu", extra = "gpu" },
]
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
[[tool.uv.index]]
name = "pytorch-gpu"
url = "https://download.pytorch.org/whl/cu124"
explicit = true
See the PyTorch documentation for more.Enhancements
- Allow conflicting extras in explicit index assignments (#9160)
- Support overrides and constraints in PEP 723 scripts (#9162)
- Update uv tool install --force to imply --reinstall-package <name> (#9074)
- Turn --verify-hashes on by default (#9170)
Performance
- Enable zlib-rs on all platforms (#9202)
Bug fixes
- Allow apostrophe in virtual environment name (#8984)
- Automatically retry body errors when processing response (#9213)
- Detect nested workspace inside the current workspace and members with identical names (#9094)
- Only install the specified project with --frozen --package in legacy non-[project] workspaces (#9215)
- Respect [[tool.uv.index]] in PEP 723 scripts (#9208)
- Show derivation markers for resolutions with project name (#9136)
- Sort distributions when computing hash (#9185)
- Include trampolines in source distributions on Windows (#9172)
Documentation
- Add --index <name>=<url> syntax to index documentation (#9139)
- Add documentation for using uv with PyTorch (#9210)
Error messages
- Add a dedicated error for include = "dev" with tool.uv.dev-dependencies (#9173)
- Avoid showing disjoint marker error with true (#9169)
- Improve error message when git is not found (#9206)
- Include extras and dependency groups in derivation chains (#9113)
- Include version constraints in derivation chains (#9112)
Install uv 0.5.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.3/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.5.3/uv-installer.ps1 | iex"
Download uv 0.5.3
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| |
| 0.5.2 | 14 พฤศจิกายน 2567 | — | 64 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Hide --no-system from uv pip tree CLI (#9040)
- Allow configuration of Python and PyPy install mirrors in uv.toml (#8695)
- Allow passing Python download mirrors to uv python install (#8695)
- Add support for specifying conflicting extras and dependency groups (#8976, #9096)
- Consistent colon usage in build failure errors (#8994)
- Show full derivation chain when encountering build failures (#9108)
- Show link we failed on parsing index pages (#9118)
- Remove duplicate log when searching for interpreters (#9092)
- Update uv development status classifier to "Stable" on PyPI (#8943)
- Use rich diagnostic formatting for early build failures (#9041)
- Use rich diagnostic formatting for install failures (#9043)
Performance
- Avoid retraversing filesystem when testing exact glob matches (#9022)
Bug fixes
- Allow --no-build to validate lock (#9024)
- Allow default indexes to be marked as explicit (#8990)
- Avoid creating .venv in uv add --frozen and uv add --no-sync (#8980)
- Avoid duplicating first-entry comments in uv add (#9109)
- Defer reporting of build failures in resolver (#9098)
- Fix references to --resolution-strategy in error message output (#8971)
- Ignore virtual environments in parent directories when choosing Python version for new projects (#9075)
- Forward SIGTERM to child processes in uv run (#8933)
- Prefer Python executable names that match the request over default names (#9066)
- Prefer compatible to incompatible distributions when packages exist on multiple indexes (#8961)
- Publish: Ignore non-matching files (#8986)
- Revert uv.lock changes when uv add fails (#9030)
- Show file extensions on available commands when not .exe (#9099)
- Sort by name, then specifiers in uv add (#9097)
- Split after specifiers in --with requirements (#9089)
- Support multiple extras in universal pip compile output (#8960)
Preview features
- Build backend: Add tests for source tree -> source dist -> wheel conversions (#9091)
- Build backend: Switch to custom glob-walkdir implementation (#9013)
- Build backend: Add minimal wheel settings (#9085)
Documentation
- Add wget instructions for systems without curl (#8630)
- Fix .env file example in docs (#9064)
- Fix reference to --resolution in docs (#8968)
- Fix typo in GitLab integration docs (#9047)
- Update format of environment variable reference (#9018)
- Use Python syntax for value_type consistently (#9017)
- Use [[index]] API in configuration example (#9065)
- Mention how to use extras (#8972)
- Add some words about specifying conflicting extras/groups (#9120)
Install uv 0.5.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.2/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.5.2/uv-installer.ps1 | iex"
Download uv 0.5.2
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
|
| 0.5.1 | 8 พฤศจิกายน 2567 | — | 64 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Allow installation of manylinux wheels on riscv64 (#8934)
Bug fixes
- Build source distributions at top-level of cache (#8905)
- Allow non-registry dependencies in uv pip list --outdated (#8939)
- Compute superset of existing and required hashes when healing cache (#8955)
- Enable uv to replace and delete itself on Windows (#8914)
- Remove source distribution filename from cache (#8907)
- Respect --index-url in uv pip list (#8942)
- Respect comma-separated extras in --with (#8946)
Documentation
- Add uninstall note for previous versions (#8937)
- Remove some missed references to ~/.cargo/bin (#8936)
- Split README's install code block into 3 (#8853)
Install uv 0.5.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.1/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.5.1/uv-installer.ps1 | iex"
Download uv 0.5.1
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.5.0 | 7 พฤศจิกายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Since the launch of Python version, project, and tool management capabilities back in August, we've seen extraordinary adoption of uv. We've been iterating rapidly since then: adding new features, fixing bugs, and improving the user experience. Despite moving quickly, stability and compatibility has been a major focus — we've made thirty releases since our last breaking change. Consequently, we've accumulated various changes that improve correctness and user experience, 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.Breaking changes
- Use base executable to set virtualenv Python path (#8481)Previously, uv canonicalized the path to the Python executable when setting the Python path in created virtual environments. This behavior had several undesirable effects: it would bypass stabilized version directories (as constructed by Homebrew) and it was not consistent with the Python standard library's behavior. Now, uv uses the sys._base_executable path.
- Use XDG (i.e. ~/.local/bin) instead of the Cargo home directory in the installer (#8420)Previously, uv's installer used $CARGO_HOME or ~/.cargo/bin for its target install directory. It's been a longstanding complaint that uv uses this directory, as there's no relationship to Cargo. Now, uv will be installed into $XDG_BIN_HOME, $XDG_DATA_HOME/../bin, or ~/.local/bin (in that order). Note that $UV_INSTALL_DIR can always be used to override the target directory.
- Discover and respect .python-version files in parent directories (#6370)Previously, uv only read .python-version files from the working directory. Now, uv will check parent directories for .python-version files; however uv will not search for .python-version files beyond project boundaries. The new behavior is better aligned with that of pyenv and Rye.
- Error when disallowed settings are defined in uv.toml (#8550)Some settings can only be defined in the pyproject.toml. Previously, uv would ignore these settings when present in the uv.toml. Now, uv will error to avoid confusion about why the settings are not respeced.
- Implement PEP 440-compliant local version semantics (#8797)Previously, uv's implementation of local versions (e.g. 2.0+cpu) was not compliant with the specification due to the technical complexity of implementing the local version semantics in the PubGrub algorithm. Thanks to the work of @ericmarkmartin, uv now has a spec-compliant implementation. Namely, uv will now allow a request for torch==2.1.0 to install torch@2.1.0+cpu regardless of whether torch@2.1.0 (without a local tag) actually exists.
- Treat the base Conda environment as a system environment (#7691)Previously, uv would not distinguish between the base and other Conda environments. Now, uv uses CONDA_DEFAULT_ENV and the names base and default to determine if an environment active via CONDA_PREFIX is the base environment. If the base environment is active, the --system flag must be used to mutate it.
- Do not allow pre-releases when the != operator is used (#7974)Previously, uv would use the presence of a pre-release specifier in a version specifier as an opt-in to allow pre-release versions during resolution. The new behavior does not allow pre-releases when an inequals operator is used, e.g., != 2.0a1.
- Prefer USERPROFILE over FOLDERID_Profile when selecting a home directory on Windows (#8048)This change is a side-effect of switching from the directories crate to etcetera for determining canonical system paths. If USERPROFILE is not set, the behavior will be unchanged.
- Improve interactions between color environment variables and CLI options (#8215)Previously, uv would respect the FORCE_COLOR and NO_COLOR environment variables over the --color flag. Now, when the --color flag is explicitly provided, uv will respect it over the environment variables.
- Make allow-insecure-host a g |
| 0.4.30 | 5 พฤศจิกายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add support for .env and custom env files in uv run (#8811)
- Add support for --all-packages in uv run, uv sync, and uv export (#8742, #8741, #8739)
- Allow use of --frozen with --all-packages in uv sync and uv export (#8760)
- Show full error chain on tool upgrade failures (#8753)
- Add --check-url to uv publish to check for existing distributions during upload (#8531)
- Suggest using --check-url when --skip-existing is used (#8803)
Bug fixes
- Allow incompatible requires-python for source distributions with static metadata (#8768)
- Allow managed downloads with --python-preference system (#8808)
- Avoid error for --group defined in non-root workspace member (#8734)
- Avoid showing dependency group annotations on workspace members in tree (#8730)
- Do not error when the Python bin directory is missing on uv python uninstall (#8725)
- Include member groups when locking workspace (#8736)
- Fix bug where python_version < '0' could appear in a final resolution (#8759)
- Sanitize filenames during zip extraction (#8732)
- Switch to RFC 9110 compatible format for exclude newer requests (#8752)
Preview features
- Add support for installing versioned Python executables on Windows (#8663)
- Improve interactions with existing Python executables during install (#8733)
Rust API
- Extend BaseClient to accept extra middleware (#8807)
- Add From for FlatDistributions struct (#8800)
Documentation
- Fix environment variable name in providing credentials section (#8740)
- Fix add httpx example with real git branch (#8756)
- Fix indentation in projects.md (#8772)
- Fix link to publish guide in README (#8720)
- Generate environment variables documentation from code (#8493)
- Improve and fix some documents (#8749)
- Improve environment variables document (#8777)
Install uv 0.4.30
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.30/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.30/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.29 | 30 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Sort errors during display in uv python install (#8684)
- Update resolver to use disjointness checks instead of marker equality (#8661)
- Add riscv64 to supported Python platform tags (#8660)
Bug fixes
- Fix hard and soft float libc detection for managed Python distributions on ARM (#8498)
- Handle cycles in uv pip tree (#8689)
- Respect dependency group markers in uv export (#8659)
- Support transitive dependencies in Git workspaces (#8665)
- Use portable paths for subdirectories in lock URLs (#8707)
- Update uv init --virtual to imply --no-package (#8595)
Preview
- Install versioned Python executables into the bin directory during uv python install (Unix only) (#8458)
Documentation
- Clarify relationship between specifiers and requires-python range (#8688)
- Fix broken link in docs (#8552)
- Fix outdated documentation on Requires-Python (#8679)
- Add Google Artifact Registry index authentication guide (#8579)
Install uv 0.4.29
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.29/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.29/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.28 | 28 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add support for requesting free-threaded builds via +freethreaded (#8645)
- Improve trusted publishing error messages (#8633)
- Remove unneeded return from Maturin project template (#8604)
- Skip Python interpreter discovery for uv export (#8638)
- Hint about missing trusted publishing permission (#8632)
Configuration
- Add environment variable to disable progress output (#8600)
Bug fixes
- Fork when minimum Python version increases (#8628)
- Ignore empty groups when validating lock (#8598)
- Remove duplicate word in error message (#8589)
- Support cyclic dependencies in uv tree (#8564)
- Update uv init to imply --package when using --build-backend (#8593)
- Restore use of dev-dependencies and requires-dev for lockfile compatibility (#8599)
Documentation
- Clarify requires-python requirement for dependencies (#8619)
- Update CLI documentation for --cache-dir (#8627)
Install uv 0.4.28
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.28/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.28/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.27 | 25 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
This release includes support for the [dependency-groups] table as recently standardized in PEP 735. The table allows for declaration of optional dependency groups that are not published as part of the package metadata, unlike [project.optional-dependencies]. There are new --group, --only-group, and --no-group options throughout the uv interface.Previously, uv used a single tool.uv.dev-dependencies list for declaration of development dependencies. Now, uv supports declaring development dependencies in a standardized format and allows splitting development dependencies into multiple groups.For compatibility, and to simplify usage for people that do not need multiple groups, uv special-cases the group named dev. The dev group is equivalent to tool.uv.dev-dependencies. The contents of tool.uv.dev-dependencies will merged into the dev group in uv's resolver. The --dev, --only-dev, and --no-dev flags remain as aliases for the corresponding --group options. Support for tool.uv.dev-dependencies remains in this release, but will display warnings in a future release.uv syncs the dev group by default — this matches the exististing behavior for tool.uv.dev-dependencies. The default groups can be changed with the tool.uv.default-groups setting.Thank you to Stephen Rosen who authored PEP 735.Enhancements
- Support for PEP 735 (#8272)
- Add support for --dry-run mode in uv lock (#7783)
- Don't allow non-string email in authors (#8520)
- Enforce lockfile schema versions (#8509)
Bug fixes
- Always attach URL to network errors (#8444)
- Fix dangling non-platform dependencies in uv tree (#8532)
- Prefer lto over debug free-threaded managed Python builds (#8515)
Documentation
- Add tool.uv.sources to the "Settings" reference (#8543)
- Add reference to uv build and uv publish in the landing pages (#8542)
- Avoid duplicate [tool.uv] header in TOML examples (#8545)
- Document .netrc environment variable and path (#8511)
- Fix .netrc typo in authentication docs (#8521)
- Fix heading level of "Script support" on docs landing page (#8544)
- Move the installation configuration docs to a separate page (#8546)
- Update docs for --publish-url to avoid duplication. (#8561)
- Fix typo (#8554)
- Fix typo in description of --strict flag (#8513)
Install uv 0.4.27
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.27/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.27/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.26 | 23 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Allow static dependency metadata entries for direct URL requirements (#7846)
- Use reinstall report formatting for uv python install --reinstall (#8487)
- Add support for system-level uv.toml configuration (#7851)
Bug fixes
- Apply requires-python narrowing with upper bounds (#8403)
- Avoid rewriting [[tool.uv.index]] entries when credentials are provided (#8502)
- Fix uv add comment handling for empty arrays (#8504)
- Replace dashes with underscores in index credential variables (#8452)
- Respect --allow-insecure-host in uv publish (#8440)
- Allow arbitrary --package includes in uv tree (#8507)
- Remove existing Python install after successful download in uv python install (#8485)
Documentation
- Add docs example for URLs with [tool.uv.dependency-metadata] (#8484)
- Add help page for build failures (#8286)
- Fix cache-keys typo in tags = true (#8422)
- Add documentation examples for manual branch, rev, and tag Git dependencies (#8497)
Error messages
- Improve error message for cache info serialization (#8500)
- Suggest --from command when executable is available for uvx (#8473)
- Support --with-editable in uv tool install (#8472)
Install uv 0.4.26
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.26/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.26/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.25 | 21 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add support for uv pip show --files (#8369)
- Don't prefetch unreachable packages (#8246)
- Remove tool.uv.sources table if it is empty (#8365)
- Modify cache versioning to support backwards compatibility (#8386)
Configuration
- Add support for UV_FROZEN and UV_LOCKED (#8340)
Bug fixes
- Allow dashes and underscores in custom index names (#8339)
- Avoid panic when Git dependencies are included in fork markers (#8388)
- Check existing source by normalized name before uv add and uv remove (#8359)
- Fix bug where username from authentication cache could be ignored (#8345)
- Fix to respect comments positioning in pyproject.toml on change (#8384)
- Redact index sources in uv.lock (#8333)
- Use correct indentation when project table contains open bracket comment (#8387)
- Only remove a source from [tool.uv.sources] if it is no long being referenced (#8366)
- Modify uv pip list and uv tree to print to stdout regardless of --quiet flag (#8392)
Error messages
- Improve help message for missing self update invocations (#8337)
- Log .netrc parsing errors (#8364)
- Remove trailing newlines in error messages (#8322)
- Use a dedicated message for incompatible Python versions in wheel ABI tags (#8363)
- Remove commands available in the top-level from the suggested subcommand error (#8316)
Release
- Run release builds for macos-x86_64 on macos-14 runners (#8327)
Install uv 0.4.25
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.25/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.25/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.24 | 18 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Bug fixes
- Fix Python executable name in Windows free-threaded Python distributions (#8310)
- Redact index credentials from lockfile sources (#8307)
- Respect UV_INDEX_ rather than UV_HTTP_BASIC_ as documented (#8306)
- Improve sources deserialization errors (#8308)
Documentation
- Correct pytorch-to-torch reference in docs (#8291)
Install uv 0.4.24
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.24/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.24/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.23 | 17 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
This release introduces a revamped system for defining package indexes, as an alternative to the existing pip-style
--index-url and --extra-index-url configuration options.You can now define named indexes in your pyproject.toml file using the [[tool.uv.index]] table:
[[tool.uv.index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cpu"
Packages can be pinned to a specific index via tool.uv.sources, to ensure that a given package is installed from the
correct index. For example, to ensure that torch is always installed from the pytorch index:
[tool.uv.sources]
torch = { index = "pytorch" }
[[tool.uv.index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cpu"
Indexes can also be marked as explicit = true to prevent packages from being installed from that index
unless explicitly pinned. For example, to ensure that torch is installed from the pytorch index, but all other
packages are installed from the default index:
[tool.uv.sources]
torch = { index = "pytorch" }
[[tool.uv.index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
To define an additional index outside a pyproject.toml file, use the --index command-line argument
(or the UV_INDEX environment variable); to replace the default index (PyPI), use the --default-index command-line
argument (or UV_DEFAULT_INDEX).These changes are entirely backwards-compatible with the deprecated --index-url and --extra-index-url options,
which continue to work as before.See the Index documentation for more.Enhancements
- Add index URLs when provided via uv add --index or --default-index (#7746)
- Add support for named and explicit indexes (#7481)
- Add templates for popular build backends (#7857)
- Allow multiple pinned indexes in tool.uv.sources (#7769)
- Allow users to incorporate Git tags into dynamic cache keys (#8259)
- Pin named indexes in uv add (#7747)
- Respect named --index and --default-index values in tool.uv.sources (#7910)
- Update to latest PubGrub version (#8245)
- Enable environment variable authentication for named indexes (#7741)
- Avoid showing lower-bound warning outside of explicit lock and sync (#8234)
- Improve logging during lock errors (#8258)
- Improve styling of requires-python warnings (#8240)
- Show hint in resolution failure on Forbidden (403) or Unauthorized (401) (#8264)
- Update to latest cargo-dist version (includes new installer features) (#8270)
- Warn when patch version in requires-python is implicitly 0 (#7959)
- Add more context on client errors during range requests (#8285)
Bug fixes
- Avoid writing duplicate index URLs with --emit-index-url (#8226)
- Fix error leading to out-of-bound panic in uv-pep508 (#8282)
- Fix managed distributions of free-threaded Python on Windows (#8268)
- Fix selection of free-threaded interpreters during default Python discovery (#8239)
- Ignore sources in build requirements for non-source trees (#8235)
- Invalid cache when adding lower bound to lockfile (#8230)
- Respect index priority when storing credentials (#8256)
- Respect relative paths in uv build sources (#8237)
- Narrow what the pip3. logic drops from entry points. (#8273)
Documentation
- Add some additional notes to --index-url docs (#8267)
- Add upgrade note to README (#7937)
- Remove note that "only a single source may be defined for each dependency" (#8243)
Install uv 0.4.23
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.23/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.23/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc. |
| 0.4.22 | 15 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Respect [tool.uv.sources] in build requirements (#7172)
Preview features
- Add a dedicated uv publish error message for missing usernames (#8045)
- Support interactive input in uv publish (#8158)
- Use raw filenames in uv publish (#8204)
Performance
- Reuse the result of which git (#8224)
Bug fixes
- Avoid environment check optimization for uv pip install --exact (#8219)
- Do not use free-threaded interpreters without a free-threaded request (#8191)
- Don't recommend --prerelease=allow during build requirement resolution errors (#8192)
- Prefer optimized builds for free-threaded Python downloads (#8196)
- Retain old python-build-standalone releases (#8216)
- Run uv build builds in the source distribution bucket (#8220)
Install uv 0.4.22
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.22/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.22/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.21 | 14 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add support for managed installations of free-threaded Python (#8100)
- Add note about uvx to uv tool run short help (#7695)
- Enable HTTP/2 requests (#8049)
- Support uv tree --no-dev (#8109)
- Support PEP 723 metadata with uv run - (#8111)
- Support pip install --exact (#8044)
- Support uv export --no-header (#8096)
- ADd Python 3.13 images to Docker publish (#8105)
- Support remote (https://) scripts in uv run (#6375)
- Allow comma value-delimited arguments in uv run --with (#7909)
Configuration
- Support wildcards in UV_INSECURE_HOST (#8052)
Performance
- Use shared index when fetching metadata in lock satisfaction routine (#8147)
Bug fixes
- Add prerelease compatibility check to uv python CLI (#8020)
- Avoid deleting a project environment directory if we cannot tell if a pyvenv.cfg file exists (#8012)
- Avoid excluding valid wheels for exact requires-python bounds (#8140)
- Bump netrc crate to latest commit (#8021)
- Fix uv python pin 3.13t failure when parsing version for project requires check (#8056)
- Fix handling of != intersections in requires-python (#7897)
- Remove the newly created tool environment if sync failed (#8038)
- Respect dynamic extras in uv lock and uv sync (#8091)
- Treat resolver failures as fatal in lockfile validation (#8083)
- Use git config --get for author information for improved backwards compatibility (#8101)
- Use comma-separated values for UV_FIND_LINKS (#8061)
- Use shared resolver state between add and lock to avoid double Git update (#8146)
- Make --relocatable entrypoints robust to symlinking (#8079)
- Improve compatibility with VSCode PS1 prompt (#8006)
- Fix "Stream did not contain valid UTF-8" failures in Windows (#8120)
- Use --with-requirements in uvx error hint (#8112)
Documentation
- Include uvx installation in Docker examples (#8179)
- Make the instructions for the Windows standalone installer consistent across README and documentation (#8125)
- Update pip compatibility guide to note transitive URL dependency support (#8081)
- Document --reinstall with --exclude-newer to ensure downgrades (#6721)
Install uv 0.4.21
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.21/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.21/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.20 | 8 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add managed downloads for CPython 3.13.0 (final) (#8010)
- Python 3.13 is the default version for uv python install (#8010)
- Hint at wrong endpoint in uv publish failures (#7872)
- List available scripts when a command is not specified for uv run (#7687)
- Fill in authors field during uv init (#7756)
Documentation
- Add snapshot testing to contribution guide (#7882)
- Fix and improve GitLab integration docs (#8000)
Install uv 0.4.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.20/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.20/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.19 | 7 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add managed downloads for CPython 3.13.0rc3 and 3.12.7 (#7880)
- Display the target virtual environment path if non-default (#7850)
- Preserve case-insensitive sorts in uv add (#7864)
- Respect project upper bounds when filtering wheels on requires-python (#7904)
- Add --script to uv run to treat an input as PEP 723 regardless of extension (#7739)
- Improve legibility of build failure errors (#7854)
- Show interpreter source during Python discovery query errors (#7928)
Configuration
- Add UV_FIND_LINKS environment variable for --find-links (#7912)
- Ignore empty string values for UV_PYTHON environment variable (#7878)
Bug fixes
- Allow py3x-none tags in newer than Python 3.x (#7867)
- Allow self-dependencies in the dev section (#7943)
- Always ignore cp2 wheels in resolution (#7902)
- Clear the publish progress bar on retry (#7921)
- Fix parsing of gnueabi libc variants in Python version requests (#7975)
- Simplify supported environments when comparing to lockfile (#7894)
- Trim commits when reading from Git refs (#7922)
- Use a higher HTTP read timeout when publishing packages (#7923)
- Remove the first empty line for uv tree --package foo (#7885)
Documentation
- Add 3.13 support to the platform reference (#7971)
- Clarify project environment creation a little (#7941)
- Fix code block title in Gitlab integration docs (#7861)
- Fix documentation (projects guide) regarding adding a git dependency (#7916)
- fix uninstallation command for windows on documentation (#7944)
- Clearly specify the minimum supported Windows Server version in the document (#7946)
Rust API
- Remove unused Sha256Reader (#7929)
- Remove unnecessary Deserialize derives on settings (#7856)
Install uv 0.4.19
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.19/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.19/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.18 | 1 ตุลาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Allow multiple source entries for each package in tool.uv.sources (#7745)
- Add .gitignore file to uv build output directory (#7835)
- Disable jemalloc on FreeBSD (#7780)
- Respect PAGER env var when paging in uv help command (#5511)
- Support uv run -m foo to run a module (#7754)
- Use a top-level output directory for uv build in workspaces (#7813)
- Update uv init --package command to match project name (#7670)
- Add a custom suggestion for uv add dotenv (#7799)
- Add detailed errors for tool.uv.sources deserialization failures (#7823)
- Improve error message copy for failed builds (#7849)
- Use serde-untagged to improve some untagged enum error messages (#7822)
- Use build failure hints for dotenv errors, rather than in uv add (#7825)
Configuration
- Add UV_NO_SYNC environment variable (#7752)
Bug fixes
- Accept git+ prefix in tool.uv.sources (#7847)
- Allow spaces in path requirements (#7767)
- Avoid reusing cached downloaded binaries with --no-binary (#7772)
- Correctly trims values during wheel WHEEL file parsing (#7770)
- Fix uv tree --invert for platform dependencies (#7808)
- Fix encoding mismatch between python child process and uv (#7757)
- Reject self-dependencies in uv add (#7766)
- Respect tool.uv.environments for legacy virtual workspace roots (#7824)
- Retain empty extras on workspace members (#7762)
- Use file stem when parsing cached wheel names (#7773)
Rust API
- Make FlatDistributions public (#7833)
Documentation
- Fix table of contents sizing (#7751)
- GitLab Integration documentation (#6857)
- Update documentation to setup-uv@v3 (#7807)
- Use uv publish instead of twine in docs (#7837)
- Fix typo in projects.md (#7784)
Install uv 0.4.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.4.18/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/uv/releases/download/0.4.18/uv-installer.ps1 | iex"
Download uv 0.4.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.15 | 21 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Bug fixes
- Revert "Treat invalid platform as more compatible than invalid Python (#7556)" (#7608)
Documentation
- Add the execution policy to powershell installs for single versions (#7602)
Install uv 0.4.15
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm | iex"
Download uv 0.4.15
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.14 | 20 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Breaking
- Move uvx shell completion to uvx --generate-shell-completion (#7511)
Enhancements
- Adjust messaging for frozen hint on resolution failure during uv add (#7597)
- Provide resolution hints in case of possible local name conflicts (#7505)
- Improve Docker image release tagging order and display on ghcr.io (#7568)
- Improve deserialization error messages (#7598)
Bug fixes
- Allow system environments during project environment validity check (#7585)
- Avoid validating workspace members when --no-sources is provided (#7599)
- Fix handling of sys.base_prefix collision in interpreter identity check during tool installs (#7596)
- Make uv cache prune robust to unreadable rkyv entries (#7561)
- Revert "Remove duplicate warning for settings discovery errors (#7384)" (#7594)
Documentation
- Fix - to _ in packaged applications document (#7571)
Install uv 0.4.14
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm | iex"
Download uv 0.4.14
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.13 | 19 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add socks support (#7503)
- Avoid warning about bad Python interpreter links for empty project environment directories (#7527)
- Improve invalid environment warning messages (#7544)
- Use more verbose spelling of "virtualenv" during creation (#7523)
- Do not use a user-facing warning for "Waiting to acquire lock..." message (#7502)
Performance
- Use a single buffer for hints on resolver errors (#7497)
Bug fixes
- Allow Python pre-releases to be used if they are first on the PATH (#7470)
- Avoid deleting the project environment directory if it is not a virtual environment (#7522)
- Do not error if the CACHEDIR.TAG file exists but cannot be written to (#7550)
- Treat invalid platform as more compatible than invalid Python (#7556)
- Use portable paths when serializing sources (#7504)
- Compute resolver hints using the final reduced derivation tree (#7546)
- Bump the wheel and sdist cache versions (#7560)
- Heal cache entries with missing source distributions (#7559)
Rust libraries
- Bump minimum supported Rust version from 1.80 -> 1.81
Documentation
- Add UV_LINK_MODE to Docker caching example (#7510)
- Clarify behavior of of overrides in CLI reference (#7537)
Install uv 0.4.13
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm | iex"
Download uv 0.4.13
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.12 | 18 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Allow users to provide pre-defined metadata for resolution (#7442)
- Invalidate existing tool environments on Python interpreter mismatch (#7451)
Bug fixes
- Avoid fatal error when searching for egg-info with missing directory (#7498)
Documentation
- Add note on cache growth for self-hosted GitHub runners (#5757)
Install uv 0.4.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm | iex"
Download uv 0.4.12
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.11 | 18 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add --no-editable support to uv sync and uv export (#7371)
- Add support for --only-dev to uv sync and uv export (#7367)
- Add support for remaining pip-supported file extensions (#7387)
- Generate shell completion for uvx (#7388)
- Include uv export command in requirements.txt output (#7374)
- Prune unzipped source distributions in uv cache prune --ci (#7446)
- Warn when trying to uv sync a package without build configuration (#7420)
- Support requests for pre-releases in the --python option (#7335)
Bug fixes
- Avoid erroneous version warning for .dist-info directories (#7444)
- Avoid removing seed packages for uv venv --seed environments (#7410)
- Avoid unnecessary progress bar initializations (#7412)
- Error when tool.uv.sources contains duplicate package names (#7383)
- Include --branch et al when resolving unnamed URLs in uv add (#7447)
- Include dev-dependencies in --no-sources invocations (#7408)
- Include the parent interpreter in Python discovery when --system is used (#7440)
- Respect --no-sources in PEP 723 scripts (#7409)
- Respect pyproject.toml credentials from user-provided requirements (#7474)
- Use consistent PyPI cache bucket (#7443)
- Use unambiguous relative paths in uv export (#7378)
Documentation
- Add documentation on platform-specific dependencies (#7411)
- Add documentation for passing installer options on Linux (#6839)
- Separate project data from configuration settings (#7053)
Error messages
- Hint at missing project.name (#6803)
- Surface dedicated project.name error for workspaces (#7399)
- Remove duplicate warning for settings discovery errors (#7384)
Install uv 0.4.11
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm | iex"
Download uv 0.4.11
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.10 | 14 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Allow uv tool upgrade --all to continue on individual upgrade failure (#7333)
- Support globs as cache keys in tool.uv.cache-keys (#7268)
- Add Python package (__main__.py) support to uv run (#7281)
- Add zip application support to uv run (#7289)
- Add --token option to self update command (#7279)
Performance
- Use globwalk for cache-keys matching (#7337)
Bug fixes
- Always treat archive-like requirements as local files (#7364)
- Apply --no-install options when constructing resolution (#7277)
- Avoid clobbering existing py.typed files contents in uv init (#7338)
- Avoid enforcing platform compatibility when validating lockfile (#7305)
- Avoid installing transitive dev dependencies (#7318)
- Avoid selecting prerelease Python installations without opt-in (#7300)
- Fix PPC64 page size in binary builds. (#7298)
- Include pre-release Python versions in uv python list (#7290)
- Make version ID optional for source builds (#7362)
- Support relative paths in uv add --script (#7301)
Documentation
- Fix documentation typos for uv build --build-constraint flag (#7330)
- Fix grammatical error in CLI docs (#7353)
Error messages
- Add dedicated lock errors for wheel-only distributions (#7307)
- Avoid treating .whl sources as source distributions (#7303)
- Clarify Python requirement source for script incompatibilities (#7339) |
| 0.4.9 | 10 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add support for installing Python 3.13 (#7263)
- Upgrade managed CPython versions to latest patch releases (#7263)
- Allow setting a target version for uv self update (#7252)
- Create py.typed files during uv init --lib (#7232)
- Add a dedicated error for packages that fail due to distutils deprecation (#7239)
- Improve error message when requested Python version is unsupported (#7269)
- Add uv run --no-sync (#7192
Bug fixes
- Avoid updating pyproject.toml offsets on non-add edits (#7262)
- Invalidate cache when --config-settings change (#7139)
- Remove workspace root for single-member workspace with uv export (#7254)
Install uv 0.4.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm | iex"
Download uv 0.4.9
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.4.6 | 6 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Accept --build-constraints in uv build (#7085)
- Add --require-hashes and --verify-hashes to uv build (#7094)
- Add --show-version-specifiers to uv tool list (#7050)
- Respect hashes in constraints files (#7093)
- Upgrade installer scripts (#7092)
- Allow specifying multiple packages in uv tool upgrade and uninstall (#7037)
- Sort by implementation in uv python list (#6918)
Bug fixes
- Invalidate lockfile when member versions change (#7102)
- Strip fragments from direct source URLs in lockfile (#7061)
- Support --no-build and --no-binary in uv sync et al (#7100)
- Use distribution hash over registry hash (#7060)
- Fix inverted log message (#7063)
- Adjust Docker ENTRYPOINT and CMD for inherited images (#7054)
Documentation
- Add winget to installers (#7088)
- Document how to disable path modifications during install (#7090)
- Document how to manually update locked package version (#7083)
- Document official setup-uv action (#7056)
- Update docs on .python-version file (#7051) |
| 0.4.5 | 4 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Implement uv build (#6895)
- Add --package support to uv build (#6990)
- Prune unreachable packages from lockfile (#6959)
- Prune unreachable wheels from lockfile (#6961)
- Show build output by default in uv build (#6912)
- Support uv build --wheel from source distributions (#6898)
- Use the root project name for the project virtual environment prompt (#7021)
Bug fixes
- Fix handling of inline optional dependencies in uv add (#7023)
- Reflect exit code in uv tool run and uv run (#6994)
- Revert pyproject.toml modifications on Ctrl-C (#7024)
- Rollback pyproject.toml changes on all errors (#7022)
- Use correct ordering semantics for narrowing upper-bounded Python requirements (#7031)
- Fix segfault in Windows trampolines (#6955)
- Remove unused __future__.annotations import in _virtualenv.py (#6996)
Documentation
- Add documentation for uv build (#6991)
- Add note to extra and all-extras in uv sync help (#7013)
- Add project docs for project.scripts (#7010)
- Fix available Docker image tag rendering and shorten list (#7017)
- Touchup to the project environment config section (#7038)
- Clarify precedence of uv.toml (#6986)
- Fix available Docker tags for -slim variants (#7041) |
| 0.4.4 | 4 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Allow customizing the project environment path with UV_PROJECT_ENVIRONMENT (#6834)
- Warn when VIRTUAL_ENV is set but will not be respected in project commands (#6864)
- Add --no-hashes to uv export (#6954)
- Make HTTP headers title case for backward compatibility (#6887)
- Pin .python-version in uv init (#6869)
- Support file:// URLs for UV_PYTHON_INSTALL_MIRROR (#6950)
- Introduce more docker tags for uv (#6053)
Bug fixes
- Avoid canonicalizing the cache directory (#6949)
- Show all PyPy versions in uv python list --all-versions (#6917)
- Avoid incorrect requires-python marker simplifications (#6268)
- Documentation
- Add documentation for UV_PROJECT_ENVIRONMENT (#6987)
- Add optional dependencies section to the lockfile document (#6982)
Document use of the file:// scheme in Python installation mirrors (#6984)
- Fix outdated references to the help menu documentation in the first steps page (#6980)
- Show env option in CLI reference documentation (#6863)
- Add bind mount example to docker.md (#6921) |
| 0.4.3 | 3 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Show build backend output when --verbose is provided (#6903)
- Allow uv sync --frozen --package without copying member pyproject.toml (#6943)
Bug fixes
- Avoid panic with missing temporary directory (#6929)
- Avoid updating incorrect dependencies for sorted uv add (#6939)
- Use lower-bound semantics for all Python compatibility comparisons (#6882) |
| 0.4.2 | 2 กันยายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Adding support for .pyc files in uv run (#6886)
- Treat missing top_level.txt as non-fatal (#6881)
Bug fixes
- Fix is_disjoint check for supported environments (#6902)
- Remove dangling archives in uv cache clean ${package} (#6915)
- Error when discovered Python is incompatible with --isolated workspace (#6885)
- Warn when discovered Python is incompatible with PEP 723 script (#6884) |
| 0.4.0 | 29 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add first-class support for non-packaged projects (#6585)
- Add --app and --lib options to uv init (#6689)
- Use virtual source label in lockfile for non-packaged dependencies (#6728)
- Read hash from URL fragment if --hashes are omitted (#6731)
- Support {package}@{version} in uv tool install (#6762)
- Publish additional Docker tags without patch version (#6734)
Bug fixes
- Accept either strings or structs for hosts (#6763)
- Avoid including non-excluded members in parent workspaces (#6735)
- Avoid reading stale .egg-info from mutable sources (#6714)
- Avoid writing invalid PEP 723 scripts on tool.uv.sources (#6706)
- Compare virtual members when invalidating lockfile (#6754)
- Do not require workspace members to sync with --frozen (#6737)
- Implement deserialization for trusted host (#6716)
- Avoid showing duplicate paths in uv python list (#6740)
- Raise an error for unclosed script tags in PEP 723 scripts (#6704)
Documentation
- Add dependabot and renovate documentation page (#6236)
- Bind to the host to allow connections in FastAPI Docker example (#6753)
- Fix some broken links (#6705)
- Update FastAPI guide for virtual projects and use uv init to create the pyproject.toml (#6752)
- Update project documentation for the application / library concepts (#6718)
- Update workspace documentation to remove legacy virtual projects (#6720)
- Remove duplicate WORKDIR directive in Docker example (#6651) |
| 0.3.4 | 27 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นCLI
- Show --editable on the uv add CLI (#6608)
- Add --refresh to tool run warning for --with dependencies (#6609)
Bug fixes
- Allow per dependency build isolation for setup.py-based projects (#6517)
- Avoid un-strict syncing by-default for build isolation (#6606)
- Respect --no-build-isolation-package in uv sync (#6605)
- Respect extras and markers on virtual dev dependencies (#6620)
- Support PEP 723 scripts in GUI files (#6611)
- Update lockfile after setting minimum bounds in uv add (#6618)
- Use relative paths for --find-links and local registries (#6566)
- Use separate types to represent raw vs. resolver markers (#6646)
- Parse wheels WHEEL and METADATA files as email messages (#6616)
- Support unquoted hrefs in --find-links and other HTML sources (#6622)
- Don't canonicalize paths to user requirements (#6560)
Documentation
- Add FastAPI guide to overview (#6603)
- Add docs for disabling build isolation with uv sync (#6607)
- Add example of reading script from stdin using echo (#6567)
- Add tip to use intermediate layers in Docker builds (#6650)
- Clarify need to include pyproject.toml with --no-install-project (#6581)
- Move WORKDIR directive in Docker examples (#6652)
- Remove duplicate WORKDIR directive in Docker example (#6651) |
| 0.3.3 | 24 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add uv sync --no-install-project to skip installation of the project (#6538)
- Add uv sync --no-install-workspace to skip installation of all workspace members (#6539)
- Add uv sync --no-install-package to skip installation of specific packages (#6540)
- Show previous version in self update message (#6473)
CLI
- Add --no-project alias for uv python pin --no-workspace (#6514)
- Ignore .python-version files in uv venv with --no-config (#6513)
- Include virtual environment interpreters in uv python find (#6521)
- Respect - as stdin channel for uv run (#6481)
- Revert changes to pyproject.toml when sync fails duing uv add (#6526)
Configuration
- Add UV_COMPILE_BYTECODE environment variable (#6530)
Bug fixes
- Set VIRTUAL_ENV for uv run invocations (#6543)
- Ignore errors in workspace discovery with --no-project (#6554)
Documentation
- Add documentation for uv python find (#6527)
- Add uv tool install example in Docker (#6547)
- Document why we do lower bounds (#6516)
- Fix to miss string termination in PowerShell commands for shell autocompletion documentation (#6491)
- Fix incorrect workspace members keyword (#6502)
- Use proper environment variables for Windows (#6433)
- Improve caveat in uvx note (#6546) |
| 0.3.0 | 20 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
This release introduces the uv project, tool, script, and python interfaces. If you've been following uv's development, you've probably seen these new commands behind a preview flag. Now, the interfaces are stable and ready for production-use.These features are all documented in new, comprehensive documentation.This release also stabilizes preview functionality in uv venv:
- uv venv --python <version> will automatically download the Python version if required
- uv venv will read the required Python version from the .python-version file or pyproject.toml
The uv pip interface should not be affected by any breaking changes.Note the following changelog entries does not include all the new features since they were added incrementally as preview features. See the feature page in the documentation for a comprehensive listing, or read the blog post for more context on the new features.Breaking changes
- Migrate to XDG and Linux strategy for macOS directories (#5806)
- Move concurrency settings to top-level (#4257)
- Apply system Python filtering to executable name requests (#4309)
- Remove --legacy-setup-py command-line argument (#4255)
- Stabilize preview features (#6166)
Enhancements
- Add 32-bit Windows target (#6252)
- Add support for python_version in ... markers (#6172)
- Allow user to constrain supported lock environments (#6210)
- Lift requirement that .egg-info filenames must include version (#6179)
- Change "any of" to "all of" in error messages (#6222)
- Collapse redundant dependency clauses enumerating available versions (#6160)
- Collapse unavailable packages in resolver errors (#6154)
- Fix messages for unavailable packages when range is plural (#6221)
- Improve resolver error messages when --offline is used (#6156)
- Avoid overwriting dependencies with different markers in uv add (#6010)
- Simplify available package version ranges when the name includes markers or extras (#6162)
- Simplify version ranges reported for unavailable packages (#6155)
- Rename environment-markers to resolution-markers (#6240)
- Support uv add -r requirements.txt (#6005)
CLI
- Hide global options in uv generate-shell-completion (#6170)
- Show generate-shell-completion command in uv help (#6180)
- Special-case reinstalls in environment update summaries (#6243)
- Add output when uv add and uv remove update scripts (#6231)
- Add support for package@latest in tool run (#6138)
- Show python find output with -q (#6256)
- Warn when --upgrade is passed to tool run (#6140)
Configuration
- Allow customizing the tool install directory with UV_TOOL_BIN_DIR (#6207)
Performance
- Use FxHash in uv-auth (#6149)
Bug fixes
- Avoid panicking when the resolver thread encounters a closed channel (#6182)
- Respect release-only semantics of python_full_version when constructing markers (#6171)
- Tolerate missing [project] table in uv venv (#6178)
- Avoid using workspace lock_path as relative root (#6157)
Documentation
- Preview changes are now included in the standard changelog (#6259)
- Document dynamic metadata behavior for cache (#5993)
- Document the effect of ordering on package priority (#6211)
- Make some edits to the workspace concept documentation (#6223)
- Update environment variables doc (#5994)
- Disable collapsible navigation in the documentation (#5674)
- Document uv add and uv remove behavior with markers (#6163)
- Document the Python installation directory (#6227)
- Document the uv.pip section semantics (#6225)
- Document the cache directory (#6229)
- Document the tools directory (#6228)
- Document yanked packages caveat during sync (#6219)
- Link to persistent configuration options in Python versions document (#6226)
- Link to the projects concept from the dependencies concept (#6224)
- Improvements to the Docker installation guide (#6216)
- Increase the size of navigation entries (#6233)
- Install ca-certificates in docker and use pipefail (#6208)
- Add script support to feature highlights in index (#6251)
- Show uv generate-shell-com |
| 0.2.37 | 16 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นPerformance
- Avoid cloning requirement for unchanged markers (#6116)
Bug fixes
- Fix loading of cached metadata for Git distributions with subdirectories (#6094)
Error messages
- Add env var to --link-mode=copy warning (#6103)
- Avoid displaying "failed to download" on build failures for local source distributions (#6075)
- Improve display of available package ranges (#6118)
- Use "your requirements" consistently in resolver error messages (#6113) |
| 0.2.34 | 8 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Always strip in release mode (#5745)
- Assume git+ prefix when URLs end in .git (#5868)
- Support build constraints (#5639)
CLI
- Create help sections for build, install, resolve, and index (#5693)
- Improve CLI documentation for global options (#5834)
- Improve --python CLI documentation (#5869)
- Improve display order of top-level commands (#5830)
Bug fixes
- Allow downloading wheels for metadata with --no-binary (#5707)
- Reject pyproject.toml in --config-file (#5842)
- Remove double-proxy nodes in error reporting (#5738)
- Respect pre-release preferences from input files (#5736)
- Support overlapping local and non-local requirements in forks (#5812) |
| 0.2.33 | 2 สิงหาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add support for ksh to relocatable virtual environments (#5640)
CLI
- Add help sections for global options (#5665)
- Move --python and --python-version into the "Python options" help (#5691)
- Show help specific options (i.e. --no-pager) in uv help (#5516)
- Update top-level command descriptions (#5706)
Bug fixes
- Remove lingering executables after failed installs (#5666)
- Switch from heuristic freshness lifetime to hard-coded value (#5654)
Documentation
- Don't use equals signs for CLI options with values (#5704) |
| 0.2.32 | 31 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Deprecate the --isolated flag in favor of --no-config (#5466)
- Re-enable requires-python narrowing in forks (#5583)
Performance
- Skip copying to empty entries in seekable zip (#5571)
- Use a consistent buffer size for downloads (#5569)
- Use a consistent buffer size when writing out zip files (#5570)
Bug fixes
- Avoid setting executable permissions on files we might not own (#5582)
- Statically link liblzma (#5577) |
| 0.2.30 | 27 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Infer missing .exe in Windows Python discovery (#5456)
- Make --reinstall imply --refresh (#5425)
CLI
- Add --no-config to replace --isolated (#5463)
- Cache metadata for source tree dependencies (#5423)
Bug fixes
- Avoid canonicalizing executables on Windows (#5446)
- Set standard permissions for temporary files (#5457) |
| 0.2.29 | 25 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add --ci mode to uv cache prune (#5391)
- Display Python installation key for discovered interpreters (#5365)
Bug fixes
- Allow symlinks to files in scripts directory (#5380)
- Always accept already-installed pre-releases (#5419)
- Validate successful metadata fetch for direct dependencies (#5392)
Documentation
- Add warning to --link-mode=symlink documentation (#5387) |
| 0.2.28 | 24 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Output stable ordering to requirements.txt in universal mode (#5334)
- Allow symlinks with --find-links (#5323)
- Add support for variations of pythonw.exe (#5259)
CLI
- Stylize Requires-Python consistently in CLI output (#5304)
- Add --show-version-specifiers to tree (#5240)
Performance
- Avoid always rebuilding dynamic metadata (#5206)
- Avoid URL parsing when deserializing wheels (#5235)
Bug fixes
- Avoid cache prune failure due to removed interpreter (#5286)
- Avoid including empty extras in resolution (#5306)
- If multiple indices contain the same version, use the first index (#5288)
- Include URLs on graph edges (#5312)
- Match wheel tags against Requires-Python major-minor (#5289)
- Remove Simple API cache files for alternative indexes in cache clean (#5353)
- Remove extraneous are from wheel tag error messages (#5303)
- Allow conflicting prerelease strategies when forking (#5150)
- Use tag error rather than requires-python error for ABI filtering (#5296) |
| 0.2.27 | 20 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add GraalPy support (#5141)
- Add a --verify-hashes hash-checking mode (#4007)
- Discover all python3.x executables in the PATH (#5148)
- Support --link-mode=symlink (#5208)
- Warn about unconstrained direct deps in lowest resolution (#5142)
- Log origin of version selection (#5186)
- Key hash policy on version, rather than package (#5169)
CLI
- Make missing project table a tracing warning (#5194)
- Remove trailing period from user-facing messages (#5218)
Bug fixes
- Make entrypoint writes atomic to avoid overwriting symlinks (#5165)
- Use which-retrieved path directly when spawning pager (#5198)
- Don't apply irrelevant constraints when validating site-packages (#5321)
- Respect local versions for all user requirements (#5232) |
| 0.2.24 | 11 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Add support for 'any' Python requests (#4948)
- Allow constraints to be provided in --upgrade-package (#4952)
- Add manylinux_2_31 to supported --python-platform (#4965)
- Improve marker simplification (#4639)
CLI
- Display short help menu when --help is used (#4772)
- Allow uv help global options during uv help (#4906)
- Use paging for uv help display when available (#4909)
Performance
- Switch to single threaded async runtime (#4934)
Bug fixes
- Avoid AND-ing multi-term specifiers in marker normalization (#4911)
- Avoid inferring package name for GitHub Archives (#4928)
- Retry on connection reset network errors (#4960)
- Apply extra to overrides and constraints (#4829)
Rust API
- Allow uv crate to be used as a library (#4642) |
| 0.2.23 | 9 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นEnhancements
- Update Windows trampoline binaries (#4864)
- Show user-facing warning when falling back to copy installs (#4880)
Bug fixes
- Initialize all --prefix subdirectories (#4895)
- Respect requires-python when prefetching (#4900)
- Partially revert Requires-Python version narrowing (#4902) |
| 0.2.22 | 8 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นCLI
- Add --exclude-newer to installer arguments (#4785)
- Bold durations in CLI messages (#4818)
- Drop crate description from the uv help menu (#4773)
- Update "about" in help menu (#4782)
Configuration
- Add UV_OVERRIDE environment variable for --override (#4836)
Bug fixes
- Always use release-only comparisons for requires-python (#4794)
- Avoid hangs before exiting CLI (#4793)
- Preserve verbatim URLs for --find-links (#4838) |
| 0.2.20 | 2 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
- Fix issue where the standalone installer failed due to a missing uvx binary (#4743)
Install uv 0.2.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.19 | 2 กรกฎาคม 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Please note the standalone installers for this release are broken due to a missing uvx binary from the artifacts. The PyPI distributions are not affected and the artifacts contain a valid uv binary. This problem is resolved in 0.2.20. See #4743 for details.Enhancements
- Indicate when we retried requests during network errors (#4725)
CLI
- Add --disable-pip-version-check to compatibility arguments (#4672)
- Allow uv pip sync to clear an environment with opt-in (#4517)
- Add --invert to uv pip tree (#4621)
- Omit (*) in uv pip tree for empty packages (#4673)
- Add --package to uv pip tree (#4655)
Bug fixes
- Fix bug where git cache did not validate commits correctly (#4698)
- Narrow requires-python requirement in resolver forks (#4707)
- Fix bug when pruning the last package in uv pip tree (#4652)
Install uv 0.2.19
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.18 | 29 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
CLI
- Make --universal and --python-platform mutually exclusive (#4598)
- Add --depth and --prune support to pip tree (#4440)
Bug fixes
- Handle cycles when propagating markers (#4595)
- Ignore py not found errors during interpreter discovery (#4620)
- Merge markers when applying constraints (#4648)
- Retry on spurious failures when caching built wheels (#4605)
- Sort indexes during graph edge removal (#4649)
- Treat Python version as a lower bound in --universal (#4597)
- Fix the incorrect handling of markers in pip tree (#4611)
- Improve toolchain and environment missing error messages (#4596)
Documentation
- Explicitly mention use of seed packages during uv venv --seed (#4588)
Install uv 0.2.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.17 | 26 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Bug fixes
- Avoid enforcing extra-only constraints (#4570)
Install uv 0.2.17
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.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-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.16 | 26 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add a universal resolution mode to uv pip compile with --universal (#4505)
- Add support for --no-strip-markers in uv pip compile output (#4503)
- Add --no-dedupe support to uv pip tree (#4449)
Bug fixes
- Enable more precise environment locking with --prefix (#4506)
- Allow local index references in requirements.txt files (#4525)
- Allow non-file:// paths to serve as --index-url values (#4524)
- Make .egg-info filename parsing spec compliant (#4533)
- Gracefully handle non-existent packages in local indexes (#4545)
- Read content length from response rather than request (#4488)
- Read persistent configuration from non-workspace pyproject.toml (#4526)
- Avoid panic for invalid, non-base index URLs (#4527)
Performance
- Skip submodule update for fresh clones (#4482)
- Use shared client in Git fetch implementation (#4487)
Install uv 0.2.16
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.16
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.15 | 24 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add --emit-build-options flag to uv pip compile interface (#4463)
- Add pythonw support for gui scripts on Windows (#4409)
- Add uv pip tree (#3859)
CLI
- Adjust the docs for the pip CLI commands (#4445)
- Fix casing of --no-compile alias (#4453)
Bug fixes
- Fix ordering of prefer-system toolchain preference (#4441)
- Respect index strategy in source distribution builds (#4468)
Documentation
- Add documentation for using uv in a Docker image (#4433)
Install uv 0.2.15
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.15
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.14 | 24 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Support toolchain requests with platform-tag style Python implementations and version (#4407)
CLI
- Use "Prepared" instead of "Downloaded" in logs (#4394)
Bug fixes
- Treat mismatched directory and file urls as unsatisfied requirements (#4393)
Install uv 0.2.14
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.14
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.13 | 18 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นRelease Notes
Enhancements
- Add resolver tracing logs for when we filter requirements (#4381)
Install uv 0.2.13
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf | sh
Install prebuilt binaries via powershell script
powershell -c "irm | iex"
Download uv 0.2.13
| File | Platform | Checksum |
|--------|----------|----------|
| uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| uv-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum |
| uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum |
| uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum | |
| 0.2.11 | 14 มิถุนายน 2567 | — | 64 บิต ZIP32 บิต ZIP บันทึกประจำรุ่นPreview features
- Add changelog for preview changes (#4251)
- Allow direct URLs for dev dependencies (#4233)
- Create temporary environments in dedicated cache bucket (#4223)
- Improve output when an older toolchain version is already installed (#4248)
- Initial implementation of uv add and uv remove (#4193)
- Refactor project interpreter request for requires-python specifiers (#4216)
- Replace toolchain fetch with toolchain install (#4228)
- Support locking relative paths (#4205)
- Warn when 'requires-python' does not include a lower bound (#4234) |