diff --git a/CHANGELOG.md b/CHANGELOG.md index d9b780d05..7e7927051 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,54 @@ # Changelog +## 0.4.21 + +### Enhancements + +- Add support for managed installations of free-threaded Python ([#8100](https://github.com/astral-sh/uv/pull/8100)) +- Add note about `uvx` to `uv tool run` short help ([#7695](https://github.com/astral-sh/uv/pull/7695)) +- Enable HTTP/2 requests ([#8049](https://github.com/astral-sh/uv/pull/8049)) +- Support `uv tree --no-dev` ([#8109](https://github.com/astral-sh/uv/pull/8109)) +- Support PEP 723 metadata with `uv run -` ([#8111](https://github.com/astral-sh/uv/pull/8111)) +- Support `pip install --exact` ([#8044](https://github.com/astral-sh/uv/pull/8044)) +- Support `uv export --no-header` ([#8096](https://github.com/astral-sh/uv/pull/8096)) +- ADd Python 3.13 images to Docker publish ([#8105](https://github.com/astral-sh/uv/pull/8105)) +- Support remote (`https://`) scripts in `uv run` ([#6375](https://github.com/astral-sh/uv/pull/6375)) +- Allow comma value-delimited arguments in `uv run --with` ([#7909](https://github.com/astral-sh/uv/pull/7909)) + +### Configuration + +- Support wildcards in `UV_INSECURE_HOST` ([#8052](https://github.com/astral-sh/uv/pull/8052)) + +### Performance + +- Use shared index when fetching metadata in lock satisfaction routine ([#8147](https://github.com/astral-sh/uv/pull/8147)) + +### Bug fixes + +- Add prerelease compatibility check to `uv python` CLI ([#8020](https://github.com/astral-sh/uv/pull/8020)) +- Avoid deleting a project environment directory if we cannot tell if a `pyvenv.cfg` file exists ([#8012](https://github.com/astral-sh/uv/pull/8012)) +- Avoid excluding valid wheels for exact `requires-python` bounds ([#8140](https://github.com/astral-sh/uv/pull/8140)) +- Bump `netrc` crate to latest commit ([#8021](https://github.com/astral-sh/uv/pull/8021)) +- Fix `uv python pin 3.13t` failure when parsing version for project requires check ([#8056](https://github.com/astral-sh/uv/pull/8056)) +- Fix handling of != intersections in `requires-python` ([#7897](https://github.com/astral-sh/uv/pull/7897)) +- Remove the newly created tool environment if sync failed ([#8038](https://github.com/astral-sh/uv/pull/8038)) +- Respect dynamic extras in `uv lock` and `uv sync` ([#8091](https://github.com/astral-sh/uv/pull/8091)) +- Treat resolver failures as fatal in lockfile validation ([#8083](https://github.com/astral-sh/uv/pull/8083)) +- Use `git config --get` for author information for improved backwards compatibility ([#8101](https://github.com/astral-sh/uv/pull/8101)) +- Use comma-separated values for `UV_FIND_LINKS` ([#8061](https://github.com/astral-sh/uv/pull/8061)) +- Use shared resolver state between add and lock to avoid double Git update ([#8146](https://github.com/astral-sh/uv/pull/8146)) +- Make `--relocatable` entrypoints robust to symlinking ([#8079](https://github.com/astral-sh/uv/pull/8079)) +- Improve compatibility with VSCode PS1 prompt ([#8006](https://github.com/astral-sh/uv/pull/8006)) +- Fix "Stream did not contain valid UTF-8" failures in Windows ([#8120](https://github.com/astral-sh/uv/pull/8120)) +- Use `--with-requirements` in `uvx` error hint ([#8112](https://github.com/astral-sh/uv/pull/8112)) + +### Documentation + +- Include `uvx` installation in Docker examples ([#8179](https://github.com/astral-sh/uv/pull/8179)) +- Make the instructions for the Windows standalone installer consistent across README and documentation ([#8125](https://github.com/astral-sh/uv/pull/8125)) +- Update pip compatibility guide to note transitive URL dependency support ([#8081](https://github.com/astral-sh/uv/pull/8081)) +- Document `--reinstall` with `--exclude-newer` to ensure downgrades ([#6721](https://github.com/astral-sh/uv/pull/6721)) + ## 0.4.20 ### Enhancements diff --git a/Cargo.lock b/Cargo.lock index 712b59a8e..d73f83675 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4096,7 +4096,7 @@ checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" [[package]] name = "uv" -version = "0.4.20" +version = "0.4.21" dependencies = [ "anstream", "anyhow", @@ -5210,7 +5210,7 @@ dependencies = [ [[package]] name = "uv-version" -version = "0.4.20" +version = "0.4.21" [[package]] name = "uv-virtualenv" diff --git a/crates/uv-build-backend/src/tests.rs b/crates/uv-build-backend/src/tests.rs index c27bd04ad..b5818aa6d 100644 --- a/crates/uv-build-backend/src/tests.rs +++ b/crates/uv-build-backend/src/tests.rs @@ -117,10 +117,10 @@ fn test_prepare_metadata() { .path() .join("uv_backend-0.1.0.dist-info/RECORD"); assert_snapshot!(fs_err::read_to_string(record_file).unwrap(), @r###" - uv_backend-0.1.0.dist-info/WHEEL,sha256=70ce44709b6a53e0d0c5a6755b0290179697020f1f867e794f26154fe4825738,79 - uv_backend-0.1.0.dist-info/METADATA,sha256=e4a0d390317d7182f65ea978254c71ed283e0a4242150cf1c99a694b113ff68d,224 - uv_backend-0.1.0.dist-info/RECORD,, - "###); + uv_backend-0.1.0.dist-info/WHEEL,sha256=1889a32410898a395359e85de53e3063be35d9113130eaf23659cb84740c0c6c,79 + uv_backend-0.1.0.dist-info/METADATA,sha256=e4a0d390317d7182f65ea978254c71ed283e0a4242150cf1c99a694b113ff68d,224 + uv_backend-0.1.0.dist-info/RECORD,, + "###); let wheel_file = metadata_dir.path().join("uv_backend-0.1.0.dist-info/WHEEL"); let filters = vec![(uv_version::version(), "[VERSION]")]; diff --git a/crates/uv-version/Cargo.toml b/crates/uv-version/Cargo.toml index 2553673e5..c988a7262 100644 --- a/crates/uv-version/Cargo.toml +++ b/crates/uv-version/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv-version" -version = "0.4.20" +version = "0.4.21" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/crates/uv/Cargo.toml b/crates/uv/Cargo.toml index fd7a8443a..c75189b30 100644 --- a/crates/uv/Cargo.toml +++ b/crates/uv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv" -version = "0.4.20" +version = "0.4.21" 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 93586161c..ef4cfcf06 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.20` +- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.4.21` - `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.20-alpine`. +`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.4.21-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.20 /uv /uvx /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.4.21 /uv /uvx /bin/ ``` Or, with the installer: ```dockerfile -ADD https://astral.sh/uv/0.4.20/install.sh /uv-installer.sh +ADD https://astral.sh/uv/0.4.21/install.sh /uv-installer.sh ``` ### Installing a project diff --git a/docs/guides/integration/github.md b/docs/guides/integration/github.md index 2c6d4e566..2b778233d 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.20" + version: "0.4.21" ``` ## Setting up Python diff --git a/docs/guides/integration/pre-commit.md b/docs/guides/integration/pre-commit.md index 30809bb59..c1da11d55 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.20 + rev: 0.4.21 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.20 + rev: 0.4.21 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.20 + rev: 0.4.21 hooks: # Compile requirements - id: pip-compile diff --git a/pyproject.toml b/pyproject.toml index 3b42c22ed..de250b59b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "uv" -version = "0.4.20" +version = "0.4.21" 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"