mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 19:08:04 +00:00
Allow package lookups across multiple indexes via explicit opt-in (#2815)
## Summary This partially revives https://github.com/astral-sh/uv/pull/2135 (with some modifications) to enable users to opt-in to looking for packages across multiple indexes. The behavior is such that, in version selection, we take _any_ compatible version from a "higher-priority" index over the compatible versions of a "lower-priority" index, even if that means we might accept an "older" version. Closes https://github.com/astral-sh/uv/issues/2775.
This commit is contained in:
parent
e0d55ef496
commit
34341bd6e9
23 changed files with 351 additions and 106 deletions
|
@ -47,10 +47,17 @@ async fn find_latest_version(
|
|||
client: &RegistryClient,
|
||||
package_name: &PackageName,
|
||||
) -> Option<Version> {
|
||||
let (_, raw_simple_metadata) = client.simple(package_name).await.ok()?;
|
||||
let simple_metadata = OwnedArchive::deserialize(&raw_simple_metadata);
|
||||
let version = simple_metadata.into_iter().next()?.version;
|
||||
Some(version)
|
||||
client
|
||||
.simple(package_name)
|
||||
.await
|
||||
.ok()
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.filter_map(|(_index, raw_simple_metadata)| {
|
||||
let simple_metadata = OwnedArchive::deserialize(&raw_simple_metadata);
|
||||
Some(simple_metadata.into_iter().next()?.version)
|
||||
})
|
||||
.max()
|
||||
}
|
||||
|
||||
pub(crate) async fn resolve_many(args: ResolveManyArgs) -> Result<()> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue