uv
4859a279 - Add extra dependency annotations to lockfile and sync commands (#3913)

Commit
1 year ago
Add extra dependency annotations to lockfile and sync commands (#3913) ## Summary This PR adds extras to the lockfile, and enables users to selectively sync extras in `uv sync` and `uv run`. The end result here was fairly simple, though it required a few refactors to get here. The basic idea is that `DistributionId` now includes `extra: Option<ExtraName>`, so we effectively treat extras as separate packages. Generating the lockfile, and generating the resolution from the lockfile, fall out of this naturally with no special-casing or additional changes. The main downside here is that it bloats the lockfile significantly. Specifically: - We include _all_ distribution URLs and hashes for _every_ extra variant. - We include all dependencies for the extra variant, even though that are dependencies of the base package. We could normalize this representation by changing each distribution have an `optional-dependencies` hash map that keys on extras, but we actually don't have the information we need to create that right now (specifically, we can't differentiate between dependencies that _require_ the extra and dependencies on the base package). Closes #3700.
Author
Parents
Loading