uv/scripts
Andrew Gallant c46fa74e65
make universal resolver fork only when markers are disjoint (#4135)
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.
2024-06-07 23:40:55 +00:00
..
bench Expand documentation in scripts/bench/__main__.py (#2875) 2024-04-08 02:48:12 +00:00
benchmarks Rename to uv (#1302) 2024-02-15 11:19:46 -06:00
links Replace Twisted with an empty bz2 package (#3258) 2024-04-25 03:45:23 +00:00
packages Remove special-casing for editable requirements (#3869) 2024-05-28 15:49:34 +00:00
popular_packages Finish install-many with pypi 10k most dependents (#732) 2023-12-27 09:42:51 -05:00
requirements Add airflow benchmark (#3643) 2024-05-23 13:25:54 -04:00
scenarios make universal resolver fork only when markers are disjoint (#4135) 2024-06-07 23:40:55 +00:00
workspaces Default to current Python minor if Requires-Python is absent (#4070) 2024-06-05 20:45:50 +00:00
check_cache_compat.py fix typos (#2804) 2024-04-03 11:57:19 +00:00
check_embedded_python.py Add support for embedded Python on Windows (#3161) 2024-04-22 13:34:27 -04:00
check_system_python.py Deduplicate symbolic links between purelib and platlib (#3002) 2024-04-12 17:08:56 -04:00
release.sh Use uv tool run for release script (#3764) 2024-05-22 16:31:13 -05:00
sync_scenarios.sh Fixups to release.sh and sync_scenarios.sh (#2790) 2024-04-03 01:59:58 +00:00
transform_readme.py Add top-level benchmark to the README (#2622) 2024-03-22 16:07:31 -04:00
update_schemastore.py Improve JSON Schema and add export script (#3461) 2024-05-08 16:15:16 +00:00