Support {package}@{version} in uv tool install#6762
Conversation
e62b0b6 to
ad2a21f
Compare
| .requirements; | ||
| // If the user passed, e.g., `ruff@latest`, refresh the cache. | ||
| let cache = if target.is_latest() { | ||
| cache.with_refresh(Refresh::All(Timestamp::now())) |
There was a problem hiding this comment.
Refresh all? Or just refresh Ruff?
There was a problem hiding this comment.
In uv tool run at least we refresh everything. I think we might have to refresh everything here because we don't know the package name yet...?
| } | ||
| } else { | ||
| settings | ||
| }; |
There was a problem hiding this comment.
This part here doesn't exist in uv tool run, because there, we always resolve an ephemeral environment and recreate it if any dependencies changed. Here, we need to ensure that we upgrade when re-resolving the tool environment.
| match self { | ||
| Self::Unspecified(name) => name, | ||
| Self::Version(name, _) => name, | ||
| Self::Latest(name) => name, | ||
| Self::UserDefined(name, _) => name, | ||
| } |
There was a problem hiding this comment.
I was hoping to merge that today too. Unsure if it's 100% right even though Konsti tried it?
zanieb
left a comment
There was a problem hiding this comment.
Could probably use documentation in https://docs.astral.sh/uv/concepts/tools/#tool-versions
ad2a21f to
48709e4
Compare
|
That Windows failure looks unrelated. |
|
Something in the workspace tests. |
Saw that flake earlier too |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | minor | `0.3.5` -> `0.4.0` | 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.4.0`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#040) [Compare Source](astral-sh/uv@0.3.5...0.4.0) This release adds first-class support for Python projects that are not designed as Python packages (e.g., web applications, data science projects, etc.). In doing so, it includes some breaking changes around uv's handling of projects. Previously, uv required that all projects could be built into distributable Python packages, and installed them into the virtual environment. Projects created by `uv init` always included a `[build-system]` definition and existing projects that did not define a `[build-system]` would use the legacy setuptools build backend by default. Most users are not developing libraries that need to be packaged and published to PyPI. Instead, they're building applications using web frameworks, or running collections of Python scripts in the project's root directory. In these cases, requiring a `[build-system]` was confusing and error-prone. In this release, uv changes the default behavior to orient around these common use cases. In summary, the major changes are: - uv no longer attempts to package and install projects that do not define a `[build-system]`. - While the project itself will not be installed into the virtual environment, its dependencies will still be included. - The previous behavior can be recovered by setting `package = true` in the `[tool.uv]` section of your `pyproject.toml`. - `uv init` no longer creates a `src/` directory or defines a `[build-system]` by default. - The previous behavior can be recovered with `uv init --lib` or `uv init --app --package`. - uv allows and recommends including `[project]` definitions in virtual workspace roots. - Previously, the uv required the `[project]` section to be omitted. - uv allows disabling packaging of projects, even if they define a `[build-system]`, by setting `package = false` in the `[tool.uv]` section of your `pyproject.toml`. See the latest documentation on [build systems in projects](http://docs.astral.sh/uv/concepts/projects/#build-systems) for more details. ##### Enhancements - Add first-class support for non-packaged projects ([#​6585](astral-sh/uv#6585)) - Add `--app` and `--lib` options to `uv init` ([#​6689](astral-sh/uv#6689)) - Use `virtual` source label in lockfile for non-packaged dependencies ([#​6728](astral-sh/uv#6728)) - Read hash from URL fragment if `--hashes` are omitted ([#​6731](astral-sh/uv#6731)) - Support `{package}@​{version}` in `uv tool install` ([#​6762](astral-sh/uv#6762)) - Publish additional Docker tags without patch version ([#​6734](astral-sh/uv#6734)) ##### Bug fixes - Accept either strings or structs for hosts ([#​6763](astral-sh/uv#6763)) - Avoid including non-excluded members in parent workspaces ([#​6735](astral-sh/uv#6735)) - Avoid reading stale `.egg-info` from mutable sources ([#​6714](astral-sh/uv#6714)) - Avoid writing invalid PEP 723 scripts on `tool.uv.sources` ([#​6706](astral-sh/uv#6706)) - Compare virtual members when invalidating lockfile ([#​6754](astral-sh/uv#6754)) - Do not require workspace members to sync with `--frozen` ([#​6737](astral-sh/uv#6737)) - Implement deserialization for trusted host ([#​6716](astral-sh/uv#6716)) - Avoid showing duplicate paths in `uv python list` ([#​6740](astral-sh/uv#6740)) - Raise an error for unclosed script tags in PEP 723 scripts ([#​6704](astral-sh/uv#6704)) ##### Documentation - Add dependabot and renovate documentation page ([#​6236](astral-sh/uv#6236)) - Bind to the host to allow connections in FastAPI Docker example ([#​6753](astral-sh/uv#6753)) - Fix some broken links ([#​6705](astral-sh/uv#6705)) - Update FastAPI guide for virtual projects and use `uv init` to create the `pyproject.toml` ([#​6752](astral-sh/uv#6752)) - Update project documentation for the application / library concepts ([#​6718](astral-sh/uv#6718)) - Update workspace documentation to remove legacy virtual projects ([#​6720](astral-sh/uv#6720)) </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=-->
Summary
Closes #6759.
Closes #6535.