Fix discovery of pre-release managed Python versions in range requests (#13330)

We have test coverage for this elsewhere, but managed Python versions
are a distinct case because we know the _full_ version before querying
the interpreter (whereas, when we find them on the `PATH`, we usually
only know `X.y` from the file name).

This pre-filter logic now matches our subsequent logic at


https://github.com/astral-sh/uv/blob/060be9cef197d83e5546fb1be10e8e8373a1cfc6/crates/uv-python/src/discovery.rs#L2146-L2149



https://github.com/astral-sh/uv/pull/13330/commits/060be9cef197d83e5546fb1be10e8e8373a1cfc6
shows the snapshot change.
This commit is contained in:
Zanie Blue
2025-05-07 09:27:13 -05:00
committed by GitHub
parent 1eaa432e37
commit ddd6f3debe
2 changed files with 11 additions and 1 deletions
+1 -1
View File
@@ -2177,7 +2177,7 @@ impl VersionRequest {
(version.major(), version.minor(), version.patch())
== (*major, *minor, Some(*patch))
}
Self::Range(specifiers, _) => specifiers.contains(&version.version),
Self::Range(specifiers, _) => specifiers.contains(&version.version.only_release()),
Self::MajorMinorPrerelease(major, minor, prerelease, _) => {
(version.major(), version.minor(), version.pre())
== (*major, *minor, Some(*prerelease))