Bump version to v0.5.3 (#9229)

This commit is contained in:
Charlie Marsh 2024-11-19 13:53:54 -05:00 committed by GitHub
parent dae630ae50
commit 56d3622087
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 94 additions and 17 deletions

View File

@ -1,5 +1,82 @@
# Changelog # Changelog
## 0.5.3
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:
```toml
[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](https://docs.astral.sh/uv/guides/integration/pytorch/) documentation for more.
### Enhancements
- Allow conflicting extras in explicit index assignments ([#9160](https://github.com/astral-sh/uv/pull/9160))
- Support overrides and constraints in PEP 723 scripts ([#9162](https://github.com/astral-sh/uv/pull/9162))
- Update `uv tool install --force` to imply `--reinstall-package <name>` ([#9074](https://github.com/astral-sh/uv/pull/9074))
- Turn `--verify-hashes` on by default ([#9170](https://github.com/astral-sh/uv/pull/9170))
### Performance
- Enable `zlib-rs` on all platforms ([#9202](https://github.com/astral-sh/uv/pull/9202))
### Bug fixes
- Allow apostrophe in virtual environment name ([#8984](https://github.com/astral-sh/uv/pull/8984))
- Automatically retry body errors when processing response ([#9213](https://github.com/astral-sh/uv/pull/9213))
- Detect nested workspace inside the current workspace and members with identical names ([#9094](https://github.com/astral-sh/uv/pull/9094))
- Only install the specified project with `--frozen --package` in legacy non-`[project]` workspaces ([#9215](https://github.com/astral-sh/uv/pull/9215))
- Respect `[[tool.uv.index]]` in PEP 723 scripts ([#9208](https://github.com/astral-sh/uv/pull/9208))
- Show derivation markers for resolutions with project name ([#9136](https://github.com/astral-sh/uv/pull/9136))
- Sort distributions when computing hash ([#9185](https://github.com/astral-sh/uv/pull/9185))
- Include trampolines in source distributions on Windows ([#9172](https://github.com/astral-sh/uv/pull/9172))
### Documentation
- Add `--index <name>=<url>` syntax to index documentation ([#9139](https://github.com/astral-sh/uv/pull/9139))
- Add documentation for using uv with PyTorch ([#9210](https://github.com/astral-sh/uv/pull/9210))
### Error messages
- Add a dedicated error for `include = "dev"` with `tool.uv.dev-dependencies` ([#9173](https://github.com/astral-sh/uv/pull/9173))
- Avoid showing disjoint marker error with `true` ([#9169](https://github.com/astral-sh/uv/pull/9169))
- Improve error message when `git` is not found ([#9206](https://github.com/astral-sh/uv/pull/9206))
- Include extras and dependency groups in derivation chains ([#9113](https://github.com/astral-sh/uv/pull/9113))
- Include version constraints in derivation chains ([#9112](https://github.com/astral-sh/uv/pull/9112))
## 0.5.2 ## 0.5.2
### Enhancements ### Enhancements
@ -256,7 +333,7 @@ Previously, uv used a single `tool.uv.dev-dependencies` list for declaration of
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. 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. uv syncs the `dev` group by default — this matches the existing 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. Thank you to Stephen Rosen who authored PEP 735.

4
Cargo.lock generated
View File

@ -4394,7 +4394,7 @@ checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"
[[package]] [[package]]
name = "uv" name = "uv"
version = "0.5.2" version = "0.5.3"
dependencies = [ dependencies = [
"anstream", "anstream",
"anyhow", "anyhow",
@ -5586,7 +5586,7 @@ dependencies = [
[[package]] [[package]]
name = "uv-version" name = "uv-version"
version = "0.5.2" version = "0.5.3"
[[package]] [[package]]
name = "uv-virtualenv" name = "uv-virtualenv"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "uv-version" name = "uv-version"
version = "0.5.2" version = "0.5.3"
edition = { workspace = true } edition = { workspace = true }
rust-version = { workspace = true } rust-version = { workspace = true }
homepage = { workspace = true } homepage = { workspace = true }

View File

@ -1,6 +1,6 @@
[package] [package]
name = "uv" name = "uv"
version = "0.5.2" version = "0.5.3"
edition = { workspace = true } edition = { workspace = true }
rust-version = { workspace = true } rust-version = { workspace = true }
homepage = { workspace = true } homepage = { workspace = true }

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: Request a specific version by including it in the URL:
```console ```console
$ curl -LsSf https://astral.sh/uv/0.5.2/install.sh | sh $ curl -LsSf https://astral.sh/uv/0.5.3/install.sh | sh
``` ```
=== "Windows" === "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: Request a specific version by including it in the URL:
```console ```console
$ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.5.2/install.ps1 | iex" $ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.5.3/install.ps1 | iex"
``` ```
!!! tip !!! tip
@ -217,7 +217,7 @@ If you need to remove uv from your system, just remove the `uv` and `uvx` binari
!!! note !!! note
Prior to 0.5.2, uv was installed into `~/.cargo/bin`. The binaries can be removed from there to Prior to 0.5.3, uv was installed into `~/.cargo/bin`. The binaries can be removed from there to
uninstall. Upgrading from an older version will not automatically remove the binaries from uninstall. Upgrading from an older version will not automatically remove the binaries from
`~/.cargo/bin`. `~/.cargo/bin`.

View File

@ -21,7 +21,7 @@ $ docker run ghcr.io/astral-sh/uv --help
uv provides a distroless Docker image including the `uv` binary. The following tags are published: uv provides a distroless Docker image including the `uv` binary. The following tags are published:
- `ghcr.io/astral-sh/uv:latest` - `ghcr.io/astral-sh/uv:latest`
- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.5.2` - `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.5.3`
- `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.5` (the latest patch - `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.5` (the latest patch
version) version)
@ -62,7 +62,7 @@ In addition, uv publishes the following images:
As with the distroless image, each image is published with uv version tags as As with the distroless image, each 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}.{patch}-{base}` and
`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.5.2-alpine`. `ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.5.3-alpine`.
For more details, see the [GitHub Container](https://github.com/astral-sh/uv/pkgs/container/uv) For more details, see the [GitHub Container](https://github.com/astral-sh/uv/pkgs/container/uv)
page. page.
@ -100,13 +100,13 @@ Note this requires `curl` to be available.
In either case, it is best practice to pin to a specific uv version, e.g., with: In either case, it is best practice to pin to a specific uv version, e.g., with:
```dockerfile ```dockerfile
COPY --from=ghcr.io/astral-sh/uv:0.5.2 /uv /uvx /bin/ COPY --from=ghcr.io/astral-sh/uv:0.5.3 /uv /uvx /bin/
``` ```
Or, with the installer: Or, with the installer:
```dockerfile ```dockerfile
ADD https://astral.sh/uv/0.5.2/install.sh /uv-installer.sh ADD https://astral.sh/uv/0.5.3/install.sh /uv-installer.sh
``` ```
### Installing a project ### Installing a project

View File

@ -40,7 +40,7 @@ jobs:
uses: astral-sh/setup-uv@v3 uses: astral-sh/setup-uv@v3
with: with:
# Install a specific version of uv. # Install a specific version of uv.
version: "0.5.2" version: "0.5.3"
``` ```
## Setting up Python ## Setting up Python

View File

@ -8,7 +8,7 @@ To compile requirements via pre-commit, add the following to the `.pre-commit-co
```yaml title=".pre-commit-config.yaml" ```yaml title=".pre-commit-config.yaml"
- repo: https://github.com/astral-sh/uv-pre-commit - repo: https://github.com/astral-sh/uv-pre-commit
# uv version. # uv version.
rev: 0.5.2 rev: 0.5.3
hooks: hooks:
# Compile requirements # Compile requirements
- id: pip-compile - id: pip-compile
@ -20,7 +20,7 @@ To compile alternative files, modify `args` and `files`:
```yaml title=".pre-commit-config.yaml" ```yaml title=".pre-commit-config.yaml"
- repo: https://github.com/astral-sh/uv-pre-commit - repo: https://github.com/astral-sh/uv-pre-commit
# uv version. # uv version.
rev: 0.5.2 rev: 0.5.3
hooks: hooks:
# Compile requirements # Compile requirements
- id: pip-compile - id: pip-compile
@ -33,7 +33,7 @@ To run the hook over multiple files at the same time:
```yaml title=".pre-commit-config.yaml" ```yaml title=".pre-commit-config.yaml"
- repo: https://github.com/astral-sh/uv-pre-commit - repo: https://github.com/astral-sh/uv-pre-commit
# uv version. # uv version.
rev: 0.5.2 rev: 0.5.3
hooks: hooks:
# Compile requirements # Compile requirements
- id: pip-compile - id: pip-compile

View File

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