uv/crates/puffin-cli/tests
Charlie Marsh c764155988
Avoid double-resolving during pip-install (#610)
## 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.
2023-12-12 17:29:09 +00:00
..
common Modify install plan to support all distribution types (#581) 2023-12-07 04:43:34 +00:00
snapshots Download, build, and install in a single pipeline phase (#605) 2023-12-11 15:42:29 +00:00
add.rs Use temp_dir casing everywhere (#440) 2023-11-16 21:04:10 +00:00
pip_compile.rs Allow yanked versions when specified via == (#561) 2023-12-05 09:44:06 +01:00
pip_install.rs Avoid double-resolving during pip-install (#610) 2023-12-12 17:29:09 +00:00
pip_sync.rs Download, build, and install in a single pipeline phase (#605) 2023-12-11 15:42:29 +00:00
pip_uninstall.rs Use temp_dir casing everywhere (#440) 2023-11-16 21:04:10 +00:00
remove.rs Use temp_dir casing everywhere (#440) 2023-11-16 21:04:10 +00:00
venv.rs Use full Python version when determining compatibility (#528) 2023-12-04 01:02:24 +00:00