mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-03 18:38:21 +00:00
![]() ## Summary The basic idea here is: any project can either be a package, or not ("virtual"). If a project is virtual, we don't build or install it. A project is virtual if either of the following are true: - `tool.uv.virtual = true` is set. - `[build-system]` is absent. The concept of "virtual projects" only applies to workspace member right now; it doesn't apply to `path` dependencies which are treated like arbitrary Python source trees. TODOs that should be resolved prior to merging: - [ ] Documentation - [ ] How do we reconcile this with "virtual workspace roots" which are a little different -- they omit `[project]` entirely and don't even have a name? - [x] `uv init --virtual` should create a virtual project rather than a virtual workspace. - [x] Running `uv sync` in a virtual project after `uv init --virtual` shows `Audited 0 packages in 0.01ms`, which is awkward. (See: https://github.com/astral-sh/uv/pull/6588.) Closes https://github.com/astral-sh/uv/issues/6511. |
||
---|---|---|
.. | ||
benchmarks.md | ||
cli.md | ||
index.md | ||
platforms.md | ||
resolver-internals.md | ||
settings.md | ||
versioning.md |