753ad06fe5
## Summary <!-- What's the purpose of the change? What does it do, and why? --> Fixes #18021 Store dependencies excluded by uv tool install in the tool receipt and provide these same dependencies to the requirements resolver when the tool is upgraded. ## Test Plan <!-- How was it tested? --> Running the repro commands provided in issue #18021, we can see the excluded dependency does not get reinstalled when the tool is upgraded: ```sh $ cat /tmp/excludes.txt markdown-it-py $ ~/Dev/uv/target/debug/uv install --excludes /tmp/excludes.txt 2048-cli==1.0.2 Resolved 7 packages in 150ms Installed 7 packages in 56ms + 2048-cli==1.0.2 + click==8.3.1 + maturin==1.12.0 + numpy==2.4.2 + pygments==2.19.2 + rich==13.9.4 + rich-menu==0.3.0 Installed 1 executable: 2048-cli $ cat ~/.local/share/uv/tools/2048-cli/uv-receipt.toml [tool] requirements = [{ name = "2048-cli" }] excludes = ["markdown-it-py"] entrypoints = [ { name = "2048-cli", install-path = "/home/brad/.local/bin/2048-cli", from = "2048-cli" }, ] $ ~/Dev/uv/target/debug/uv tool upgrade 2048-cli Updated 2048-cli v1.0.2 -> v1.0.3 - 2048-cli==1.0.2 + 2048-cli==1.0.3 Installed 1 executable: 2048-cli ``` --------- Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
uv
uv is a Python package and project manager.
See the documentation or repository for more information.
This crate is the entry point to the uv command-line interface. The Rust API exposed here is not considered public interface.
This is version 0.10.7. The source can be found here.
The following uv workspace members are also available:
- uv-auth
- uv-bin-install
- uv-build
- uv-build-backend
- uv-build-frontend
- uv-cache
- uv-cache-info
- uv-cache-key
- uv-cli
- uv-client
- uv-configuration
- uv-console
- uv-dirs
- uv-dispatch
- uv-distribution
- uv-distribution-filename
- uv-distribution-types
- uv-extract
- uv-flags
- uv-fs
- uv-git
- uv-git-types
- uv-globfilter
- uv-install-wheel
- uv-installer
- uv-keyring
- uv-logging
- uv-macros
- uv-metadata
- uv-normalize
- uv-once-map
- uv-options-metadata
- uv-pep440
- uv-pep508
- uv-performance-memory-allocator
- uv-platform
- uv-platform-tags
- uv-preview
- uv-publish
- uv-pypi-types
- uv-python
- uv-redacted
- uv-requirements
- uv-requirements-txt
- uv-resolver
- uv-scripts
- uv-settings
- uv-shell
- uv-small-str
- uv-state
- uv-static
- uv-test
- uv-tool
- uv-torch
- uv-trampoline-builder
- uv-types
- uv-unix
- uv-version
- uv-virtualenv
- uv-warnings
- uv-windows
- uv-workspace
uv's workspace members are considered internal and will have frequent breaking changes.
See uv's crate versioning policy for details on versioning.