TIL how to organize dependencies in large codebases with UV.
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.