0.4.23
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 = trueTo 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 --indexor--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
--indexand--default-indexvalues intool.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-pythonwarnings (#8240) - Show hint in resolution failure on
Forbidden(403) orUnauthorized(401) (#8264) - Update to latest
cargo-distversion (includes new installer features) (#8270) - Warn when patch version in
requires-pythonis implicitly0(#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 buildsources (#8237) - Narrow what the pip3. logic drops from entry points. (#8273)
Documentation
- Add some additional notes to
--index-urldocs (#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 | shInstall 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.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 |