Bump version to 0.9.11 (#16794)

This commit is contained in:
Zanie Blue 2025-11-20 16:24:01 -06:00 committed by GitHub
parent dfe89047bb
commit 4be1e0a83c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 73 additions and 40 deletions

View File

@ -3,6 +3,39 @@
<!-- prettier-ignore-start -->
## 0.9.11
Released on 2025-11-20.
### Python
- Add CPython 3.15.0a2
See the [`python-build-standalone` release notes](https://github.com/astral-sh/python-build-standalone/releases/tag/20251120) for details.
### Enhancements
- Add SBOM support to `uv export` ([#16523](https://github.com/astral-sh/uv/pull/16523))
- Publish to `crates.io` ([#16770](https://github.com/astral-sh/uv/pull/16770))
### Preview features
- Add `uv workspace list --paths` ([#16776](https://github.com/astral-sh/uv/pull/16776))
- Fix the preview warning on `uv workspace dir` ([#16775](https://github.com/astral-sh/uv/pull/16775))
### Bug fixes
- Fix `uv init` author serialization via `toml_edit` inline tables ([#16778](https://github.com/astral-sh/uv/pull/16778))
- Fix status messages without TTY ([#16785](https://github.com/astral-sh/uv/pull/16785))
- Preserve end-of-line comment whitespace when editing `pyproject.toml` ([#16734](https://github.com/astral-sh/uv/pull/16734))
- Disable `always-authenticate` when running under Dependabot ([#16773](https://github.com/astral-sh/uv/pull/16773))
### Documentation
- Document the new behavior for free-threaded python versions ([#16781](https://github.com/astral-sh/uv/pull/16781))
- Improve note about build system in publish guide ([#16788](https://github.com/astral-sh/uv/pull/16788))
- Move do not upload publish note out of the guide into concepts ([#16789](https://github.com/astral-sh/uv/pull/16789))
## 0.9.10
Released on 2025-11-17.
@ -283,25 +316,25 @@ There are no breaking changes to [`uv_build`](https://docs.astral.sh/uv/concepts
### Breaking changes
- **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](https://github.com/astral-sh/uv/pull/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](https://github.com/astral-sh/uv/pull/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](https://hub.docker.com/_/python). 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](https://github.com/astral-sh/uv/pull/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

6
Cargo.lock generated
View File

@ -5376,7 +5376,7 @@ dependencies = [
[[package]]
name = "uv"
version = "0.9.10"
version = "0.9.11"
dependencies = [
"anstream",
"anyhow",
@ -5588,7 +5588,7 @@ dependencies = [
[[package]]
name = "uv-build"
version = "0.9.10"
version = "0.9.11"
dependencies = [
"anstream",
"anyhow",
@ -6888,7 +6888,7 @@ dependencies = [
[[package]]
name = "uv-version"
version = "0.9.10"
version = "0.9.11"
[[package]]
name = "uv-virtualenv"

View File

@ -71,7 +71,7 @@ uv-tool = { version = "0.0.1", path = "crates/uv-tool" }
uv-torch = { version = "0.0.1", path = "crates/uv-torch" }
uv-trampoline-builder = { version = "0.0.1", path = "crates/uv-trampoline-builder" }
uv-types = { version = "0.0.1", path = "crates/uv-types" }
uv-version = { version = "0.9.10", path = "crates/uv-version" }
uv-version = { version = "0.9.11", path = "crates/uv-version" }
uv-virtualenv = { version = "0.0.1", path = "crates/uv-virtualenv" }
uv-warnings = { version = "0.0.1", path = "crates/uv-warnings" }
uv-workspace = { version = "0.0.1", path = "crates/uv-workspace" }

View File

@ -1,6 +1,6 @@
[package]
name = "uv-build"
version = "0.9.10"
version = "0.9.11"
description = "A Python build backend"
edition = { workspace = true }
rust-version = { workspace = true }

View File

@ -1,6 +1,6 @@
[project]
name = "uv-build"
version = "0.9.10"
version = "0.9.11"
description = "The uv build backend"
authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }]
requires-python = ">=3.8"

View File

@ -663,7 +663,7 @@ impl EnvVars {
pub const CONDA_ROOT: &'static str = "_CONDA_ROOT";
/// Used to determine if we're running in Dependabot.
#[attr_added_in("next release")]
#[attr_added_in("0.9.11")]
pub const DEPENDABOT: &'static str = "DEPENDABOT";
/// If set to `1` before a virtual environment is activated, then the

View File

@ -1,6 +1,6 @@
[package]
name = "uv-version"
version = "0.9.10"
version = "0.9.11"
description = "This is a component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }

View File

@ -1,6 +1,6 @@
[package]
name = "uv"
version = "0.9.10"
version = "0.9.11"
description = "A Python package and project manager"
edition = { workspace = true }
rust-version = { workspace = true }

View File

@ -31,7 +31,7 @@ To use uv as a build backend in an existing project, add `uv_build` to the
```toml title="pyproject.toml"
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```

View File

@ -113,7 +113,7 @@ dependencies = []
example-pkg = "example_pkg:main"
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```
@ -136,7 +136,7 @@ dependencies = []
example-pkg = "example_pkg:main"
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```
@ -197,7 +197,7 @@ requires-python = ">=3.11"
dependencies = []
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```

View File

@ -75,7 +75,7 @@ bird-feeder = { workspace = true }
members = ["packages/*"]
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```
@ -106,7 +106,7 @@ tqdm = { git = "https://github.com/tqdm/tqdm" }
members = ["packages/*"]
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```
@ -188,7 +188,7 @@ dependencies = ["bird-feeder", "tqdm>=4,<5"]
bird-feeder = { path = "packages/bird-feeder" }
[build-system]
requires = ["uv_build>=0.9.10,<0.10.0"]
requires = ["uv_build>=0.9.11,<0.10.0"]
build-backend = "uv_build"
```

View File

@ -25,7 +25,7 @@ uv provides a standalone installer to download and install uv:
Request a specific version by including it in the URL:
```console
$ curl -LsSf https://astral.sh/uv/0.9.10/install.sh | sh
$ curl -LsSf https://astral.sh/uv/0.9.11/install.sh | sh
```
=== "Windows"
@ -41,7 +41,7 @@ uv provides a standalone installer to download and install uv:
Request a specific version by including it in the URL:
```pwsh-session
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.9.10/install.ps1 | iex"
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.9.11/install.ps1 | iex"
```
!!! tip

View File

@ -92,7 +92,7 @@ the second stage, we'll copy this directory over to the final image, omitting th
other unnecessary files.
```dockerfile title="Dockerfile"
FROM ghcr.io/astral-sh/uv:0.9.10 AS uv
FROM ghcr.io/astral-sh/uv:0.9.11 AS uv
# First, bundle the dependencies into the task root.
FROM public.ecr.aws/lambda/python:3.13 AS builder
@ -334,7 +334,7 @@ And confirm that opening http://127.0.0.1:8000/ in a web browser displays, "Hell
Finally, we'll update the Dockerfile to include the local library in the deployment package:
```dockerfile title="Dockerfile"
FROM ghcr.io/astral-sh/uv:0.9.10 AS uv
FROM ghcr.io/astral-sh/uv:0.9.11 AS uv
# First, bundle the dependencies into the task root.
FROM public.ecr.aws/lambda/python:3.13 AS builder

View File

@ -31,7 +31,7 @@ $ docker run --rm -it ghcr.io/astral-sh/uv:debian uv --help
The following distroless images are available:
- `ghcr.io/astral-sh/uv:latest`
- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.9.10`
- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.9.11`
- `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.8` (the latest patch
version)
@ -95,7 +95,7 @@ And the following derived images are available:
As with the distroless image, each derived image is published with uv version tags as
`ghcr.io/astral-sh/uv:{major}.{minor}.{patch}-{base}` and
`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.9.10-alpine`.
`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.9.11-alpine`.
In addition, starting with `0.8` each derived image also sets `UV_TOOL_BIN_DIR` to `/usr/local/bin`
to allow `uv tool install` to work as expected with the default user.
@ -136,7 +136,7 @@ Note this requires `curl` to be available.
In either case, it is best practice to pin to a specific uv version, e.g., with:
```dockerfile
COPY --from=ghcr.io/astral-sh/uv:0.9.10 /uv /uvx /bin/
COPY --from=ghcr.io/astral-sh/uv:0.9.11 /uv /uvx /bin/
```
!!! tip
@ -154,7 +154,7 @@ COPY --from=ghcr.io/astral-sh/uv:0.9.10 /uv /uvx /bin/
Or, with the installer:
```dockerfile
ADD https://astral.sh/uv/0.9.10/install.sh /uv-installer.sh
ADD https://astral.sh/uv/0.9.11/install.sh /uv-installer.sh
```
### Installing a project
@ -590,5 +590,5 @@ Verified OK
!!! tip
These examples use `latest`, but best practice is to verify the attestation for a specific
version tag, e.g., `ghcr.io/astral-sh/uv:0.9.10`, or (even better) the specific image digest,
version tag, e.g., `ghcr.io/astral-sh/uv:0.9.11`, or (even better) the specific image digest,
such as `ghcr.io/astral-sh/uv:0.5.27@sha256:5adf09a5a526f380237408032a9308000d14d5947eafa687ad6c6a2476787b4f`.

View File

@ -47,7 +47,7 @@ jobs:
uses: astral-sh/setup-uv@v6
with:
# Install a specific version of uv.
version: "0.9.10"
version: "0.9.11"
```
## Setting up Python

View File

@ -19,7 +19,7 @@ To make sure your `uv.lock` file is up to date even if your `pyproject.toml` fil
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.9.10
rev: 0.9.11
hooks:
- id: uv-lock
```
@ -30,7 +30,7 @@ To keep a `requirements.txt` file in sync with your `uv.lock` file:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.9.10
rev: 0.9.11
hooks:
- id: uv-export
```
@ -41,7 +41,7 @@ To compile requirements files:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.9.10
rev: 0.9.11
hooks:
# Compile requirements
- id: pip-compile
@ -54,7 +54,7 @@ To compile alternative requirements files, modify `args` and `files`:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.9.10
rev: 0.9.11
hooks:
# Compile requirements
- id: pip-compile
@ -68,7 +68,7 @@ To run the hook over multiple files at the same time, add additional entries:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.9.10
rev: 0.9.11
hooks:
# Compile requirements
- id: pip-compile

View File

@ -792,7 +792,7 @@ Used to determine the name of the active Conda environment.
Used to detect the path of an active Conda environment.
### `DEPENDABOT`
<small class="added-in">added in `next release`</small>
<small class="added-in">added in `0.9.11`</small>
Used to determine if we're running in Dependabot.

View File

@ -4,7 +4,7 @@ build-backend = "maturin"
[project]
name = "uv"
version = "0.9.10"
version = "0.9.11"
description = "An extremely fast Python package and project manager, written in Rust."
authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }]
requires-python = ">=3.8"

View File

@ -6,7 +6,7 @@
# root `Cargo.toml` to match.
# /// script
# requires-python = ">=3.14"
# requires-python = ">=3.13"
# dependencies = []
# ///