julz.dev
← All posts

TIL how to organize dependencies in large codebases with UV.

View source

Imagine a vast Python project. And at the top level it is broken into many interconnected components.

UV workspaces allow each component to be managed more independently but tied together by a shared dependency project.toml file.

so in the top level project.toml:

[project]
...
[tool.uv.workspace]
members = ["packages/*"]

Alternatively, for more well define sub-projects, they can be included as independent projects:

[tool.uv.sources]
bird-feeder = { path = "packages/bird-feeder" }

& looks like ‘tach’ is a good tool to track dependency graphs.