mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-03 02:22:19 +00:00
![]() Follow-up to #6959 and #6961: Use the reachability computation instead of `propagate_markers` everywhere. With `marker_reachability`, we have a function that computes for each node the markers under which it is (`requirements.txt`, no markers provided on installation) or can be (`uv.lock`, depending on the markers provided on installation) included in the installation. Put differently: If the marker computed by `marker_reachability` is not fulfilled for the current platform, the package is never required on the current platform. We compute the markers for each package in the graph, this includes the virtual extra packages and the base packages. Since we know that each virtual extra package depends on its base package (`foo[bar]` implied `foo`), we only retain the base package marker in the `requirements.txt` graph. In #6959/#6961 we were only using it for pruning packages in `uv.lock`, now we're also using it for the markers in `requirements.txt`. I think this closes #4645, CC @bluss. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |