astral-uv:zb/decode-password

Last commit made on 2024-04-09
Get this branch:
git clone -b zb/decode-password https://git.launchpad.net/astral-uv

Branch merges

Branch information

Name:
zb/decode-password
Repository:
lp:astral-uv

Recent commits

43ded54... by Zanie Blue <email address hidden>

URL decode passwords for storage

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)

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

Bump version to v0.1.30 (#2934)

1cdadbd... by Zanie Blue <email address hidden>

Add filtering of patch Python versions unless explicitly requested (#2930)

Elides Python patch versions from the test suite unless the test
specifically requests a patch version.

This reduces some toil when not using our bootstrapped Python versions.

Partially addresses https://github.com/astral-sh/uv/issues/2165 though
we'll need changes to the scenario tests to really support their case.

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

Skip scenario tests on Windows (#2932)

These tests are about resolver correctness, which should not be platform
dependent and Windows CI is horribly slow.