mirror of https://github.com/astral-sh/uv
The basic idea here is to make it so forking can only ever result in a resolution that, for a particular marker environment, will only install at most one version of a package. We can guarantee this by ensuring we only fork on conflicting dependency specifications only when their corresponding markers are completely disjoint. If they aren't, then resolution _must_ find a single version of the package in the intersection of the two dependency specifications. A test for this case has been added to packse here: https://github.com/astral-sh/packse/pull/182. Previously, that test would result in a resolution with two different unconditional versions of the same package. With this change, resolution fails (as it should). A commit-by-commit review should be helpful here, since the first commit is a refactor to make the second commit a bit more digestible. |
||
|---|---|---|
| .. | ||
| bench | ||
| benchmarks | ||
| links | ||
| packages | ||
| popular_packages | ||
| requirements | ||
| scenarios | ||
| workspaces | ||
| check_cache_compat.py | ||
| check_embedded_python.py | ||
| check_system_python.py | ||
| release.sh | ||
| sync_scenarios.sh | ||
| transform_readme.py | ||
| update_schemastore.py | ||