mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 19:08:04 +00:00
![]() ## Summary At present, when performing a `pip-install`, we first do a resolution, then take the set of requirements and basically run them through our `pip-sync`, which itself includes re-resolving the dependencies to get a specific `Dist` for each package. (E.g., the set of requirements might say `flask==3.0.0`, but the installer needs a specific _wheel_ or source distribution to install.) This PR removes this second resolution by exposing the set of pinned packages from the resolution. The main challenge here is that we have an optimization in the resolver such that we let the resolver read metadata from an incompatible wheel as long as a source distribution exists for a given package. This lets us avoid building source distributions in the resolver under the assumption that we'll be able to install the package later on, if needed. As such, the resolver now needs to track the resolution and installation filenames separately. |
||
---|---|---|
.. | ||
common | ||
snapshots | ||
add.rs | ||
pip_compile.rs | ||
pip_install.rs | ||
pip_sync.rs | ||
pip_uninstall.rs | ||
remove.rs | ||
venv.rs |