uv/crates/uv-resolver/src
Andrew Gallant 81569c47bf uv-resolver: conditionally include the base package dependency
This _partially_ unwinds the optimization in #9540 by adding back the
base package dependency as a sibling to the extra package dependency
in some cases. Specifically, this occurs when _any_ of the extras are
declared as conflicting.

This is believed to be necessary (until another method is found) to
handle the forking logic based on conflicts. Namely, the forking logic
depends on the base and extra packages being sibling dependencies. If
only the extra is present, then it won't be included in the fork that
excludes all conflicting extras. And that means the base package won't
either, even though it should be included in that fork in some cases. If
the base package dependency is deferred, then it will never be reached.

This also adds another test and updates the snapshots that would have
caught the regression in #9540 if the conflict tests had been enabled.
2024-12-02 15:39:39 -05:00
..
lock Make `MarkerTree` `Copy` (#9542) 2024-11-30 14:07:07 -05:00
pubgrub uv-resolver: conditionally include the base package dependency 2024-12-02 15:39:39 -05:00
resolution Make `MarkerTree` `Copy` (#9542) 2024-11-30 14:07:07 -05:00
resolver uv-resolver: conditionally include the base package dependency 2024-12-02 15:39:39 -05:00
candidate_selector.rs Upgrade to Rust 1.83 (#9511) 2024-11-29 12:04:22 -05:00
dependency_mode.rs Store resolution options in lockfile (#5264) 2024-07-22 08:28:22 -04:00
dependency_provider.rs Add `uv-` prefix to all internal crates (#7853) 2024-10-01 20:15:32 -04:00
error.rs Upgrade to Rust 1.83 (#9511) 2024-11-29 12:04:22 -05:00
exclude_newer.rs switch to jiff from chrono (#6205) 2024-08-20 11:31:46 -05:00
exclusions.rs Add `uv-` prefix to all internal crates (#7853) 2024-10-01 20:15:32 -04:00
flat_index.rs Add `From` for `FlatDistributions` struct (#8800) 2024-11-04 08:41:39 +00:00
fork_indexes.rs uv: use ResolverEnvironment instead of ResolverMarkers 2024-11-04 11:09:06 -05:00
fork_urls.rs uv: use ResolverEnvironment instead of ResolverMarkers 2024-11-04 11:09:06 -05:00
graph_ops.rs Make `MarkerTree` `Copy` (#9542) 2024-11-30 14:07:07 -05:00
lib.rs uv-resolver: introduce new UniversalMarker type 2024-11-22 08:21:23 -05:00
manifest.rs Remove all special-casing for local version identifiers (#8818) 2024-11-07 14:29:54 -06:00
marker.rs Make `MarkerTree` `Copy` (#9542) 2024-11-30 14:07:07 -05:00
options.rs Don't recommend `--prerelease=allow` for source dist builds (#8192) 2024-10-14 21:04:30 -04:00
pins.rs Add `uv-` prefix to all internal crates (#7853) 2024-10-01 20:15:32 -04:00
preferences.rs uv-resolver: introduce new UniversalMarker type 2024-11-22 08:21:23 -05:00
prerelease.rs do not imply pre-release when `!=` operator is used (#7974) 2024-11-07 14:29:54 -06:00
python_requirement.rs uv: use ResolverEnvironment instead of ResolverMarkers 2024-11-04 11:09:06 -05:00
redirect.rs Remove separate test files in favor of same-file `mod tests` (#9199) 2024-11-18 20:11:46 +00:00
requires_python.rs Make `MarkerTree` `Copy` (#9542) 2024-11-30 14:07:07 -05:00
resolution_mode.rs Respect fork markers in `--resolution-mode=lowest-direct` (#8839) 2024-11-05 21:09:38 +00:00
universal_marker.rs Make `MarkerTree` `Copy` (#9542) 2024-11-30 14:07:07 -05:00
version_map.rs Use a dedicated message for incompatible Python versions in wheel ABI tags (#8363) 2024-10-20 12:14:11 -04:00
yanks.rs Only respect preferences across the same indexes (#9302) 2024-11-20 22:26:43 -05:00