astral-uv:zb/ecosystem-test

Last commit made on 2024-04-10
Get this branch:
git clone -b zb/ecosystem-test https://git.launchpad.net/astral-uv

Branch merges

Branch information

Name:
zb/ecosystem-test
Repository:
lp:astral-uv

Recent commits

2dbe6f3... by Zanie Blue <email address hidden>

Use `--no-build`

7cb7d60... by Zanie Blue <email address hidden>

Review feedback

1150efe... by Zanie Blue <email address hidden>

Add ecosystem test for homeassistant

ee90599... by Zanie Blue <email address hidden>

Add ecosystem test for Prefect (#2942)

Reproduced https://github.com/astral-sh/uv/issues/2941 and confirmed
fix.

We probably ought to have some ecosystem test coverage — this seems like
a good starting point we can extend to other projects in the future.

7bcca28... by Charlie Marsh <email address hidden>

Bump version to v0.1.31 (#2944)

f9c0632... by Charlie Marsh <email address hidden>

Ignore direct URL distributions in prefetcher (#2943)

## Summary

The prefetcher tallies the number of times we tried a given package, and
then once we hit a threshold, grabs the version map, assuming it's
already been fetched. For direct URL distributions, though, we don't
have a version map! And there's no need to prefetch.

Closes https://github.com/astral-sh/uv/issues/2941.

83e2297... by Charlie Marsh <email address hidden>

Store common fields on `BuiltWheelIndex` struct (#2939)

## Summary

This mirrors the structure of the `RegistryWheelIndex`. It will be
useful once these indexes check hashes too.

13ae5ac... by Charlie Marsh <email address hidden>

Replace PyPI-internal Hashes representation with flat vector (#2925)

## Summary

Right now, we have a `Hashes` representation that looks like:

```rust
/// A dictionary mapping a hash name to a hex encoded digest of the file.
///
/// PEP 691 says multiple hashes can be included and the interpretation is left to the client.
#[derive(Debug, Clone, Eq, PartialEq, Default, Deserialize)]
pub struct Hashes {
    pub md5: Option<Box<str>>,
    pub sha256: Option<Box<str>>,
    pub sha384: Option<Box<str>>,
    pub sha512: Option<Box<str>>,
}
```

It stems from the PyPI API, which returns a dictionary of hashes.

We tend to pass these around as a vector of `Vec<Hashes>`. But it's a
bit strange because each entry in that vector could contain multiple
hashes. And it makes it difficult to ask questions like "Is
`sha256:ab21378ca980a8` in the set of hashes"?

This PR instead treats `Hashes` as the PyPI-internal type, and uses a
new `Vec<HashDigest>` everywhere in our own APIs.

1512e07... by Zanie Blue <email address hidden>

Split configuration options out of `uv-types` (#2924)

Needed to prevent circular dependencies in my toolchain work (#2931). I
think this is probably a reasonable change as we move towards persistent
configuration too?

Unfortunately `BuildIsolation` needs to be in `uv-types` to avoid
circular dependencies still. We might be able to resolve that in the
future.

9073566... by Charlie Marsh <email address hidden>

Upgrade cargo-dist (#2936)