diff --git a/CHANGELOG.md b/CHANGELOG.md index cd4a862a1..30bdbe67a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # Changelog +## 0.4.27 + +This release includes support for the `[dependency-groups]` table as recently standardized in [PEP 735](https://peps.python.org/pep-0735/). The table allows for declaration of optional dependency groups that are not published as part of the package metadata, unlike `[project.optional-dependencies]`. There are new `--group`, `--only-group`, and `--no-group` options throughout the uv interface. + +Previously, uv used a single `tool.uv.dev-dependencies` list for declaration of development dependencies. Now, uv supports declaring development dependencies in a standardized format and allows splitting development dependencies into multiple groups. + +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. + +Thank you to Stephen Rosen who authored PEP 735. + +### Enhancements + +- Support for PEP 735 ([#8272](https://github.com/astral-sh/uv/pull/8272)) +- Add support for `--dry-run` mode in `uv lock` ([#7783](https://github.com/astral-sh/uv/pull/7783)) +- Don't allow non-string email in authors ([#8520](https://github.com/astral-sh/uv/pull/8520)) +- Enforce lockfile schema versions ([#8509](https://github.com/astral-sh/uv/pull/8509)) + +### Bug fixes + +- Always attach URL to network errors ([#8444](https://github.com/astral-sh/uv/pull/8444)) +- Fix dangling non-platform dependencies in `uv tree` ([#8532](https://github.com/astral-sh/uv/pull/8532)) +- Prefer `lto` over `debug` free-threaded managed Python builds ([#8515](https://github.com/astral-sh/uv/pull/8515)) + +### Documentation + +- Add `tool.uv.sources` to the "Settings" reference ([#8543](https://github.com/astral-sh/uv/pull/8543)) +- Add reference to `uv build` and `uv publish` in the landing pages ([#8542](https://github.com/astral-sh/uv/pull/8542)) +- Avoid duplicate `[tool.uv]` header in TOML examples ([#8545](https://github.com/astral-sh/uv/pull/8545)) +- Document `.netrc` environment variable and path ([#8511](https://github.com/astral-sh/uv/pull/8511)) +- Fix `.netrc` typo in authentication docs ([#8521](https://github.com/astral-sh/uv/pull/8521)) +- Fix heading level of "Script support" on docs landing page ([#8544](https://github.com/astral-sh/uv/pull/8544)) +- Move the installation configuration docs to a separate page ([#8546](https://github.com/astral-sh/uv/pull/8546)) +- Update docs for `--publish-url` to avoid duplication. ([#8561](https://github.com/astral-sh/uv/pull/8561)) +- Fix typo ([#8554](https://github.com/astral-sh/uv/pull/8554)) +- Fix typo in description of `--strict` flag ([#8513](https://github.com/astral-sh/uv/pull/8513)) + ## 0.4.26 ### Enhancements diff --git a/Cargo.lock b/Cargo.lock index c2bab6eeb..bcd2a36ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4139,7 +4139,7 @@ checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" [[package]] name = "uv" -version = "0.4.26" +version = "0.4.27" dependencies = [ "anstream", "anyhow", @@ -5290,7 +5290,7 @@ dependencies = [ [[package]] name = "uv-version" -version = "0.4.26" +version = "0.4.27" [[package]] name = "uv-virtualenv" diff --git a/crates/uv-version/Cargo.toml b/crates/uv-version/Cargo.toml index 1e4997ae6..3dd1f4d87 100644 --- a/crates/uv-version/Cargo.toml +++ b/crates/uv-version/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv-version" -version = "0.4.26" +version = "0.4.27" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/crates/uv/Cargo.toml b/crates/uv/Cargo.toml index a2a8209fc..ec43d3704 100644 --- a/crates/uv/Cargo.toml +++ b/crates/uv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv" -version = "0.4.26" +version = "0.4.27" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/docs/guides/integration/docker.md b/docs/guides/integration/docker.md index 53e3478c0..cdcaf1c87 100644 --- a/docs/guides/integration/docker.md +++ b/docs/guides/integration/docker.md @@ -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: - `ghcr.io/astral-sh/uv:latest` -- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.4.26` +- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.4.27` - `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.4` (the latest patch 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 `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.4.26-alpine`. +`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.4.27-alpine`. For more details, see the [GitHub Container](https://github.com/astral-sh/uv/pkgs/container/uv) 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: ```dockerfile -COPY --from=ghcr.io/astral-sh/uv:0.4.26 /uv /uvx /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.4.27 /uv /uvx /bin/ ``` Or, with the installer: ```dockerfile -ADD https://astral.sh/uv/0.4.26/install.sh /uv-installer.sh +ADD https://astral.sh/uv/0.4.27/install.sh /uv-installer.sh ``` ### Installing a project diff --git a/docs/guides/integration/github.md b/docs/guides/integration/github.md index 580852f8a..45dd5a1d3 100644 --- a/docs/guides/integration/github.md +++ b/docs/guides/integration/github.md @@ -40,7 +40,7 @@ jobs: uses: astral-sh/setup-uv@v3 with: # Install a specific version of uv. - version: "0.4.26" + version: "0.4.27" ``` ## Setting up Python diff --git a/docs/guides/integration/pre-commit.md b/docs/guides/integration/pre-commit.md index d438f48da..7f5f5d02b 100644 --- a/docs/guides/integration/pre-commit.md +++ b/docs/guides/integration/pre-commit.md @@ -8,7 +8,7 @@ To compile requirements via pre-commit, add the following to the `.pre-commit-co ```yaml title=".pre-commit-config.yaml" - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.4.26 + rev: 0.4.27 hooks: # Compile requirements - id: pip-compile @@ -20,7 +20,7 @@ To compile alternative files, modify `args` and `files`: ```yaml title=".pre-commit-config.yaml" - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.4.26 + rev: 0.4.27 hooks: # Compile requirements - id: pip-compile @@ -33,7 +33,7 @@ To run the hook over multiple files at the same time: ```yaml title=".pre-commit-config.yaml" - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.4.26 + rev: 0.4.27 hooks: # Compile requirements - id: pip-compile diff --git a/pyproject.toml b/pyproject.toml index 04042a5de..9b8b525a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "uv" -version = "0.4.26" +version = "0.4.27" 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"