Skip to content

Commit a6042f6

Browse files
authored
Bump version to 0.11.1 (#18704)
1 parent bf28f89 commit a6042f6

144 files changed

Lines changed: 414 additions & 401 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 67 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,23 @@
33
<!-- prettier-ignore-start -->
44

55

6+
## 0.11.1
7+
8+
Released on 2026-03-24.
9+
10+
### Bug fixes
11+
12+
- Add missing hash verification for `riscv64gc-unknown-linux-musl` ([#18686](https://github.com/astral-sh/uv/pull/18686))
13+
- Fallback to direct download when direct URL streaming is unsupported ([#18688](https://github.com/astral-sh/uv/pull/18688))
14+
- Revert treating 'Dynamic' values as case-insensitive ([#18692](https://github.com/astral-sh/uv/pull/18692))
15+
- Remove torchdata from list of packages to source from the PyTorch index ([#18703](https://github.com/astral-sh/uv/pull/18703))
16+
- Special-case `==` Python version request ranges ([#9697](https://github.com/astral-sh/uv/pull/9697))
17+
18+
### Documentation
19+
20+
- Cover `--python <dir>` in "Using arbitrary Python environments" ([#6457](https://github.com/astral-sh/uv/pull/6457))
21+
- Fix version annotations for `PS_MODULE_PATH` and `UV_WORKING_DIR` ([#18691](https://github.com/astral-sh/uv/pull/18691))
22+
623
## 0.11.0
724

825
Released on 2026-03-23.
@@ -16,33 +33,29 @@ The changes are largely driven by the upgrade of reqwest, which powers uv's HTTP
1633
The following changes are included:
1734

1835
- [`rustls-platform-verifier`](https://github.com/rustls/rustls-platform-verifier) is used instead of [`rustls-native-certs`](https://github.com/rustls/rustls-native-certs) and [`webpki`](https://github.com/rustls/webpki) for certificate verification
19-
20-
**This change should have no effect unless you are using the `native-tls` option to enable reading system certificates.**
21-
22-
`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.
23-
24-
In particular, because more responsibility for validating the certificate is transferred to your system's security library, some features like [CA constraints](https://support.apple.com/en-us/103255) or [revocation of certificates](https://en.wikipedia.org/wiki/Certificate_revocation) via OCSP and CRLs may now be used.
25-
26-
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.
27-
36+
37+
**This change should have no effect unless you are using the `native-tls` option to enable reading system certificates.**
38+
39+
`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.
40+
41+
In particular, because more responsibility for validating the certificate is transferred to your system's security library, some features like [CA constraints](https://support.apple.com/en-us/103255) or [revocation of certificates](https://en.wikipedia.org/wiki/Certificate_revocation) via OCSP and CRLs may now be used.
42+
43+
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.
2844
- [`aws-lc`](https://github.com/aws/aws-lc) is used instead of `ring` for a cryptography backend
29-
30-
There should not be breaking changes from this change. We expect this to expand support for certificate signature algorithms.
31-
45+
46+
There should not be breaking changes from this change. We expect this to expand support for certificate signature algorithms.
3247
- `--native-tls` is deprecated in favor of a new `--system-certs` flag
33-
34-
The `--native-tls` flag is still usable and has identical behavior to `--system-certs.`
35-
36-
This change was made to reduce confusion about the TLS implementation uv uses. uv always uses `rustls` not `native-tls`.
37-
48+
49+
The `--native-tls` flag is still usable and has identical behavior to `--system-certs.`
50+
51+
This change was made to reduce confusion about the TLS implementation uv uses. uv always uses `rustls` not `native-tls`.
3852
- Building uv on x86-64 and i686 Windows requires NASM
39-
40-
NASM is required by `aws-lc`. If not found on the system, a prebuilt blob provided by `aws-lc-sys` will be used.
41-
42-
If you are not building uv from source, this change has no effect.
43-
44-
See the [CONTRIBUTING](https://github.com/astral-sh/uv/blob/b6854d77bfd0cb78157fecaf8b30126c6f16bc11/CONTRIBUTING.md#setup) guide for details.
45-
53+
54+
NASM is required by `aws-lc`. If not found on the system, a prebuilt blob provided by `aws-lc-sys` will be used.
55+
56+
If you are not building uv from source, this change has no effect.
57+
58+
See the [CONTRIBUTING](https://github.com/astral-sh/uv/blob/b6854d77bfd0cb78157fecaf8b30126c6f16bc11/CONTRIBUTING.md#setup) guide for details.
4659
- Empty `SSL_CERT_FILE` values are ignored (for consistency with `SSL_CERT_DIR`)
4760

4861
See [#18550](https://github.com/astral-sh/uv/pull/18550) for details.
@@ -407,86 +420,86 @@ There are no breaking changes to [`uv_build`](https://docs.astral.sh/uv/concepts
407420
### Breaking changes
408421

409422
- **Require `--clear` to remove existing virtual environments in `uv venv`** ([#17757](https://github.com/astral-sh/uv/pull/17757))
410-
423+
411424
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](https://github.com/astral-sh/uv/blob/main/changelogs/0.8.x.md#breaking-changes).
412-
425+
413426
You can opt out of this behavior by passing the `--clear` flag or setting `UV_VENV_CLEAR=1`.
414427
- **Error if multiple indexes include `default = true`** ([#17011](https://github.com/astral-sh/uv/pull/17011))
415-
428+
416429
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.
417-
430+
418431
You cannot opt out of this behavior. Remove `default = true` from all but one index.
419432
- **Error when an `explicit` index is unnamed** ([#17777](https://github.com/astral-sh/uv/pull/17777))
420-
433+
421434
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.
422-
435+
423436
You cannot opt out of this behavior. Add a `name` to the explicit index or remove the entry.
424437
- **Install alternative Python executables using their implementation name** ([#17756](https://github.com/astral-sh/uv/pull/17756), [#17760](https://github.com/astral-sh/uv/pull/17760))
425-
438+
426439
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.
427-
440+
428441
You cannot opt out of this behavior.
429442
- **Respect global Python version pins in `uv tool run` and `uv tool install`** ([#14112](https://github.com/astral-sh/uv/pull/14112))
430-
443+
431444
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.
432-
445+
433446
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.
434-
447+
435448
You can opt out of this behavior by providing an explicit `--python` flag.
436449
- **Remove Debian Bookworm, Alpine 3.21, and Python 3.8 Docker images** ([#17755](https://github.com/astral-sh/uv/pull/17755))
437-
450+
438451
The Debian Bookworm and Alpine 3.21 images were replaced by Debian Trixie and Alpine 3.22 as defaults in [uv 0.9](https://github.com/astral-sh/uv/pull/15352). 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.
439-
452+
440453
The following image tags are no longer published:
441454
- `uv:bookworm`, `uv:bookworm-slim`
442455
- `uv:alpine3.21`
443456
- `uv:python3.8-*`
444-
457+
445458
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-*`.
446459
- **Drop PPC64 (big endian) builds** ([#17626](https://github.com/astral-sh/uv/pull/17626))
447-
460+
448461
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.
449-
462+
450463
Building uv from source is still supported for this platform.
451464
- **Skip generating `activate.csh` for relocatable virtual environments** ([#17759](https://github.com/astral-sh/uv/pull/17759))
452-
465+
453466
Previously, `uv venv --relocatable` would generate an `activate.csh` script that contained hardcoded paths, making it incompatible with relocation. Now, the `activate.csh` script is not generated for relocatable virtual environments.
454-
467+
455468
You cannot opt out of this behavior.
456469
- **Require username when multiple credentials match a URL** ([#16983](https://github.com/astral-sh/uv/pull/16983))
457-
470+
458471
When using `uv auth login` to store credentials, you can register multiple username and password combinations for the same host. Previously, when uv needed to authenticate and multiple credentials matched the URL (e.g., when retrieving a token with `uv auth token`), uv would pick the first match. Now, uv will error instead.
459-
472+
460473
You cannot opt out of this behavior. Include the username in the request, e.g., `uv auth token --username foo example.com`.
461474
- **Avoid invalidating the lockfile versions after an `exclude-newer` change** ([#17721](https://github.com/astral-sh/uv/pull/17721))
462-
475+
463476
Previously, changing the `exclude-newer` setting would cause package versions to be upgraded, ignoring the lockfile entirely. Now, uv will only change package versions if they are no longer within the `exclude-newer` range.
464-
477+
465478
You can restore the previous behavior by using `--upgrade` or `--upgrade-package` to opt-in to package version changes.
466479
- **Upgrade `uv format` to Ruff 0.15.0** ([#17838](https://github.com/astral-sh/uv/pull/17838))
467-
480+
468481
`uv format` now uses [Ruff 0.15.0](https://github.com/astral-sh/ruff/releases/tag/0.15.0), which uses the [2026 style guide](https://astral.sh/blog/ruff-v0.15.0#the-ruff-2026-style-guide). See the blog post for details.
469-
482+
470483
The formatting of code is likely to change. You can opt out of this behavior by requesting an older Ruff version, e.g., `uv format --version 0.14.14`.
471484
- **Update uv crate test features to use `test-` as a prefix** ([#17860](https://github.com/astral-sh/uv/pull/17860))
472-
485+
473486
This change only affects redistributors of uv. The Cargo features used to gate test dependencies, e.g., `pypi`, have been renamed with a `test-` prefix for clarity, e.g., `test-pypi`.
474487

475488
### Stabilizations
476489

477490
- **`uv python upgrade` and `uv python install --upgrade`** ([#17766](https://github.com/astral-sh/uv/pull/17766))
478-
491+
479492
When installing Python versions, an [intermediary directory](https://docs.astral.sh/uv/concepts/python-versions/#minor-version-directories) without the patch version attached will be created, and virtual environments will be transparently upgraded to new patch versions.
480-
493+
481494
See the [Python version documentation](https://docs.astral.sh/uv/concepts/python-versions/#upgrading-python-versions) for more details.
482495
- **`uv add --bounds` and the `add-bounds` configuration option** ([#17660](https://github.com/astral-sh/uv/pull/17660))
483-
496+
484497
This does not come with any behavior changes. You will no longer see an experimental warning when using `uv add --bounds` or `add-bounds` in configuration.
485498
- **`uv workspace list` and `uv workspace dir`** ([#17768](https://github.com/astral-sh/uv/pull/17768))
486-
499+
487500
This does not come with any behavior changes. You will no longer see an experimental warning when using these commands.
488501
- **`extra-build-dependencies`** ([#17767](https://github.com/astral-sh/uv/pull/17767))
489-
502+
490503
This does not come with any behavior changes. You will no longer see an experimental warning when using `extra-build-dependencies` in configuration.
491504

492505
### Enhancements

0 commit comments

Comments
 (0)