uv/crates/uv-resolver/src
Charlie Marsh 3d1fec2732
Add derivation chains for dependency errors (#14824)
## Summary

This PR adds derivation chain for another class of resolver failures.
For example, if we encounter a transitive URL dependency, we now tell
the user which package included it, and the full derivation chain:

```
  × Failed to resolve dependencies for `foo` (v0.1.0)
  ╰─▶ Package `flask` was included as a URL dependency. URL dependencies must be
      expressed as direct requirements or constraints. Consider adding `flask @
      9d4508e893f34853a30fd769c02e9d/flask-3.1.1-py3-none-any.whl`
      to your dependencies or constraints file.
  help: `foo` (v0.1.0) was included because `baz` (v0.1.0) depends on `foo`
```

Closes #14795.
2025-07-22 15:08:33 -04:00
..
lock Enforce `requires-python` in `pylock.toml` (#14787) 2025-07-21 14:37:14 +00:00
pubgrub make `ErrorTree` for `NoSolutionError` externally accessible (#14444) 2025-07-03 11:43:59 -05:00
resolution Introduce a generic type for list operations (#14792) 2025-07-21 18:21:46 +02:00
resolver Add derivation chains for dependency errors (#14824) 2025-07-22 15:08:33 -04:00
candidate_selector.rs Fix handling of pre-releases in preferences (#14498) 2025-07-07 20:10:35 -05:00
dependency_mode.rs Store resolution options in lockfile (#5264) 2024-07-22 08:28:22 -04:00
dependency_provider.rs All (virtual) packages must have a priority (#10853) 2025-01-23 16:09:47 +00:00
error.rs Add derivation chains for dependency errors (#14824) 2025-07-22 15:08:33 -04:00
exclude_newer.rs Fix optional cfg gates (#14448) 2025-07-03 15:29:03 -05:00
exclusions.rs Always reinstall local source trees passed to `uv pip install` (#12176) 2025-03-17 21:12:21 +00:00
flat_index.rs Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
fork_indexes.rs Use parsed URLs for conflicting URL error message (#14380) 2025-07-01 08:18:01 -04:00
fork_strategy.rs Introduce a `--fork-strategy` preference mode (#9868) 2024-12-13 16:05:07 -05:00
fork_urls.rs Use parsed URLs for conflicting URL error message (#14380) 2025-07-01 08:18:01 -04:00
graph_ops.rs Support conflict markers in `uv export` (#11643) 2025-02-20 12:19:46 -08:00
lib.rs make `ErrorTree` for `NoSolutionError` externally accessible (#14444) 2025-07-03 11:43:59 -05:00
manifest.rs Move lowered requirement source type out of `uv-pypi-types` (#12356) 2025-03-20 21:16:12 -04:00
marker.rs Introduce a generic type for list operations (#14792) 2025-07-21 18:21:46 +02:00
options.rs Disallow mixing requirements across PyTorch indexes (#13179) 2025-04-28 20:06:18 +00:00
pins.rs Improve file pinning comments (#10387) 2025-01-08 11:42:25 +00:00
preferences.rs Fix handling of pre-releases in preferences (#14498) 2025-07-07 20:10:35 -05:00
prerelease.rs Move lowered requirement source type out of `uv-pypi-types` (#12356) 2025-03-20 21:16:12 -04:00
python_requirement.rs Add `[tool.uv.dependency-groups].mygroup.requires-python` (#13735) 2025-06-13 22:04:13 +00:00
redirect.rs Add `DisplaySafeUrl` newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
resolution_mode.rs Respect fork markers in `--resolution-mode=lowest-direct` (#8839) 2024-11-05 21:09:38 +00:00
universal_marker.rs Apply first set of Rustfmt edition 2024 changes (#13478) 2025-05-16 20:19:02 -04:00
version_map.rs Turn off `clippy::struct_excessive_bools` rule (#14102) 2025-06-17 12:18:54 +02:00
yanks.rs Move lowered requirement source type out of `uv-pypi-types` (#12356) 2025-03-20 21:16:12 -04:00