Skip to content

managing project tools with a new uv tool sync subcommand #13268

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

Open
itcarroll opened this issue May 2, 2025 · 3 comments
Open

managing project tools with a new uv tool sync subcommand #13268

itcarroll opened this issue May 2, 2025 · 3 comments
Labels
enhancement New feature or improvement to existing functionality needs-design Needs discussion, investigation, or design

Comments

@itcarroll
Copy link

Summary

I would like uv to help manage my frequently used tools by 1) knowing about the tools (with their version constraints and extras) used in development for a project and 2) ensuring that matching tools are available.

Example

For instance, suppose I have a pyproject.toml that includes a "tools" dependency group.

[dependency-groups]
tools = [
    "dvc[s3]>=3",
]

The name "tools" wouldn't be special, as there would be a new setting like:

[tool.uv]
install-tools = ["tools"]

When I am working in this project, I would execute the new subcommand.

$ uv tool sync

As a result, I would get

$ dvc --version
3.59.1

Which would be great, because trying to use a 2.x version of dvc or one without s3 extra would not work at all.

I'm sure there are better people than me to improve on the useage, but I hope that example demonstrates the goal. Being able to easily share the tools I want my collaborators to have available this way would help me move away from installing tools in project virtual environments, which seems common but annoying nowadays.

Thank you for a great tool!

@itcarroll itcarroll added the enhancement New feature or improvement to existing functionality label May 2, 2025
@zanieb
Copy link
Member

zanieb commented May 2, 2025

@itcarroll
Copy link
Author

Thanks, @zanieb. It looks like uv tool sync (along with uv tool add and uv tool remove) were considered but not included in the original implementation of uv tool. Perhaps with the depency-groups table, there is now much less potential for confusion. I'm glad there is support for something similar expressed in #12533. I'll leave this open though, as I don't think my description duplicates that one. But no worries if you prefer to close this one!

@zanieb
Copy link
Member

zanieb commented May 2, 2025

Yeah we sort of wanted to wait for the dependency-groups table to move forward on a design there. I think there's still some design work to be done before we can ship something, but definitely agree it will be nice to have!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or improvement to existing functionality needs-design Needs discussion, investigation, or design
Projects
None yet
Development

No branches or pull requests

2 participants