uv/crates/uv-resolver/src
konsti 5bcdaedf8b
Merge extras in lockfile (#5181)
As user, you specify a list of extras. Internally, we decompose this
into one virtual package per extra. We currently leak this abstraction
by writing one entry per extra to the lockfile:

```toml
[[distribution]]
name = "foo"
version = "4.39.0.dev0"
source = { editable = "." }
dependencies = [
    { name = "pandas" },
    { name = "pandas", extra = "excel" },
    { name = "pandas", extra = "hdf5" },
    { name = "pandas", extra = "html", marker = "os_name != 'posix'" },
    { name = "pandas", extra = "output-formatting", marker = "os_name == 'posix'" },
    { name = "pandas", extra = "plot", marker = "os_name == 'posix'" },
]
```

Instead, we should merge the extras into a list of extras, creating a
more concise lockfile:

```toml
[[distribution]]
name = "foo"
version = "4.39.0.dev0"
source = { editable = "." }
dependencies = [
    { name = "pandas", extra = ["excel", "hdf5"] },
    { name = "pandas", extra = ["html"], marker = "os_name != 'posix'" },
    { name = "pandas", extra = ["output-formatting", "plot"], marker = "os_name == 'posix'" },
]
```

The base package is now implicitly included, as it is in PEP 508.

Fixes #4888
2024-07-18 14:07:49 -04:00
..
pubgrub Allow conflicting locals when forking (#5104) 2024-07-16 16:57:30 +00:00
resolution Enforce hashes in lockfile install (#5170) 2024-07-17 23:10:37 +00:00
resolver Warn about unconstrained direct deps in lowest resolution (#5142) 2024-07-18 03:44:53 +00:00
snapshots Merge extras in lockfile (#5181) 2024-07-18 14:07:49 -04:00
bare.rs Add support for parsing unnamed URL requirements (#2567) 2024-03-21 03:28:58 +00:00
candidate_selector.rs uv-distribution: include all wheels in distribution types (#3595) 2024-05-15 15:07:28 -04:00
dependency_mode.rs Rename to uv (#1302) 2024-02-15 11:19:46 -06:00
dependency_provider.rs Update pubgrub to new add_incompatibility_from_dependencies (#4062) 2024-06-05 20:46:00 +02:00
error.rs Handle universal vs. fork markers with ResolverMarkers (#5099) 2024-07-17 18:59:33 +02:00
exclude_newer.rs Improve JSON Schema and add export script (#3461) 2024-05-08 16:15:16 +00:00
exclusions.rs Allow constraints to be provided in --upgrade-package (#4952) 2024-07-09 20:09:13 -07:00
flat_index.rs Key hash policy on version, rather than package (#5169) 2024-07-17 19:01:49 -04:00
fork_urls.rs Handle universal vs. fork markers with ResolverMarkers (#5099) 2024-07-17 18:59:33 +02:00
lib.rs Handle universal vs. fork markers with ResolverMarkers (#5099) 2024-07-17 18:59:33 +02:00
lock.rs Merge extras in lockfile (#5181) 2024-07-18 14:07:49 -04:00
manifest.rs Apply extra to overrides and constraints (#4829) 2024-07-09 20:37:24 +02:00
marker.rs uv-resolver: add support for incomplete markers 2024-07-15 10:09:01 -07:00
options.rs Implement --index-strategy unsafe-best-match (#3138) 2024-04-27 01:24:54 +00:00
pins.rs uv-resolver: implement merging of forked resolutions 2024-05-30 14:23:14 -04:00
preferences.rs Set fork solution as preference when resolving (#4662) 2024-07-01 08:25:40 -04:00
prerelease_mode.rs Add support for tool.uv into distribution building (#3904) 2024-05-31 02:42:03 +00:00
python_requirement.rs uv-resolver: partially revert Requires-Python version narrowing 2024-07-08 09:56:59 -07:00
redirect.rs Preserve fragments when applying verbatim redirects (#4038) 2024-06-05 03:53:23 +00:00
requires_python.rs Filter out markers based on Python requirement (#4912) 2024-07-09 09:15:58 -07:00
resolution_mode.rs Apply extra to overrides and constraints (#4829) 2024-07-09 20:37:24 +02:00
version_map.rs Key hash policy on version, rather than package (#5169) 2024-07-17 19:01:49 -04:00
yanks.rs Key hash policy on version, rather than package (#5169) 2024-07-17 19:01:49 -04:00