-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Install versioned Python executables into the bin directory during uv python install
#8458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
uv python install
b3f1ede to
dc70ac5
Compare
dc70ac5 to
a5bae91
Compare
a5bae91 to
b188781
Compare
1396487 to
6bd04ee
Compare
6bd04ee to
3157909
Compare
3157909 to
cb814eb
Compare
| // Workaround for python-build-standalone v20241016 which is missing the standard | ||
| // `python.exe` executable in free-threaded distributions on Windows. | ||
| // | ||
| // See https://github.com/astral-sh/uv/issues/8298 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This moved up, so executable always returns the existing executable for an installation and we ensure all the canonical names exist here.
| let canonical_names = &["python"]; | ||
|
|
||
| for name in canonical_names { | ||
| let executable = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This refactored for future changes.
charliermarsh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As per our conversation on Discord, I think it could make sense to gate this on preview.
…v python install`
…v python install`
Following #8458, we need to remove the installed Python executables on `uv python uninstall`. Needs Windows support still, but that approach will be different since there won't be links.
|
Going to gate with preview and rebase onto main. |
Following #8458 we want to support showing the target directory in the CLI
00873e2 to
7d2cf99
Compare
7d2cf99 to
bea412e
Compare
bea412e to
0813efc
Compare
0813efc to
bb90cbd
Compare
bb90cbd to
ae37a24
Compare
|
Note this also gated to Unix pending #8663 |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | minor | `0.4.24` -> `0.5.2` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.5.2`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#052) [Compare Source](astral-sh/uv@0.5.1...0.5.2) ##### Enhancements - Hide `--no-system` from `uv pip tree` CLI ([#​9040](astral-sh/uv#9040)) - Allow configuration of Python and PyPy install mirrors in `uv.toml` ([#​8695](astral-sh/uv#8695)) - Allow passing Python download mirrors to `uv python install` ([#​8695](astral-sh/uv#8695)) - Add support for specifying conflicting extras and dependency groups ([#​8976](astral-sh/uv#8976), [#​9096](astral-sh/uv#9096)) - Consistent colon usage in build failure errors ([#​8994](astral-sh/uv#8994)) - Show full derivation chain when encountering build failures ([#​9108](astral-sh/uv#9108)) - Show link we failed on parsing index pages ([#​9118](astral-sh/uv#9118)) - Remove duplicate log when searching for interpreters ([#​9092](astral-sh/uv#9092)) - Update uv development status classifier to "Stable" on PyPI ([#​8943](astral-sh/uv#8943)) - Use rich diagnostic formatting for early build failures ([#​9041](astral-sh/uv#9041)) - Use rich diagnostic formatting for install failures ([#​9043](astral-sh/uv#9043)) ##### Performance - Avoid retraversing filesystem when testing exact glob matches ([#​9022](astral-sh/uv#9022)) ##### Bug fixes - Allow `--no-build` to validate lock ([#​9024](astral-sh/uv#9024)) - Allow default indexes to be marked as explicit ([#​8990](astral-sh/uv#8990)) - Avoid creating `.venv` in `uv add --frozen` and `uv add --no-sync` ([#​8980](astral-sh/uv#8980)) - Avoid duplicating first-entry comments in `uv add` ([#​9109](astral-sh/uv#9109)) - Defer reporting of build failures in resolver ([#​9098](astral-sh/uv#9098)) - Fix references to `--resolution-strategy` in error message output ([#​8971](astral-sh/uv#8971)) - Ignore virtual environments in parent directories when choosing Python version for new projects ([#​9075](astral-sh/uv#9075)) - Forward SIGTERM to child processes in `uv run` ([#​8933](astral-sh/uv#8933)) - Prefer Python executable names that match the request over default names ([#​9066](astral-sh/uv#9066)) - Prefer compatible to incompatible distributions when packages exist on multiple indexes ([#​8961](astral-sh/uv#8961)) - Publish: Ignore non-matching files ([#​8986](astral-sh/uv#8986)) - Revert `uv.lock` changes when `uv add` fails ([#​9030](astral-sh/uv#9030)) - Show file extensions on available commands when not `.exe` ([#​9099](astral-sh/uv#9099)) - Sort by name, then specifiers in `uv add` ([#​9097](astral-sh/uv#9097)) - Split after specifiers in `--with` requirements ([#​9089](astral-sh/uv#9089)) - Support multiple extras in universal pip compile output ([#​8960](astral-sh/uv#8960)) ##### Preview features - Build backend: Add tests for source tree -> source dist -> wheel conversions ([#​9091](astral-sh/uv#9091)) - Build backend: Switch to custom `glob-walkdir` implementation ([#​9013](astral-sh/uv#9013)) - Build backend: Add minimal wheel settings ([#​9085](astral-sh/uv#9085)) ##### Documentation - Add wget instructions for systems without curl ([#​8630](astral-sh/uv#8630)) - Fix `.env` file example in docs ([#​9064](astral-sh/uv#9064)) - Fix reference to `--resolution` in docs ([#​8968](astral-sh/uv#8968)) - Fix typo in GitLab integration docs ([#​9047](astral-sh/uv#9047)) - Update format of environment variable reference ([#​9018](astral-sh/uv#9018)) - Use Python syntax for `value_type` consistently ([#​9017](astral-sh/uv#9017)) - Use `[[index]]` API in configuration example ([#​9065](astral-sh/uv#9065)) - Mention how to use extras ([#​8972](astral-sh/uv#8972)) - Add some words about specifying conflicting extras/groups ([#​9120](astral-sh/uv#9120)) ### [`v0.5.1`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#051) [Compare Source](astral-sh/uv@0.5.0...0.5.1) ##### Enhancements - Allow installation of manylinux wheels on `riscv64` ([#​8934](astral-sh/uv#8934)) ##### Bug fixes - Build source distributions at top-level of cache ([#​8905](astral-sh/uv#8905)) - Allow non-registry dependencies in `uv pip list --outdated` ([#​8939](astral-sh/uv#8939)) - Compute superset of existing and required hashes when healing cache ([#​8955](astral-sh/uv#8955)) - Enable uv to replace and delete itself on Windows ([#​8914](astral-sh/uv#8914)) - Remove source distribution filename from cache ([#​8907](astral-sh/uv#8907)) - Respect `--index-url` in `uv pip list` ([#​8942](astral-sh/uv#8942)) - Respect comma-separated extras in `--with` ([#​8946](astral-sh/uv#8946)) ##### Documentation - Add uninstall note for previous versions ([#​8937](astral-sh/uv#8937)) - Remove some missed references to `~/.cargo/bin` ([#​8936](astral-sh/uv#8936)) - Split README's install code block into 3 ([#​8853](astral-sh/uv#8853)) ### [`v0.5.0`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#050) [Compare Source](astral-sh/uv@0.4.30...0.5.0) Since the launch of Python version, project, and tool management capabilities back in August, we've seen extraordinary adoption of uv. We've been iterating rapidly: adding new features, fixing bugs, and improving the user experience. Despite moving quickly, stability and compatibility have been a major focus — we've made thirty releases since our last breaking change. Consequently, we've accumulated various changes that improve correctness and user experience, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes. ##### Breaking - **Use base executable to set virtualenv Python path** ([#​8481](astral-sh/uv#8481)) Previously, uv canonicalized the path to the Python executable when setting the Python path in created virtual environments. This behavior had several undesirable effects: it would bypass stabilized version directories (as constructed by Homebrew) and it was not consistent with the Python standard library's behavior. Now, uv uses the `sys._base_executable` path. - **Use XDG (i.e. `~/.local/bin`) instead of the Cargo home directory in the installer** ([#​8420](astral-sh/uv#8420)) Previously, uv's installer used `$CARGO_HOME` or `~/.cargo/bin` for its target install directory. It's been a longstanding complaint that uv uses this directory, as there's no relationship to Cargo. Now, uv will be installed into `$XDG_BIN_HOME`, `$XDG_DATA_HOME/../bin`, or `~/.local/bin` (in that order). Note that `$UV_INSTALL_DIR` can always be used to override the target directory. - **Discover and respect `.python-version` files in parent directories** ([#​6370](astral-sh/uv#6370)) Previously, uv only read `.python-version` files from the working directory. Now, uv will check parent directories for `.python-version` files; however uv will not search for `.python-version` files beyond project boundaries. The new behavior is better aligned with that of `pyenv` and Rye. - **Error when disallowed settings are defined in `uv.toml`** ([#​8550](astral-sh/uv#8550)) Some settings can only be defined in the `pyproject.toml`. Previously, uv would ignore these settings when present in the `uv.toml`. Now, uv will error to avoid confusion about why the settings are not respected. - **Implement PEP 440-compliant local version semantics** ([#​8797](astral-sh/uv#8797)) Previously, uv's implementation of local versions (e.g. `2.0+cpu`) was not compliant with the specification due to the technical complexity of implementing the local version semantics in the PubGrub algorithm. Thanks to the work of [@​ericmarkmartin](https://github.com/ericmarkmartin), uv now has a spec-compliant implementation. Namely, uv will now allow a request for `torch==2.1.0` to install `[email protected]+cpu` regardless of whether `[email protected]` (without a local tag) actually exists. - **Treat the base Conda environment as a system environment** ([#​7691](astral-sh/uv#7691)) Previously, uv would not distinguish between the base and other Conda environments. Now, uv uses `CONDA_DEFAULT_ENV` and the names `base` and `default` to determine if an environment active via `CONDA_PREFIX` is the base environment. If the base environment is active, the `--system` flag must be used to mutate it. - **Do not allow pre-releases when the `!=` operator is used** ([#​7974](astral-sh/uv#7974)) Previously, uv would use the presence of a pre-release specifier in a version specifier as an opt-in to allow pre-release versions during resolution. The new behavior does not allow pre-releases when an inequals operator is used, e.g., `!= 2.0a1`. - **Prefer `USERPROFILE` over `FOLDERID_Profile` when selecting a home directory on Windows** ([#​8048](astral-sh/uv#8048)) This change is a side-effect of switching from the `directories` crate to `etcetera` for determining canonical system paths. If `USERPROFILE` is not set, the behavior will be unchanged. - **Improve interactions between color environment variables and CLI options** ([#​8215](astral-sh/uv#8215)) Previously, uv would respect the `FORCE_COLOR` and `NO_COLOR` environment variables over the `--color` flag. Now, when the `--color` flag is explicitly provided, uv will respect it over the environment variables. - **Make `allow-insecure-host` a global option** ([#​8476](astral-sh/uv#8476)) Previously, this option was only available in some parts of uv. Now, `--allow-insecure-host` can be provided to any command. For consistency, the `allow-insecure-host` setting has been removed from the `[tool.uv.pip]` configuration in favor of `[tool.uv]`. - **Only write `.python-version` files during `uv init` for workspace members if the version differs** ([#​8897](astral-sh/uv#8897)) Previously, uv would create a `.python-version` file for workspace members during `uv init`. Now, uv will only do so if the version differs from the `.python-version` file in the workspace root since uv will respect `.python-version` files in parent directories. ##### Enhancements - Add `uv tree --outdated` ([#​8893](astral-sh/uv#8893)) - Add armv8l alias for armv7l to support arm 32-bit compatibility mode ([#​8881](astral-sh/uv#8881)) - Add support for `pip list --outdated` ([#​8872](astral-sh/uv#8872)) - Allow semicolons directly after direct URLs ([#​8836](astral-sh/uv#8836)) - Enable support for arbitrary git transports ([#​8769](astral-sh/uv#8769)) - Improve Python discovery source messages ([#​8890](astral-sh/uv#8890)) - Show dedicated error for trailing `;` on URL and path requirements ([#​8835](astral-sh/uv#8835)) - Add progress bar for `uv cache clean` ([#​8857](astral-sh/uv#8857)) - Warn on failure to query system configuration file ([#​8829](astral-sh/uv#8829)) ##### Preview features - Add support for building basic source distributions with the experimental uv build backend ([#​8886](astral-sh/uv#8886)) ##### Bug fixes - Respect dynamic version updates in `uv lock` ([#​8867](astral-sh/uv#8867)) - Respect fork markers in `--resolution-mode=lowest-direct` ([#​8839](astral-sh/uv#8839)) ##### Documentation - Add further examples of git+https support ([#​8841](astral-sh/uv#8841)) - Add installer variables to environment reference ([#​8874](astral-sh/uv#8874)) - Add note on private classifier ([#​8783](astral-sh/uv#8783)) - Update pip-and-uv strictness example ([#​8822](astral-sh/uv#8822)) - Fix `uv python install` docs to use an existing PyPy version ([#​8845](astral-sh/uv#8845)) - Document how to mimic `--verbose` with `RUST_LOG` ([#​8858](astral-sh/uv#8858)) ### [`v0.4.30`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0430) [Compare Source](astral-sh/uv@0.4.29...0.4.30) ##### Enhancements - Add support for `.env` and custom env files in `uv run` ([#​8811](astral-sh/uv#8811)) - Add support for `--all-packages` in `uv run`, `uv sync`, and `uv export` ([#​8742](astral-sh/uv#8742), [#​8741](astral-sh/uv#8741), [#​8739](astral-sh/uv#8739)) - Allow use of `--frozen` with `--all-packages` in `uv sync` and `uv export` ([#​8760](astral-sh/uv#8760)) - Show full error chain on tool upgrade failures ([#​8753](astral-sh/uv#8753)) - Add `--check-url` to `uv publish` to check for existing distributions during upload ([#​8531](astral-sh/uv#8531)) - Suggest using `--check-url` when `--skip-existing` is used ([#​8803](astral-sh/uv#8803)) ##### Bug fixes - Allow incompatible `requires-python` for source distributions with static metadata ([#​8768](astral-sh/uv#8768)) - Allow managed downloads with `--python-preference system` ([#​8808](astral-sh/uv#8808)) - Avoid error for `--group` defined in non-root workspace member ([#​8734](astral-sh/uv#8734)) - Avoid showing dependency group annotations on workspace members in tree ([#​8730](astral-sh/uv#8730)) - Do not error when the Python bin directory is missing on `uv python uninstall` ([#​8725](astral-sh/uv#8725)) - Include member groups when locking workspace ([#​8736](astral-sh/uv#8736)) - Fix bug where `python_version < '0'` could appear in a final resolution ([#​8759](astral-sh/uv#8759)) - Sanitize filenames during zip extraction ([#​8732](astral-sh/uv#8732)) - Switch to RFC 9110 compatible format for exclude newer requests ([#​8752](astral-sh/uv#8752)) ##### Preview features - Add support for installing versioned Python executables on Windows ([#​8663](astral-sh/uv#8663)) - Improve interactions with existing Python executables during install ([#​8733](astral-sh/uv#8733)) ##### Rust API - Extend `BaseClient` to accept extra middleware ([#​8807](astral-sh/uv#8807)) - Add `From` for `FlatDistributions` struct ([#​8800](astral-sh/uv#8800)) ##### Documentation - Fix environment variable name in providing credentials section ([#​8740](astral-sh/uv#8740)) - Fix `add httpx` example with real git branch ([#​8756](astral-sh/uv#8756)) - Fix indentation in `projects.md` ([#​8772](astral-sh/uv#8772)) - Fix link to publish guide in `README` ([#​8720](astral-sh/uv#8720)) - Generate environment variables documentation from code ([#​8493](astral-sh/uv#8493)) - Improve and fix some documents ([#​8749](astral-sh/uv#8749)) - Improve environment variables document ([#​8777](astral-sh/uv#8777)) ### [`v0.4.29`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0429) [Compare Source](astral-sh/uv@0.4.28...0.4.29) ##### Enhancements - Sort errors during display in `uv python install` ([#​8684](astral-sh/uv#8684)) - Update resolver to use disjointness checks instead of marker equality ([#​8661](astral-sh/uv#8661)) - Add `riscv64` to supported Python platform tags ([#​8660](astral-sh/uv#8660)) ##### Bug fixes - Fix hard and soft float libc detection for managed Python distributions on ARM ([#​8498](astral-sh/uv#8498)) - Handle cycles in `uv pip tree` ([#​8689](astral-sh/uv#8689)) - Respect dependency group markers in `uv export` ([#​8659](astral-sh/uv#8659)) - Support transitive dependencies in Git workspaces ([#​8665](astral-sh/uv#8665)) - Use portable paths for subdirectories in lock URLs ([#​8707](astral-sh/uv#8707)) - Update `uv init --virtual` to imply `--no-package` ([#​8595](astral-sh/uv#8595)) ##### Preview - Install versioned Python executables into the bin directory during `uv python install` (Unix only) ([#​8458](astral-sh/uv#8458)) ##### Documentation - Clarify relationship between specifiers and `requires-python` range ([#​8688](astral-sh/uv#8688)) - Fix broken link in docs ([#​8552](astral-sh/uv#8552)) - Fix outdated documentation on `Requires-Python` ([#​8679](astral-sh/uv#8679)) - Add Google Artifact Registry index authentication guide ([#​8579](astral-sh/uv#8579)) ### [`v0.4.28`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0428) [Compare Source](astral-sh/uv@0.4.27...0.4.28) ##### Enhancements - Add support for requesting free-threaded builds via `+freethreaded` ([#​8645](astral-sh/uv#8645)) - Improve trusted publishing error messages ([#​8633](astral-sh/uv#8633)) - Remove unneeded `return` from Maturin project template ([#​8604](astral-sh/uv#8604)) - Skip Python interpreter discovery for `uv export` ([#​8638](astral-sh/uv#8638)) - Hint about missing trusted publishing permission ([#​8632](astral-sh/uv#8632)) ##### Configuration - Add environment variable to disable progress output ([#​8600](astral-sh/uv#8600)) ##### Bug fixes - Fork when minimum Python version increases ([#​8628](astral-sh/uv#8628)) - Ignore empty groups when validating lock ([#​8598](astral-sh/uv#8598)) - Remove duplicate word in error message ([#​8589](astral-sh/uv#8589)) - Support cyclic dependencies in `uv tree` ([#​8564](astral-sh/uv#8564)) - Update `uv init` to imply `--package` when using `--build-backend` ([#​8593](astral-sh/uv#8593)) - Restore use of `dev-dependencies` and `requires-dev` for lockfile compatibility ([#​8599](astral-sh/uv#8599)) ##### Documentation - Clarify `requires-python` requirement for dependencies ([#​8619](astral-sh/uv#8619)) - Update CLI documentation for `--cache-dir` ([#​8627](astral-sh/uv#8627)) ### [`v0.4.27`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0427) [Compare Source](astral-sh/uv@0.4.26...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](astral-sh/uv#8272)) - Add support for `--dry-run` mode in `uv lock` ([#​7783](astral-sh/uv#7783)) - Don't allow non-string email in authors ([#​8520](astral-sh/uv#8520)) - Enforce lockfile schema versions ([#​8509](astral-sh/uv#8509)) ##### Bug fixes - Always attach URL to network errors ([#​8444](astral-sh/uv#8444)) - Fix dangling non-platform dependencies in `uv tree` ([#​8532](astral-sh/uv#8532)) - Prefer `lto` over `debug` free-threaded managed Python builds ([#​8515](astral-sh/uv#8515)) ##### Documentation - Add `tool.uv.sources` to the "Settings" reference ([#​8543](astral-sh/uv#8543)) - Add reference to `uv build` and `uv publish` in the landing pages ([#​8542](astral-sh/uv#8542)) - Avoid duplicate `[tool.uv]` header in TOML examples ([#​8545](astral-sh/uv#8545)) - Document `.netrc` environment variable and path ([#​8511](astral-sh/uv#8511)) - Fix `.netrc` typo in authentication docs ([#​8521](astral-sh/uv#8521)) - Fix heading level of "Script support" on docs landing page ([#​8544](astral-sh/uv#8544)) - Move the installation configuration docs to a separate page ([#​8546](astral-sh/uv#8546)) - Update docs for `--publish-url` to avoid duplication. ([#​8561](astral-sh/uv#8561)) - Fix typo ([#​8554](astral-sh/uv#8554)) - Fix typo in description of `--strict` flag ([#​8513](astral-sh/uv#8513)) ### [`v0.4.26`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0426) [Compare Source](astral-sh/uv@0.4.25...0.4.26) ##### Enhancements - Allow static dependency metadata entries for direct URL requirements ([#​7846](astral-sh/uv#7846)) - Use reinstall report formatting for `uv python install --reinstall` ([#​8487](astral-sh/uv#8487)) - Add support for system-level `uv.toml` configuration ([#​7851](astral-sh/uv#7851)) ##### Bug fixes - Apply `requires-python` narrowing with upper bounds ([#​8403](astral-sh/uv#8403)) - Avoid rewriting `[[tool.uv.index]]` entries when credentials are provided ([#​8502](astral-sh/uv#8502)) - Fix `uv add` comment handling for empty arrays ([#​8504](astral-sh/uv#8504)) - Replace dashes with underscores in index credential variables ([#​8452](astral-sh/uv#8452)) - Respect `--allow-insecure-host` in `uv publish` ([#​8440](astral-sh/uv#8440)) - Allow arbitrary `--package` includes in `uv tree` ([#​8507](astral-sh/uv#8507)) - Remove existing Python install after successful download in `uv python install` ([#​8485](astral-sh/uv#8485)) ##### Documentation - Add docs example for URLs with `[tool.uv.dependency-metadata]` ([#​8484](astral-sh/uv#8484)) - Add help page for build failures ([#​8286](astral-sh/uv#8286)) - Fix `cache-keys` typo in `tags = true` ([#​8422](astral-sh/uv#8422)) - Add documentation examples for manual branch, rev, and tag Git dependencies ([#​8497](astral-sh/uv#8497)) ##### Error messages - Improve error message for cache info serialization ([#​8500](astral-sh/uv#8500)) - Suggest `--from` command when executable is available for `uvx` ([#​8473](astral-sh/uv#8473)) - Support `--with-editable` in `uv tool install` ([#​8472](astral-sh/uv#8472)) ### [`v0.4.25`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0425) [Compare Source](astral-sh/uv@0.4.24...0.4.25) ##### Enhancements - Add support for `uv pip show --files` ([#​8369](astral-sh/uv#8369)) - Don't prefetch unreachable packages ([#​8246](astral-sh/uv#8246)) - Remove `tool.uv.sources` table if it is empty ([#​8365](astral-sh/uv#8365)) - Modify cache versioning to support backwards compatibility ([#​8386](astral-sh/uv#8386)) ##### Configuration - Add support for `UV_FROZEN` and `UV_LOCKED` ([#​8340](astral-sh/uv#8340)) ##### Bug fixes - Allow dashes and underscores in custom index names ([#​8339](astral-sh/uv#8339)) - Avoid panic when Git dependencies are included in fork markers ([#​8388](astral-sh/uv#8388)) - Check existing source by normalized name before `uv add` and `uv remove` ([#​8359](astral-sh/uv#8359)) - Fix bug where username from authentication cache could be ignored ([#​8345](astral-sh/uv#8345)) - Fix to respect comments positioning in pyproject.toml on change ([#​8384](astral-sh/uv#8384)) - Redact index sources in `uv.lock` ([#​8333](astral-sh/uv#8333)) - Use correct indentation when project table contains open bracket comment ([#​8387](astral-sh/uv#8387)) - Only remove a source from `[tool.uv.sources]` if it is no long being referenced ([#​8366](astral-sh/uv#8366)) - Modify `uv pip list` and `uv tree` to print to stdout regardless of `--quiet` flag ([#​8392](astral-sh/uv#8392)) ##### Error messages - Improve help message for missing `self update` invocations ([#​8337](astral-sh/uv#8337)) - Log `.netrc` parsing errors ([#​8364](astral-sh/uv#8364)) - Remove trailing newlines in error messages ([#​8322](astral-sh/uv#8322)) - Use a dedicated message for incompatible Python versions in wheel ABI tags ([#​8363](astral-sh/uv#8363)) - Remove commands available in the top-level from the suggested subcommand error ([#​8316](astral-sh/uv#8316)) ##### Release - Run release builds for `macos-x86_64` on `macos-14` runners ([#​8327](astral-sh/uv#8327)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | minor | `0.7.19` -> `0.8.3` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.8.3`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#083) [Compare Source](astral-sh/uv@0.8.2...0.8.3) ##### Python - Add CPython 3.14.0rc1 See the [`python-build-standalone` release notes](https://github.com/astral-sh/python-build-standalone/releases/tag/20250723) for more details. ##### Enhancements - Allow non-standard entrypoint names in `uv_build` ([#​14867](astral-sh/uv#14867)) - Publish riscv64 wheels to PyPI ([#​14852](astral-sh/uv#14852)) ##### Bug fixes - Avoid writing redacted credentials to tool receipt ([#​14855](astral-sh/uv#14855)) - Respect `--with` versions over base environment versions ([#​14863](astral-sh/uv#14863)) - Respect credentials from all defined indexes ([#​14858](astral-sh/uv#14858)) - Fix missed stabilization of removal of registry entry during Python uninstall ([#​14859](astral-sh/uv#14859)) - Improve concurrency safety of Python downloads into cache ([#​14846](astral-sh/uv#14846)) ##### Documentation - Fix typos in `uv_build` reference documentation ([#​14853](astral-sh/uv#14853)) - Move the "Cargo" install method further down in docs ([#​14842](astral-sh/uv#14842)) ### [`v0.8.2`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#082) [Compare Source](astral-sh/uv@0.8.1...0.8.2) ##### Enhancements - Add derivation chains for dependency errors ([#​14824](astral-sh/uv#14824)) ##### Configuration - Add `UV_INIT_BUILD_BACKEND` ([#​14821](astral-sh/uv#14821)) ##### Bug fixes - Avoid reading files in the environment bin that are not entrypoints ([#​14830](astral-sh/uv#14830)) - Avoid removing empty directories when constructing virtual environments ([#​14822](astral-sh/uv#14822)) - Preserve index URL priority order when writing to pyproject.toml ([#​14831](astral-sh/uv#14831)) ##### Rust API - Expose `tls_built_in_root_certs` for client ([#​14816](astral-sh/uv#14816)) ##### Documentation - Archive the 0.7.x changelog ([#​14819](astral-sh/uv#14819)) ### [`v0.8.1`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#081) [Compare Source](astral-sh/uv@0.8.0...0.8.1) ##### Enhancements - Add support for `HF_TOKEN` ([#​14797](astral-sh/uv#14797)) - Allow `--config-settings-package` to apply configuration settings at the package level ([#​14573](astral-sh/uv#14573)) - Create (e.g.) `python3.13t` executables in `uv venv` ([#​14764](astral-sh/uv#14764)) - Disallow writing symlinks outside the source distribution target directory ([#​12259](astral-sh/uv#12259)) - Elide traceback when `python -m uv` in interrupted with Ctrl-C on Windows ([#​14715](astral-sh/uv#14715)) - Match `--bounds` formatting for `uv_build` bounds in `uv init` ([#​14731](astral-sh/uv#14731)) - Support `extras` and `dependency_groups` markers in PEP 508 grammar ([#​14753](astral-sh/uv#14753)) - Support `extras` and `dependency_groups` markers on `uv pip install` and `uv pip sync` ([#​14755](astral-sh/uv#14755)) - Add hint to use `uv self version` when `uv version` cannot find a project ([#​14738](astral-sh/uv#14738)) - Improve error reporting when removing Python versions from the Windows registry ([#​14722](astral-sh/uv#14722)) - Make warnings about masked `[tool.uv]` fields more precise ([#​14325](astral-sh/uv#14325)) ##### Preview features - Emit JSON output in `uv sync` with `--quiet` ([#​14810](astral-sh/uv#14810)) ##### Bug fixes - Allow removal of virtual environments with missing interpreters ([#​14812](astral-sh/uv#14812)) - Apply `Cache-Control` overrides to response, not request headers ([#​14736](astral-sh/uv#14736)) - Copy entry points into ephemeral environments to ensure layers are respected ([#​14790](astral-sh/uv#14790)) - Workaround Jupyter Lab application directory discovery in ephemeral environments ([#​14790](astral-sh/uv#14790)) - Enforce `requires-python` in `pylock.toml` ([#​14787](astral-sh/uv#14787)) - Fix kebab casing of `README` variants in build backend ([#​14762](astral-sh/uv#14762)) - Improve concurrency resilience of removing Python versions from the Windows registry ([#​14717](astral-sh/uv#14717)) - Retry HTTP requests on invalid data errors ([#​14703](astral-sh/uv#14703)) - Update virtual environment removal to delete `pyvenv.cfg` last ([#​14808](astral-sh/uv#14808)) - Error on unknown fields in `dependency-metadata` ([#​14801](astral-sh/uv#14801)) ##### Documentation - Recommend installing `setup-uv` after `setup-python` in Github Actions integration guide ([#​14741](astral-sh/uv#14741)) - Clarify which portions of `requires-python` behavior are consistent with pip ([#​14752](astral-sh/uv#14752)) ### [`v0.8.0`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#080) [Compare Source](astral-sh/uv@0.7.22...0.8.0) Since we released uv [0.7.0](https://github.com/astral-sh/uv/releases/tag/0.7.0) in April, we've accumulated various changes that improve correctness and user experience, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes. This release also includes the stabilization of a couple `uv python install` features, which have been available under preview since late last year. ##### Breaking changes - **Install Python executables into a directory on the `PATH` ([#​14626](astral-sh/uv#14626 `uv python install` now installs a versioned Python executable (e.g., `python3.13`) into a directory on the `PATH` (e.g., `~/.local/bin`) by default. This behavior has been available under the `--preview` flag since [Oct 2024](astral-sh/uv#8458). This change should not be breaking unless it shadows a Python executable elsewhere on the `PATH`. To install unversioned executables, i.e., `python3` and `python`, use the `--default` flag. The `--default` flag has also been in preview, but is not stabilized in this release. Note that these executables point to the base Python installation and only include the standard library. That means they will not include dependencies from your current project (use `uv run python` instead) and you cannot install packages into their environment (use `uvx --with <package> python` instead). As with tool installation, the target directory respects common variables like `XDG_BIN_HOME` and can be overridden with a `UV_PYTHON_BIN_DIR` variable. You can opt out of this behavior with `uv python install --no-bin` or `UV_PYTHON_INSTALL_BIN=0`. See the [documentation on installing Python executables](https://docs.astral.sh/uv/concepts/python-versions/#installing-python-executables) for more details. - **Register Python versions with the Windows Registry ([#​14625](astral-sh/uv#14625 `uv python install` now registers the installed Python version with the Windows Registry as specified by [PEP 514](https://peps.python.org/pep-0514/). This allows using uv installed Python versions via the `py` launcher. This behavior has been available under the `--preview` flag since [Jan 2025](astral-sh/uv#10634). This change should not be breaking, as using the uv Python versions with `py` requires explicit opt in. You can opt out of this behavior with `uv python install --no-registry` or `UV_PYTHON_INSTALL_REGISTRY=0`. - **Prompt before removing an existing directory in `uv venv` ([#​14309](astral-sh/uv#14309 Previously, `uv venv` would remove an existing virtual environment without confirmation. While this is consistent with the behavior of project commands (e.g., `uv sync`), it's surprising to users that are using imperative workflows (i.e., `uv pip`). Now, `uv venv` will prompt for confirmation before removing an existing virtual environment. **If not in an interactive context, uv will still remove the virtual environment for backwards compatibility. However, this behavior is likely to change in a future release.** The behavior for other commands (e.g., `uv sync`) is unchanged. You can opt out of this behavior by setting `UV_VENV_CLEAR=1` or passing the `--clear` flag. - **Validate that discovered interpreters meet the Python preference ([#​7934](astral-sh/uv#7934 uv allows opting out of its managed Python versions with the `--no-managed-python` and `python-preference` options. Previously, uv would not enforce this option for Python interpreters discovered on the `PATH`. For example, if a symlink to a managed Python interpreter was created, uv would allow it to be used even if `--no-managed-python` was provided. Now, uv ignores Python interpreters that do not match the Python preference *unless* they are in an active virtual environment or are explicitly requested, e.g., with `--python /path/to/python3.13`. Similarly, uv would previously not invalidate existing project environments if they did not match the Python preference. Now, uv will invalidate and recreate project environments when the Python preference changes. You can opt out of this behavior by providing the explicit path to the Python interpreter providing `--managed-python` / `--no-managed-python` matching the interpreter you want. - **Install dependencies without build systems when they are `path` sources ([#​14413](astral-sh/uv#14413 When working on a project, uv uses the [presence of a build system](https://docs.astral.sh/uv/concepts/projects/config/#build-systems) to determine if it should be built and installed into the environment. However, when a project is a dependency of another project, it can be surprising for the dependency to be missing from the environment. Previously, uv would not build and install dependencies with [`path` sources](https://docs.astral.sh/uv/concepts/projects/dependencies/#path) unless they declared a build system or set `tool.uv.package = true`. Now, dependencies with `path` sources are built and installed regardless of the presence of a build system. If a build system is not present, the `setuptools.build_meta:__legacy__ ` backend will be used (per [PEP 517](https://peps.python.org/pep-0517/#source-trees)). You can opt out of this behavior by setting `package = false` in the source declaration, e.g.: ```toml [tool.uv.sources] foo = { path = "./foo", package = false } ``` Or, by setting `tool.uv.package = false` in the dependent `pyproject.toml`. See the documentation on [virtual dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/#virtual-dependencies) for details. - **Install dependencies without build systems when they are workspace members ([#​14663](astral-sh/uv#14663 As described above for dependencies with `path` sources, uv previously would not build and install workspace members that did not declare a build system. Now, uv will build and install workspace members that are a dependency of *another* workspace member regardless of the presence of a build system. The behavior is unchanged for workspace members that are not included in the `project.dependencies`, `project.optional-dependencies`, or `dependency-groups` tables of another workspace member. You can opt out of this behavior by setting `tool.uv.package = false` in the workspace member's `pyproject.toml`. See the documentation on [virtual dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/#virtual-dependencies) for details. - **Bump `--python-platform linux` to `manylinux_2_28` ([#​14300](astral-sh/uv#14300 uv allows performing [platform-specific resolution](https://docs.astral.sh/uv/concepts/resolution/#platform-specific-resolution) for explicit targets and provides short aliases, e.g., `linux`, for common targets. Previously, the default target for `--python-platform linux` was `manylinux_2_17`, which is compatible with most Linux distributions from 2014 or newer. We now default to `manylinux_2_28`, which is compatible with most Linux distributions from 2019 or newer. This change follows the lead of other tools, such as `cibuildwheel`, which changed their default to `manylinux_2_28` in [Mar 2025](pypa/cibuildwheel#2330). This change only affects users requesting a specific target platform. Otherwise, uv detects the `manylinux` target from your local glibc version. You can opt out of this behavior by using `--python-platform x86_64-manylinux_2_17` instead. - **Remove `uv version` fallback ([#​14161](astral-sh/uv#14161 In [Apr 2025](astral-sh/uv#12349), uv changed the `uv version` command to an interface for viewing and updating the version of the current project. However, when outside a project, `uv version` would continue to display uv's version for backwards compatibility. Now, when used outside of a project, `uv version` will fail. You cannot opt out of this behavior. Use `uv self version` instead. - **Require `--global` for removal of the global Python pin ([#​14169](astral-sh/uv#14169 Previously, `uv python pin --rm` would allow you to remove the global Python pin without opt in. Now, uv requires the `--global` flag to remove the global Python pin. You cannot opt out of this behavior. Use the `--global` flag instead. - **Support conflicting editable settings across groups ([#​14197](astral-sh/uv#14197 Previously, uv would always treat a package as editable if any requirement requested it as editable. However, this prevented users from declaring `path` sources that toggled the `editable` setting across dependency groups. Now, uv allows declaring different `editable` values for conflicting groups. However, if a project includes a path dependency twice, once with `editable = true` and once without any editable annotation, those are now considered conflicting, and uv will exit with an error. You cannot opt out of this behavior. Use consistent `editable` settings or [mark groups as conflicting](https://docs.astral.sh/uv/concepts/projects/config/#conflicting-dependencies). - **Make `uv_build` the default build backend in `uv init` ([#​14661](astral-sh/uv#14661 The uv build backend (`uv_build`) was [stabilized in uv 0.7.19](https://github.com/astral-sh/uv/releases/tag/0.7.19). Now, it is the default build backend for `uv init --package` and `uv init --lib`. Previously, `hatchling` was the default build backend. A build backend is still not used without opt-in in `uv init`, but we expect to change this in a future release. You can opt out of this behavior with `uv init --build-backend hatchling`. - **Set default `UV_TOOL_BIN_DIR` on Docker images ([#​13391](astral-sh/uv#13391 Previously, `UV_TOOL_BIN_DIR` was not set in Docker images which meant that `uv tool install` did not install tools into a directory on the `PATH` without additional configuration. Now, `UV_TOOL_BIN_DIR` is set to `/usr/local/bin` in all Docker derived images. When the default image user is overridden (e.g. `USER <UID>`) with a less privileged user, this may cause `uv tool install` to fail. You can opt out of this behavior by setting an alternative `UV_TOOL_BIN_DIR`. - **Update `--check` to return an exit code of 1 ([#​14167](astral-sh/uv#14167 uv uses an exit code of 1 to indicate a "successful failure" and an exit code of 2 to indicate an "error". Previously, `uv lock --check` and `uv sync --check` would exit with a code of 2 when the lockfile or environment were outdated. Now, uv will exit with a code of 1. You cannot opt out of this behavior. - **Use an ephemeral environment for `uv run --with` invocations ([#​14447](astral-sh/uv#14447 When using `uv run --with`, uv layers the requirements requested using `--with` into another virtual environment and caches it. Previously, uv would invoke the Python interpreter in this layered environment. However, this allows poisoning the cached environment and introduces race conditions for concurrent invocations. Now, uv will layer *another* empty virtual environment on top of the cached environment and invoke the Python interpreter there. This should only cause breakage in cases where the environment is being inspected at runtime. You cannot opt out of this behavior. - **Restructure the `uv venv` command output and exit codes ([#​14546](astral-sh/uv#14546 Previously, uv used `miette` to format the `uv venv` output. However, this was inconsistent with most of the uv CLI. Now, the output is a little different and the exit code has switched from 1 to 2 for some error cases. You cannot opt out of this behavior. - **Default to `--workspace` when adding subdirectories ([#​14529](astral-sh/uv#14529 When using `uv add` to add a subdirectory in a workspace, uv now defaults to adding the target as a workspace member. You can opt out of this behavior by providing `--no-workspace`. - **Add missing validations for disallowed `uv.toml` fields ([#​14322](astral-sh/uv#14322 uv does not allow some settings in the `uv.toml`. Previously, some settings were silently ignored when present in the `uv.toml`. Now, uv will error. You cannot opt out of this behavior. Use `--no-config` or remove the invalid settings. ##### Configuration - Add support for toggling Python bin and registry install options via env vars ([#​14662](astral-sh/uv#14662)) ### [`v0.7.22`](https://github.com/astral-sh/uv/releases/tag/0.7.22) [Compare Source](astral-sh/uv@0.7.21...0.7.22) #### Release Notes ##### Python - Upgrade GraalPy to 24.2.2 See the [GraalPy release notes](https://github.com/oracle/graalpython/releases/tag/graal-24.2.2) for more details. ##### Configuration - Add `UV_COMPILE_BYTECODE_TIMEOUT` environment variable ([#​14369](astral-sh/uv#14369)) - Allow users to override index `cache-control` headers ([#​14620](astral-sh/uv#14620)) - Add `UV_LIBC` to override libc selection in multi-libc environment ([#​14646](astral-sh/uv#14646)) ##### Bug fixes - Fix `--all-arches` when paired with `--only-downloads` ([#​14629](astral-sh/uv#14629)) - Skip Windows Python interpreters that return a broken MSIX package code ([#​14636](astral-sh/uv#14636)) - Warn on invalid `uv.toml` when provided via direct path ([#​14653](astral-sh/uv#14653)) - Improve async signal safety in Windows exception handler ([#​14619](astral-sh/uv#14619)) ##### Documentation - Mention the `revision` in the lockfile versioning doc ([#​14634](astral-sh/uv#14634)) - Move "Conflicting dependencies" to the "Resolution" page ([#​14633](astral-sh/uv#14633)) - Rename "Dependency specifiers" section to exclude PEP 508 reference ([#​14631](astral-sh/uv#14631)) - Suggest `uv cache clean` prior to `--reinstall` ([#​14659](astral-sh/uv#14659)) ##### Preview features - Make preview Python registration on Windows non-fatal ([#​14614](astral-sh/uv#14614)) - Update preview installation of Python executables to be non-fatal ([#​14612](astral-sh/uv#14612)) - Add `uv python update-shell` ([#​14627](astral-sh/uv#14627)) #### Install uv 0.7.22 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.7.22/uv-installer.sh | sh ``` ##### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.7.22/uv-installer.ps1 | iex" ``` #### Download uv 0.7.22 | File | Platform | Checksum | |--------|----------|----------| | [uv-aarch64-apple-darwin.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-pc-windows-msvc.zip.sha256) | | [uv-aarch64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [uv-i686-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-i686-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-powerpc64-unknown-linux-gnu.tar.gz) | PPC64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-powerpc64-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64le-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256) | | [uv-riscv64gc-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [uv-s390x-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-s390x-unknown-linux-gnu.tar.gz.sha256) | | [uv-x86\_64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [uv-armv7-unknown-linux-gnueabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [uv-aarch64-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-aarch64-unknown-linux-musl.tar.gz.sha256) | | [uv-i686-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-i686-unknown-linux-musl.tar.gz.sha256) | | [uv-x86\_64-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-x86_64-unknown-linux-musl.tar.gz.sha256) | | [uv-arm-unknown-linux-musleabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [uv-armv7-unknown-linux-musleabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.22/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256) | ### [`v0.7.21`](https://github.com/astral-sh/uv/releases/tag/0.7.21) [Compare Source](astral-sh/uv@0.7.20...0.7.21) #### Release Notes ##### Python - Restore the SQLite `fts4`, `fts5`, `rtree`, and `geopoly` extensions on macOS and Linux See the [`python-build-standalone` release notes](https://github.com/astral-sh/python-build-standalone/releases/tag/20250712) for more details. ##### Enhancements - Add `--python-platform` to `uv sync` ([#​14320](astral-sh/uv#14320)) - Support pre-releases in `uv version --bump` ([#​13578](astral-sh/uv#13578)) - Add `-w` shorthand for `--with` ([#​14530](astral-sh/uv#14530)) - Add an exception handler on Windows to display information on crash ([#​14582](astral-sh/uv#14582)) - Add hint when Python downloads are disabled ([#​14522](astral-sh/uv#14522)) - Add `UV_HTTP_RETRIES` to customize retry counts ([#​14544](astral-sh/uv#14544)) - Follow leaf symlinks matched by globs in `cache-key` ([#​13438](astral-sh/uv#13438)) - Support parent path components (`..`) in globs in `cache-key` ([#​13469](astral-sh/uv#13469)) - Improve `cache-key` performance ([#​13469](astral-sh/uv#13469)) ##### Preview features - Add `uv sync --output-format json` ([#​13689](astral-sh/uv#13689)) ##### Bug fixes - Do not re-resolve with a new Python version in `uv tool` if it is incompatible with `--python` ([#​14606](astral-sh/uv#14606)) ##### Documentation - Document how to nest dependency groups with `include-group` ([#​14539](astral-sh/uv#14539)) - Fix repeated word in Pyodide doc ([#​14554](astral-sh/uv#14554)) - Update CONTRIBUTING.md with instructions to format Markdown files via Docker ([#​14246](astral-sh/uv#14246)) - Fix version number for `setup-python` ([#​14533](astral-sh/uv#14533)) #### Install uv 0.7.21 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.7.21/uv-installer.sh | sh ``` ##### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.7.21/uv-installer.ps1 | iex" ``` #### Download uv 0.7.21 | File | Platform | Checksum | |--------|----------|----------| | [uv-aarch64-apple-darwin.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-pc-windows-msvc.zip.sha256) | | [uv-aarch64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [uv-i686-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-i686-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-powerpc64-unknown-linux-gnu.tar.gz) | PPC64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-powerpc64-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64le-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256) | | [uv-riscv64gc-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [uv-s390x-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-s390x-unknown-linux-gnu.tar.gz.sha256) | | [uv-x86\_64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [uv-armv7-unknown-linux-gnueabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [uv-aarch64-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-unknown-linux-musl.tar.gz.sha256) | | [uv-i686-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-i686-unknown-linux-musl.tar.gz.sha256) | | [uv-x86\_64-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-x86_64-unknown-linux-musl.tar.gz.sha256) | | [uv-arm-unknown-linux-musleabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [uv-armv7-unknown-linux-musleabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.21/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256) | ### [`v0.7.20`](https://github.com/astral-sh/uv/releases/tag/0.7.20) [Compare Source](astral-sh/uv@0.7.19...0.7.20) #### Release Notes ##### Python - Add Python 3.14.0b4 - Add zstd support to Python 3.14 on Unix (it already was available on Windows) - Add PyPy 7.3.20 (for Python 3.11.13) See the [PyPy](https://pypy.org/posts/2025/07/pypy-v7320-release.html) and [`python-build-standalone`](https://github.com/astral-sh/python-build-standalone/releases/tag/20250708) release notes for more details. ##### Enhancements - Add `--workspace` flag to `uv add` ([#​14496](astral-sh/uv#14496)) - Add auto-detection for Intel GPUs ([#​14386](astral-sh/uv#14386)) - Drop trailing arguments when writing shebangs ([#​14519](astral-sh/uv#14519)) - Add debug message when skipping Python downloads ([#​14509](astral-sh/uv#14509)) - Add support for declaring multiple modules in namespace packages ([#​14460](astral-sh/uv#14460)) ##### Bug fixes - Revert normalization of trailing slashes on index URLs ([#​14511](astral-sh/uv#14511)) - Fix forced resolution with all extras in `uv version` ([#​14434](astral-sh/uv#14434)) - Fix handling of pre-releases in preferences ([#​14498](astral-sh/uv#14498)) - Remove transparent variants in `uv-extract` to enable retries ([#​14450](astral-sh/uv#14450)) ##### Rust API - Add method to get packages involved in a `NoSolutionError` ([#​14457](astral-sh/uv#14457)) - Make `ErrorTree` for `NoSolutionError` public ([#​14444](astral-sh/uv#14444)) ##### Documentation - Finish incomplete sentence in pip migration guide ([#​14432](astral-sh/uv#14432)) - Remove `cache-dependency-glob` examples for `setup-uv` ([#​14493](astral-sh/uv#14493)) - Remove `uv pip sync` suggestion with `pyproject.toml` ([#​14510](astral-sh/uv#14510)) - Update documentation for GitHub to use `setup-uv@v6` ([#​14490](astral-sh/uv#14490)) #### Install uv 0.7.20 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.7.20/uv-installer.sh | sh ``` ##### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.7.20/uv-installer.ps1 | iex" ``` #### Download uv 0.7.20 | File | Platform | Checksum | |--------|----------|----------| | [uv-aarch64-apple-darwin.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-apple-darwin.tar.gz.sha256) | | [uv-x86\_64-apple-darwin.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-apple-darwin.tar.gz.sha256) | | [uv-aarch64-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-pc-windows-msvc.zip.sha256) | | [uv-i686-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-i686-pc-windows-msvc.zip.sha256) | | [uv-x86\_64-pc-windows-msvc.zip](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-pc-windows-msvc.zip.sha256) | | [uv-aarch64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [uv-i686-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-i686-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-powerpc64-unknown-linux-gnu.tar.gz) | PPC64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-powerpc64-unknown-linux-gnu.tar.gz.sha256) | | [uv-powerpc64le-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256) | | [uv-riscv64gc-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [uv-s390x-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-s390x-unknown-linux-gnu.tar.gz.sha256) | | [uv-x86\_64-unknown-linux-gnu.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [uv-armv7-unknown-linux-gnueabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [uv-aarch64-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-aarch64-unknown-linux-musl.tar.gz.sha256) | | [uv-i686-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-i686-unknown-linux-musl.tar.gz.sha256) | | [uv-x86\_64-unknown-linux-musl.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-x86_64-unknown-linux-musl.tar.gz.sha256) | | [uv-arm-unknown-linux-musleabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [uv-armv7-unknown-linux-musleabihf.tar.gz](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://github.com/astral-sh/uv/releases/download/0.7.20/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256) | </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Updates
uv python installto linkpython3.xin the executable directory (i.e.,~/.local/bin) to the the managed interpreter path.Includes
uv python dir --bin#8569Remaining work
uv python install --default#8650