From e2f400adbea40d08c0d31a73b2297010ed468f60 Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Mon, 21 Apr 2025 19:03:33 -0500 Subject: [PATCH] Bump version to 0.6.15 (#13034) Co-authored-by: Charlie Marsh --- CHANGELOG.md | 73 ++++++++++++++++++++++++++- Cargo.lock | 6 +-- crates/uv-build/Cargo.toml | 2 +- crates/uv-build/pyproject.toml | 2 +- crates/uv-publish/src/lib.rs | 4 +- crates/uv-version/Cargo.toml | 2 +- crates/uv/Cargo.toml | 2 +- docs/concepts/projects/layout.md | 24 ++++++--- 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 | 3 +- 14 files changed, 114 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07e562397..88aee5e5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,78 @@ +## 0.6.15 + +This release includes preliminary support for the `pylock.toml` file format, as standardized in [PEP 751](https://peps.python.org/pep-0751/). `pylock.toml` is an alternative resolution output format intended to replace `requirements.txt` (e.g., in the context of `uv pip compile`, whereby a "locked" `requirements.txt` file is generated from a set of input requirements). `pylock.toml` is standardized and tool-agnostic, such that in the future, `pylock.toml` files generated by uv could be installed by other tools, and vice versa. + +As of this release, `pylock.toml` is supported in the following commands: + +- To export a `uv.lock` to the `pylock.toml` format, run: `uv export -o pylock.toml` +- To generate a `pylock.toml` file from a set of requirements, run: `uv pip compile -o pylock.toml -r requirements.in` +- To install from a `pylock.toml` file, run: `uv pip sync pylock.toml` or `uv pip install -r pylock.toml` + +### Enhancements + +- Add PEP 751 support to `uv pip compile` ([#13019](https://github.com/astral-sh/uv/pull/13019)) +- Add `uv export` support for PEP 751 ([#12955](https://github.com/astral-sh/uv/pull/12955)) +- Accept `requirements.txt` (verbatim) as a format on the CLI ([#12957](https://github.com/astral-sh/uv/pull/12957)) +- Add `UV_NO_EDITABLE` environment variable to set `--no-editable` on all invocations ([#12773](https://github.com/astral-sh/uv/pull/12773)) +- Add `pylock.toml` to `uv pip install` and `uv pip sync` ([#12992](https://github.com/astral-sh/uv/pull/12992)) +- Add a brief sleep before sending `SIGINT` to child processes ([#13018](https://github.com/astral-sh/uv/pull/13018)) +- Add upload time to `uv.lock` ([#12968](https://github.com/astral-sh/uv/pull/12968)) +- Allow updating Git sources by name ([#12897](https://github.com/astral-sh/uv/pull/12897)) +- Cache `which git` in `uv init` ([#12893](https://github.com/astral-sh/uv/pull/12893)) +- Enable `--dry-run` with `--locked` / `--frozen` for `uv sync` ([#12778](https://github.com/astral-sh/uv/pull/12778)) +- Infer output type in `uv export` ([#12958](https://github.com/astral-sh/uv/pull/12958)) +- Make `uv init` resilient against broken git ([#12895](https://github.com/astral-sh/uv/pull/12895)) +- Respect build constraints for `uv run --with` dependencies ([#12882](https://github.com/astral-sh/uv/pull/12882)) +- Split UV_INDEX on all whitespace ([#12820](https://github.com/astral-sh/uv/pull/12820)) +- Support build constraints in `uv tool` and PEP723 scripts. ([#12842](https://github.com/astral-sh/uv/pull/12842)) +- Use suffix from `uvx` binary when searching for uv binary ([#12923](https://github.com/astral-sh/uv/pull/12923)) +- Update version formatting to use cyan color ([#12943](https://github.com/astral-sh/uv/pull/12943)) +- Add debug logs for version file search ([#12951](https://github.com/astral-sh/uv/pull/12951)) +- Fix `SourceNotAllowed` error message during Python discovery ([#13012](https://github.com/astral-sh/uv/pull/13012)) +- Obfuscate password in credentials debug messages ([#12944](https://github.com/astral-sh/uv/pull/12944)) +- Obfuscate possible tokens in URL logs ([#12969](https://github.com/astral-sh/uv/pull/12969)) +- Validate that PEP 751 entries don't include multiple sources ([#12993](https://github.com/astral-sh/uv/pull/12993)) + +### Preview features + +- Build backend: Add reference docs and schema ([#12803](https://github.com/astral-sh/uv/pull/12803)) + +### Bug fixes + +- Align supported `config-settings` with example in docs ([#12947](https://github.com/astral-sh/uv/pull/12947)) +- Ensure virtual environment is compatible with interpreter on sync ([#12884](https://github.com/astral-sh/uv/pull/12884)) +- Fix `PythonDownloadRequest` parsing for partial keys ([#12925](https://github.com/astral-sh/uv/pull/12925)) +- Fix pre-release exclusive comparison operator in `uv-pep440` ([#12836](https://github.com/astral-sh/uv/pull/12836)) +- Forward additional signals to the child process in `uv run` ([#13017](https://github.com/astral-sh/uv/pull/13017)) +- Omit PEP 751 version for source trees ([#13030](https://github.com/astral-sh/uv/pull/13030)) +- Patch `CC` and `CCX` entries in sysconfig for cross-compiled `aarch64` Python distributions ([#12239](https://github.com/astral-sh/uv/pull/12239)) +- Properly handle authentication for HTTP 302 redirect URLs ([#12920](https://github.com/astral-sh/uv/pull/12920)) +- Set 4MB stack size for all threads, introduce `UV_STACK_SIZE` ([#12839](https://github.com/astral-sh/uv/pull/12839)) +- Show PyPy downloads during `uv python list` ([#12915](https://github.com/astral-sh/uv/pull/12915)) +- Add `subdirectory` to Direct URL for local directories ([#12971](https://github.com/astral-sh/uv/pull/12971)) +- Prefer stable releases over pre-releases in `uv python install` ([#12194](https://github.com/astral-sh/uv/pull/12194)) +- Write requested Python variant to pin file in `uv init` ([#12870](https://github.com/astral-sh/uv/pull/12870)) + +### Documentation + +- Fix CLI reference with code block ([#12807](https://github.com/astral-sh/uv/pull/12807)) +- Fix lockfile note ([#12793](https://github.com/astral-sh/uv/pull/12793)) +- Fix typo in a reference ([#12858](https://github.com/astral-sh/uv/pull/12858)) +- Improve docs for `uv python list --only-downloads` and `--only-installed` ([#12916](https://github.com/astral-sh/uv/pull/12916)) +- Update not on lack of musl distributions to ARM-only ([#12825](https://github.com/astral-sh/uv/pull/12825)) +- Add section on shebangs for scripts ([#11553](https://github.com/astral-sh/uv/pull/11553)) +- Display aliases for long and short args in the CLI reference ([#12824](https://github.com/astral-sh/uv/pull/12824)) +- Fix highlight line in explicit index documentation ([#12887](https://github.com/astral-sh/uv/pull/12887)) +- Add explicit source (matching PyTorch guide) ([#12844](https://github.com/astral-sh/uv/pull/12844)) +- Fix link to issue ([#12823](https://github.com/astral-sh/uv/pull/12823)) +- Fix grammatical error in FastAPI guide ([#12908](https://github.com/astral-sh/uv/pull/12908)) +- Add `--locked` to `uv sync` in GitHub Actions guide ([#12819](https://github.com/astral-sh/uv/pull/12819)) +- Improve formatting for `"all"` `default-groups` setting documentation ([#12963](https://github.com/astral-sh/uv/pull/12963)) +- Replace `--frozen` with `--locked` in Docker integration guide ([#12818](https://github.com/astral-sh/uv/pull/12818)) + ## 0.6.14 ### Python versions @@ -22,7 +94,6 @@ See the [`python-build-standalone` release notes](https://github.com/astral-sh/p - Add `uv-build` and `uv_build` aliases to `uv init --build-backend` ([#12776](https://github.com/astral-sh/uv/pull/12776)) - Emit dedicated error message for Conda `environment.yml` files ([#12669](https://github.com/astral-sh/uv/pull/12669)) - ### Preview features - Build backend: Check module dir exists for sdist build ([#12779](https://github.com/astral-sh/uv/pull/12779)) diff --git a/Cargo.lock b/Cargo.lock index 57cb49128..97989732c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4563,7 +4563,7 @@ dependencies = [ [[package]] name = "uv" -version = "0.6.14" +version = "0.6.15" dependencies = [ "anstream", "anyhow", @@ -4725,7 +4725,7 @@ dependencies = [ [[package]] name = "uv-build" -version = "0.6.14" +version = "0.6.15" dependencies = [ "anyhow", "uv-build-backend", @@ -5869,7 +5869,7 @@ dependencies = [ [[package]] name = "uv-version" -version = "0.6.14" +version = "0.6.15" [[package]] name = "uv-virtualenv" diff --git a/crates/uv-build/Cargo.toml b/crates/uv-build/Cargo.toml index 62c374e89..42ada2c49 100644 --- a/crates/uv-build/Cargo.toml +++ b/crates/uv-build/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv-build" -version = "0.6.14" +version = "0.6.15" 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 11d4ff3ab..d23b8a531 100644 --- a/crates/uv-build/pyproject.toml +++ b/crates/uv-build/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "uv-build" -version = "0.6.14" +version = "0.6.15" description = "The uv build backend" authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] requires-python = ">=3.8" diff --git a/crates/uv-publish/src/lib.rs b/crates/uv-publish/src/lib.rs index 6d3aaf3bd..9ea81def4 100644 --- a/crates/uv-publish/src/lib.rs +++ b/crates/uv-publish/src/lib.rs @@ -1025,7 +1025,7 @@ mod tests { referer: true, default_headers: { "accept": "*/*", - "user-agent": "uv/0.6.14", + "user-agent": "uv/0.6.15", }, read_timeout: 30s, }, @@ -1203,7 +1203,7 @@ mod tests { referer: true, default_headers: { "accept": "*/*", - "user-agent": "uv/0.6.14", + "user-agent": "uv/0.6.15", }, read_timeout: 30s, }, diff --git a/crates/uv-version/Cargo.toml b/crates/uv-version/Cargo.toml index c24521c6e..3f8d0eba9 100644 --- a/crates/uv-version/Cargo.toml +++ b/crates/uv-version/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv-version" -version = "0.6.14" +version = "0.6.15" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/crates/uv/Cargo.toml b/crates/uv/Cargo.toml index 8ff4c0e9a..a08fd798b 100644 --- a/crates/uv/Cargo.toml +++ b/crates/uv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uv" -version = "0.6.14" +version = "0.6.15" edition = { workspace = true } rust-version = { workspace = true } homepage = { workspace = true } diff --git a/docs/concepts/projects/layout.md b/docs/concepts/projects/layout.md index aaf3d24e4..fecfd0098 100644 --- a/docs/concepts/projects/layout.md +++ b/docs/concepts/projects/layout.md @@ -82,13 +82,23 @@ explicitly updated using `uv lock`. `uv.lock` is a human-readable TOML file but is managed by uv and should not be edited manually. The `uv.lock` format is specific to uv and not usable by other tools. -!!! note +### `pylock.toml` - Recently Python standardized the lockfile format with `pylock.toml`. - For details on the new standard, see [PEP 751](https://peps.python.org/pep-0751/). +In [PEP 751](https://peps.python.org/pep-0751/), Python standardized a new resolution file format, +`pylock.toml`. - Some of uv's functionality cannot be expressed in the `pylock.toml` format, - so uv will continue to use the `uv.lock` format. +`pylock.toml` is a resolution output format intended to replace `requirements.txt` (e.g., in the +context of `uv pip compile`, whereby a "locked" `requirements.txt` file is generated from a set of +input requirements). `pylock.toml` is standardized and tool-agnostic, such that in the future, +`pylock.toml` files generated by uv could be installed by other tools, and vice versa. - However, support for `pylock.toml` is planned everywhere uv currently supports `requirements.txt` files. - For more details and updates on progress, see [12584](https://github.com/astral-sh/uv/issues/12584). +Some of uv's functionality cannot be expressed in the `pylock.toml` format; as such, uv will +continue to use the `uv.lock` format within the project interface. + +However, uv supports `pylock.toml` as an export target and in the `uv pip` CLI. For example: + +- To export a `uv.lock` to the `pylock.toml` format, run: `uv export -o pylock.toml` +- To generate a `pylock.toml` file from a set of requirements, run: + `uv pip compile -o pylock.toml -r requirements.in` +- To install from a `pylock.toml` file, run: `uv pip sync pylock.toml` or + `uv pip install -r pylock.toml` diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 945fbd4ac..b540748d8 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.6.14/install.sh | sh + $ curl -LsSf https://astral.sh/uv/0.6.15/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.6.14/install.ps1 | iex" + $ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.6.15/install.ps1 | iex" ``` !!! tip diff --git a/docs/guides/integration/aws-lambda.md b/docs/guides/integration/aws-lambda.md index 6e3c2d8ff..f3fda9413 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.6.14 AS uv +FROM ghcr.io/astral-sh/uv:0.6.15 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.6.14 AS uv +FROM ghcr.io/astral-sh/uv:0.6.15 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 ee869bffb..fec2d7453 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.6.14` +- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.6.15` - `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.6` (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.6.14-alpine`. +`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.6.15-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.6.14 /uv /uvx /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.6.15 /uv /uvx /bin/ ``` !!! tip @@ -128,7 +128,7 @@ COPY --from=ghcr.io/astral-sh/uv:0.6.14 /uv /uvx /bin/ Or, with the installer: ```dockerfile -ADD https://astral.sh/uv/0.6.14/install.sh /uv-installer.sh +ADD https://astral.sh/uv/0.6.15/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.6.14`, or (even better) the specific image digest, + version tag, e.g., `ghcr.io/astral-sh/uv:0.6.15`, 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 bb7f21b81..997df3f0a 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.6.14" + version: "0.6.15" ``` ## Setting up Python diff --git a/docs/guides/integration/pre-commit.md b/docs/guides/integration/pre-commit.md index d3b48f341..bd928894c 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.6.14 + rev: 0.6.15 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.6.14 + rev: 0.6.15 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.6.14 + rev: 0.6.15 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.6.14 + rev: 0.6.15 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.6.14 + rev: 0.6.15 hooks: # Compile requirements - id: pip-compile diff --git a/pyproject.toml b/pyproject.toml index 4a1be869b..77bb68eba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "uv" -version = "0.6.14" +version = "0.6.15" 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" @@ -81,7 +81,6 @@ version_files = [ "crates/uv-version/Cargo.toml", "crates/uv-build/Cargo.toml", "crates/uv-build/pyproject.toml", - "docs/configuration/build_backend.md", "docs/getting-started/installation.md", "docs/guides/integration/docker.md", "docs/guides/integration/pre-commit.md",