I'm willing to write these scenarios myself, but I'm making an issue first in case of any objection, in particular because this is about following the spec, and I beleive uv deviates from the spec for this behavior to be more compatible with the ecosystem:
- With requirement
A and A has a new version with a non-legacy version and an old version with a legacy version then A should successfully resolve to the new non-legacy version
- With requirement
A and A has a new version with a legacy version and an old version with a non-legacy version then A should successfully resolve to old non-legacy version
- With requirement
A and A only has legacy versions then A should not resolve
- With a requirement on
A that involves a legacy version in the specifier then that requirement should not resolve
- Same as all of above but the where
A depends on B and B suffers from the legacy versions/specifiers
I'm willing to write these scenarios myself, but I'm making an issue first in case of any objection, in particular because this is about following the spec, and I beleive uv deviates from the spec for this behavior to be more compatible with the ecosystem:
AandAhas a new version with a non-legacy version and an old version with a legacy version thenAshould successfully resolve to the new non-legacy versionAandAhas a new version with a legacy version and an old version with a non-legacy version thenAshould successfully resolve to old non-legacy versionAandAonly has legacy versions thenAshould not resolveAthat involves a legacy version in the specifier then that requirement should not resolveAdepends onBandBsuffers from the legacy versions/specifiers