From 481d05d8dfb8627612dec72840a02c17b926b263 Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Wed, 30 Apr 2025 14:01:58 -0500 Subject: [PATCH] Bump version to 0.7.2 (#13240) --- CHANGELOG.md | 73 ++++++++++++++------------- Cargo.lock | 6 +-- crates/uv-build/Cargo.toml | 2 +- crates/uv-build/pyproject.toml | 2 +- crates/uv-version/Cargo.toml | 2 +- crates/uv/Cargo.toml | 2 +- docs/getting-started/installation.md | 4 +- docs/guides/integration/aws-lambda.md | 4 +- docs/guides/integration/docker.md | 10 ++-- docs/guides/integration/github.md | 2 +- docs/guides/integration/pre-commit.md | 10 ++-- pyproject.toml | 2 +- 12 files changed, 61 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b0f8cc17..6dda1b37a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,20 @@ +## 0.7.2 + +### Enhancements + +- Improve trace log for retryable errors ([#13228](https://github.com/astral-sh/uv/pull/13228)) +- Use "error" instead of "warning" for self-update message ([#13229](https://github.com/astral-sh/uv/pull/13229)) +- Error when `uv version` is used with project-specific flags but no project is found ([#13203](https://github.com/astral-sh/uv/pull/13203)) + +### Bug fixes + +- Fix incorrect virtual environment invalidation for pre-release Python versions ([#13234](https://github.com/astral-sh/uv/pull/13234)) +- Fix patching of `clang` in managed Python sysconfig ([#13237](https://github.com/astral-sh/uv/pull/13237)) +- Respect `--project` in `uv version` ([#13230](https://github.com/astral-sh/uv/pull/13230)) + ## 0.7.1 ### Enhancement @@ -20,11 +34,11 @@ This release contains various changes that improve correctness and user experien ### Breaking changes - **Update `uv version` to display and update project versions ([#12349](https://github.com/astral-sh/uv/pull/12349))** - + Previously, `uv version` displayed uv's version. Now, `uv version` will display or update the project's version. This interface was [heavily requested](https://github.com/astral-sh/uv/issues/6298) and, after much consideration, we decided that transitioning the top-level command was the best option. - + Here's a brief example: - + ```console $ uv init example Initialized project `example` at `./example` @@ -36,82 +50,72 @@ This release contains various changes that improve correctness and user experien $ uv version --short 1.0.0 ``` - + If used outside of a project, uv will fallback to showing its own version still: - + ```console $ 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: - + ```console $ 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](https://github.com/astral-sh/uv/pull/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.: - + ```toml [[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 ` to be available in the Python environment ([#11603](https://github.com/astral-sh/uv/pull/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](https://github.com/astral-sh/uv/pull/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`. - + + 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](https://github.com/astral-sh/uv/pull/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](https://github.com/astral-sh/uv/pull/13022))** - + Python 3.7 is EOL and not formally supported by uv; however, Python 3.7 was previously available for download on a subset of platforms. - - **Reject non-PEP 751 TOML files in install, compile, and export commands ([#13120](https://github.com/astral-sh/uv/pull/13120), [#13119](https://github.com/astral-sh/uv/pull/13119))** - + Previously, uv treated arbitrary `.toml` files passed to commands (e.g., `uv pip install -r foo.toml` or `uv pip compile -o foo.toml`) as `requirements.txt`-formatted files. Now, uv will error instead. If using PEP 751 lockfiles, use the standardized format for custom names instead, e.g., `pylock.foo.toml`. - - **Ignore arbitrary Python requests in version files ([#12909](https://github.com/astral-sh/uv/pull/12909))** - + uv allows arbitrary strings to be used for Python version requests, in which they are treated as an executable name to search for in the `PATH`. However, using this form of request in `.python-version` files is non-standard and conflicts with `pyenv-virtualenv` which writes environment names to `.python-version` files. In this release, uv will now ignore requests that are arbitrary strings when found in `.python-version` files. - - **Error on unknown dependency object specifiers ([12811](https://github.com/astral-sh/uv/pull/12811))** - + The `[dependency-groups]` entries can include "object specifiers", e.g. `set-phasers-to = ...` in: - + ```toml [dependency-groups] foo = ["pyparsing"] bar = [{set-phasers-to = "stun"}] ``` - + However, the only current spec-compliant object specifier is `include-group`. Previously, uv would ignore unknown object specifiers. Now, uv will error. - - **Make `--frozen` and `--no-sources` conflicting options ([#12671](https://github.com/astral-sh/uv/pull/12671))** - + Using `--no-sources` always requires a new resolution and `--frozen` will always fail when used with it. Now, this conflict is encoded in the CLI options for clarity. - - **Treat empty `UV_PYTHON_INSTALL_DIR` and `UV_TOOL_DIR` as unset ([#12907](https://github.com/astral-sh/uv/pull/12907), [#12905](https://github.com/astral-sh/uv/pull/12905))** - + Previously, these variables were treated as set to the current working directory when set to an empty string. Now, uv will ignore these variables when empty. This matches uv's behavior for other environment variables which configure directories. ### Enhancements @@ -137,7 +141,6 @@ This release contains various changes that improve correctness and user experien - Add ROCm example to the PyTorch guide ([#13200](https://github.com/astral-sh/uv/pull/13200)) - Upgrade PyTorch guide to CUDA 12.8 and PyTorch 2.7 ([#13199](https://github.com/astral-sh/uv/pull/13199)) - ## 0.6.x See [changelogs/0.6.x](./changelogs/0.6.x.md) diff --git a/Cargo.lock b/Cargo.lock index 0b38a5f4f..87fabba5c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4572,7 +4572,7 @@ dependencies = [ [[package]] name = "uv" -version = "0.7.1" +version = "0.7.2" dependencies = [ "anstream", "anyhow", @@ -4734,7 +4734,7 @@ dependencies = [ [[package]] name = "uv-build" -version = "0.7.1" +version = "0.7.2" dependencies = [ "anyhow", "uv-build-backend", @@ -5881,7 +5881,7 @@ dependencies = [ [[package]] name = "uv-version" -version = "0.7.1" +version = "0.7.2" [[package]] name = "uv-virtualenv" diff --git a/crates/uv-build/Cargo.toml b/crates/uv-build/Cargo.toml index 0487d1f20..bb2bd0ba1 100644 --- a/crates/uv-build/Cargo.toml +++ b/crates/uv-build/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv-build" -version = "0.7.1" +version = "0.7.2" edition.workspace = true rust-version.workspace = true homepage.workspace = true diff --git a/crates/uv-build/pyproject.toml b/crates/uv-build/pyproject.toml index c30212397..3e5b1565e 100644 --- a/crates/uv-build/pyproject.toml +++ b/crates/uv-build/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "uv-build" -version = "0.7.1" +version = "0.7.2" description = "The uv build backend" authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] requires-python = ">=3.8" diff --git a/crates/uv-version/Cargo.toml b/crates/uv-version/Cargo.toml index d9e029efa..41f52a7e5 100644 --- a/crates/uv-version/Cargo.toml +++ b/crates/uv-version/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv-version" -version = "0.7.1" +version = "0.7.2" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/crates/uv/Cargo.toml b/crates/uv/Cargo.toml index 7c47902bd..fb6ac0266 100644 --- a/crates/uv/Cargo.toml +++ b/crates/uv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv" -version = "0.7.1" +version = "0.7.2" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 3e8faad81..c0c05294a 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -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.7.1/install.sh | sh + $ curl -LsSf https://astral.sh/uv/0.7.2/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: ```console - $ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.7.1/install.ps1 | iex" + $ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.7.2/install.ps1 | iex" ``` !!! tip diff --git a/docs/guides/integration/aws-lambda.md b/docs/guides/integration/aws-lambda.md index f95f50fd0..1e42e27c6 100644 --- a/docs/guides/integration/aws-lambda.md +++ b/docs/guides/integration/aws-lambda.md @@ -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.7.1 AS uv +FROM ghcr.io/astral-sh/uv:0.7.2 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.7.1 AS uv +FROM ghcr.io/astral-sh/uv:0.7.2 AS uv # First, bundle the dependencies into the task root. FROM public.ecr.aws/lambda/python:3.13 AS builder diff --git a/docs/guides/integration/docker.md b/docs/guides/integration/docker.md index 002518a41..c2b4f5931 100644 --- a/docs/guides/integration/docker.md +++ b/docs/guides/integration/docker.md @@ -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.7.1` +- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.7.2` - `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.7` (the latest patch version) @@ -72,7 +72,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.7.1-alpine`. +`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.7.2-alpine`. For more details, see the [GitHub Container](https://github.com/astral-sh/uv/pkgs/container/uv) page. @@ -110,7 +110,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.7.1 /uv /uvx /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ ``` !!! tip @@ -128,7 +128,7 @@ COPY --from=ghcr.io/astral-sh/uv:0.7.1 /uv /uvx /bin/ Or, with the installer: ```dockerfile -ADD https://astral.sh/uv/0.7.1/install.sh /uv-installer.sh +ADD https://astral.sh/uv/0.7.2/install.sh /uv-installer.sh ``` ### Installing a project @@ -554,5 +554,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.7.1`, or (even better) the specific image digest, + version tag, e.g., `ghcr.io/astral-sh/uv:0.7.2`, or (even better) the specific image digest, such as `ghcr.io/astral-sh/uv:0.5.27@sha256:5adf09a5a526f380237408032a9308000d14d5947eafa687ad6c6a2476787b4f`. diff --git a/docs/guides/integration/github.md b/docs/guides/integration/github.md index ff890959b..bfa56fbfe 100644 --- a/docs/guides/integration/github.md +++ b/docs/guides/integration/github.md @@ -47,7 +47,7 @@ jobs: uses: astral-sh/setup-uv@v5 with: # Install a specific version of uv. - version: "0.7.1" + version: "0.7.2" ``` ## Setting up Python diff --git a/docs/guides/integration/pre-commit.md b/docs/guides/integration/pre-commit.md index 9ae402abd..478efe3be 100644 --- a/docs/guides/integration/pre-commit.md +++ b/docs/guides/integration/pre-commit.md @@ -17,7 +17,7 @@ pre-commit, add the following to the `.pre-commit-config.yaml`: repos: - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.7.1 + rev: 0.7.2 hooks: - id: uv-lock ``` @@ -28,7 +28,7 @@ To keep your `requirements.txt` file updated using pre-commit: repos: - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.7.1 + rev: 0.7.2 hooks: - id: uv-export ``` @@ -39,7 +39,7 @@ To compile requirements via pre-commit, add the following to the `.pre-commit-co repos: - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.7.1 + rev: 0.7.2 hooks: # Compile requirements - id: pip-compile @@ -52,7 +52,7 @@ To compile alternative files, modify `args` and `files`: repos: - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.7.1 + rev: 0.7.2 hooks: # Compile requirements - id: pip-compile @@ -66,7 +66,7 @@ To run the hook over multiple files at the same time: repos: - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.7.1 + rev: 0.7.2 hooks: # Compile requirements - id: pip-compile diff --git a/pyproject.toml b/pyproject.toml index 781c85afe..ffa0c9a08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "uv" -version = "0.7.1" +version = "0.7.2" 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"