-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Comparing changes
Open a pull request
base repository: astral-sh/uv
base: 0.8.19
head repository: astral-sh/uv
compare: 0.8.20
- 19 commits
- 43 files changed
- 9 contributors
Commits on Sep 20, 2025
-
Sync latest Python releases (#15958)
Automated update for Python releases. Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 3979c59 - Browse repository at this point
Copy the full SHA 3979c59View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d7d7fd - Browse repository at this point
Copy the full SHA 1d7d7fdView commit details
Commits on Sep 22, 2025
-
Add incompatibility from proxy to base package (#15200)
Add an incompatibility that lets pubgrub skip of marker packages when the base package already has an incompatible version to improve the error messages (#15199). The change is also a small perf improvement. Overall this should be able to improve performance in slow cases by avoiding trying proxy package versions that are impossible anyway, for a (ideally very small cost) for tracking the additional incompatibility and tracking the base package for each proxy package. ``` $ hhyperfine --warmup 2 "uv pip compile --universal scripts/requirements/airflow.in" "target/release/uv pip compile --universal scripts/requirements/airflow.in" Benchmark 1: uv pip compile --universal scripts/requirements/airflow.in Time (mean ± σ): 145.5 ms ± 3.9 ms [User: 154.7 ms, System: 140.7 ms] Range (min … max): 139.2 ms … 153.4 ms 20 runs Benchmark 2: target/release/uv pip compile --universal scripts/requirements/airflow.in Time (mean ± σ): 128.7 ms ± 5.5 ms [User: 141.9 ms, System: 137.3 ms] Range (min … max): 121.8 ms … 142.0 ms 23 runs Summary target/release/uv pip compile --universal scripts/requirements/airflow.in ran 1.13 ± 0.06 times faster than uv pip compile --universal scripts/requirements/airflow.in ``` This implementation is the basic version: When we see a proxy `foo{...}>=x,<y` we add a dependency edge `foo{...}>=x,<y` -> `foo>=x,<y`. There are several way to extend this, which likely help more with performance than with error messages. One idea is that if we see `foo{...}>=x,<y` but we already made a selection for `foo==z` outside that range, we can insert a dependency `foo{...}!=z` -> `foo!=z`. This avoids trying any version of the proxy package except the version that matches our previous selection. Another is that if we see a dependency `foo>=x,<y`, we also add `foo{...}>=x,y` -> `foo>=x,<y`. This allows backtracking beyond `foo` immediately if all version of `foo{...}>=x,<y` are incompatible, since `foo{...}>=x,<y` incompatible -> `foo>=x,<y` incompatible -> the package that depended of `foo>=x,<y` is incompatible. The cost for each of these operations is tracking an additional incompatibility per virtual package. An alternative approach is to only add the incompatibility lazily, only when we've tried several version of the virtual package already. This needs to be weighed of with the better error messages that the incompatibility gives, we unfortunately have only few large reference examples. Requires astral-sh/pubgrub#45 Closes #15199
Configuration menu - View commit details
-
Copy full SHA for a6daab4 - Browse repository at this point
Copy the full SHA a6daab4View commit details -
Update Rust crate cargo-util to v0.2.23 (#15975)
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more [here](https://redirect.github.com/renovatebot/renovate/discussions/37842). This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [cargo-util](https://redirect.github.com/rust-lang/cargo) | workspace.dependencies | patch | `0.2.22` -> `0.2.23` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/astral-sh/uv). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 5dd9a10 - Browse repository at this point
Copy the full SHA 5dd9a10View commit details -
Update Rust crate clap to v4.5.48 (#15976)
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more [here](https://redirect.github.com/renovatebot/renovate/discussions/37842). This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [clap](https://redirect.github.com/clap-rs/clap) | workspace.dependencies | patch | `4.5.47` -> `4.5.48` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>clap-rs/clap (clap)</summary> ### [`v4.5.48`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4548---2025-09-19) [Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.5.47...v4.5.48) ##### Documentation - Add a new CLI Concepts document as another way of framing clap - Expand the `typed_derive` cookbook entry </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/astral-sh/uv). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 39f1c27 - Browse repository at this point
Copy the full SHA 39f1c27View commit details -
Update pre-commit hook astral-sh/ruff-pre-commit to v0.13.1 (#15973)
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more [here](https://redirect.github.com/renovatebot/renovate/discussions/37842). This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [astral-sh/ruff-pre-commit](https://redirect.github.com/astral-sh/ruff-pre-commit) | repository | patch | `v0.13.0` -> `v0.13.1` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://redirect.github.com/renovatebot/renovate/discussions/new) if you have any questions. --- ### Release Notes <details> <summary>astral-sh/ruff-pre-commit (astral-sh/ruff-pre-commit)</summary> ### [`v0.13.1`](https://redirect.github.com/astral-sh/ruff-pre-commit/releases/tag/v0.13.1) [Compare Source](https://redirect.github.com/astral-sh/ruff-pre-commit/compare/v0.13.0...v0.13.1) See: <https://github.com/astral-sh/ruff/releases/tag/0.13.1> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/astral-sh/uv). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for d8c5f37 - Browse repository at this point
Copy the full SHA d8c5f37View commit details -
Configuration menu - View commit details
-
Copy full SHA for e9987b3 - Browse repository at this point
Copy the full SHA e9987b3View commit details -
Document support for free-threaded and debug Python versions (#15961)
Closes #12707 --------- Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
Configuration menu - View commit details
-
Copy full SHA for 0edc567 - Browse repository at this point
Copy the full SHA 0edc567View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9cabf63 - Browse repository at this point
Copy the full SHA 9cabf63View commit details -
Configuration menu - View commit details
-
Copy full SHA for 022a8f1 - Browse repository at this point
Copy the full SHA 022a8f1View commit details -
Allow upgrading prerelease versions of the same minor Python version (#…
…15959) Turns out if the minor versions matched we returned false from `is_upgrade_of` instead of continuing to compare prerelease versions. Closes #15955. Note: test cases were initially generated by Claude - I tried making them shorter. ## Test plan ``` ❯ cargo run -- -v python upgrade 3.14 [...] DEBUG Inspecting existing executable at `/Users/zsol/.local/bin/python3.14` DEBUG Replacing existing executable for `cpython-3.14.0rc2-macos-aarch64-none` at `/Users/zsol/.local/bin/python3.14` with executable for `cpython-3.14.0rc3-macos-aarch64-none` since it is an upgrade DEBUG Updated executable at `/Users/zsol/.local/bin/python3.14` to cpython-3.14.0rc3-macos-aarch64-none Installed Python 3.14.0rc3 in 5.04s + cpython-3.14.0rc3-macos-aarch64-none (python3.14) [...] ❯ uvx python3.14 -V Python 3.14.0rc3 ```
Configuration menu - View commit details
-
Copy full SHA for 46bf420 - Browse repository at this point
Copy the full SHA 46bf420View commit details -
Re-upstream to dist to axodotdev/cargo-dist (#15798)
## Summary Both https://github.com/axodotdev/cargo-dist/releases/tag/v0.29.0 and https://github.com/axodotdev/cargo-dist/releases/tag/v0.30.0 seem to contain all relevant changes from https://github.com/astral-sh/cargo-dist ## Test Plan Not tested yet given I'd be running from a fork, but a dry-run run from astral-sh/uv would be great 😅
Configuration menu - View commit details
-
Copy full SHA for 6263d10 - Browse repository at this point
Copy the full SHA 6263d10View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1224f65 - Browse repository at this point
Copy the full SHA 1224f65View commit details -
Retain the cache lock and temporary caches during
uv run
anduvx
(#……15990) We're seeing reports of a regression from #15888 where `--no-cache` causes `uv run` and `uvx` to fail to spawn a command. The intent of this code was to allow destructive cache operations _after_ we'd finished setting up the environment. However, it's unclear to me that it's safe to run `uv cache clean` during a `uv run` operation (e.g., `uv run --script` uses an environment in the cache) and, more importantly, we cannot drop non-persistent caches (e.g., from `--no-cache`) as they include the environment we're spawning the command in. Alternative to #15977 which retains release of the lock — we may want to consider that approach still but this regression needs to be resolved quickly. Closes #15989 Closes #15987 Closes #15967
Configuration menu - View commit details
-
Copy full SHA for a502464 - Browse repository at this point
Copy the full SHA a502464View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7697fa6 - Browse repository at this point
Copy the full SHA 7697fa6View commit details -
Refresh lockfile when
--refresh
is provided (#15991)## Summary If you provide `--refresh` to `uv lock`, we'll now always resolve (even though it might return the same result).
Configuration menu - View commit details
-
Copy full SHA for aeb7ee0 - Browse repository at this point
Copy the full SHA aeb7ee0View commit details -
Configuration menu - View commit details
-
Copy full SHA for c21b11e - Browse repository at this point
Copy the full SHA c21b11eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 107d4e0 - Browse repository at this point
Copy the full SHA 107d4e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e6fd0b - Browse repository at this point
Copy the full SHA 3e6fd0bView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 0.8.19...0.8.20