astral-uv:charlie/verbose

Last commit made on 2024-03-04
Get this branch:
git clone -b charlie/verbose https://git.launchpad.net/astral-uv

Branch merges

Branch information

Name:
charlie/verbose
Repository:
lp:astral-uv

Recent commits

614db77... by Charlie Marsh <email address hidden>

Add some verbose logging to the registry_client.rs

14d968a... by Charlie Marsh <email address hidden>

Set `.metadata` suffix on URL path (#2123)

## Summary

Ensures that we don't add the `.metadata` suffix after the fragment, if
it exists.

5fed1f6... by Charlie Marsh <email address hidden>

Use simpler pip-like `Scheme` for install paths (#2173)

## Summary

This will make it easier to use the paths returned by `distutils.py`
(for some cases). No code or behavior changes; just removing some fields
we don't need.

93f5609... by samypr100 <email address hidden>

feat: add uv version to user agent (#2136)

## Summary

Closes #1977

This allows us to send uv's version in the `uv-client` User Agent
header.

Here's how request headers look like to a server now:
```
...
Accept: application/vnd.pypi.simple.v1+json, application/vnd.pypi.simple.v1+html;q=0.2, text/html;q=0.01
User-Agent: uv/0.1.13
...
```

~~I went for a mix of Option 1 and 2 from #1977.~~ Open to alternative
naming as well, not tied too strongly here to the names picked.

~~Another possibility for this new crate is that we can use it to
consolidate metadata that exists across crates to ultimately be able to
create linehaul information described in #1958, but I haven't looked
into what those changes might look like.~~

<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

<!-- How was it tested? -->
Added initial tests in the new crate to exercise its public API and
added a new test to uv-client to validate the headers using a 1-time
disposable server.

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

Respect local freshness when auditing installed environment (#2169)

## Summary

Ensures that local dependencies function similarly to editables, in that
if they're `uv pip install`ed, we invalidate them.

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

8c51b59... by Charlie Marsh <email address hidden>

Allow empty values in WHEEL files (#2170)

## Summary

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

## Test Plan

`cargo run pip install "openturns==1.22"`

6f94dc3... by Charlie Marsh <email address hidden>

Centralize up-to-date checking for path installations (#2168)

## Summary

Internal-only refactor to consolidate multiple codepaths we have for
checking whether a cached or installed entry is up-to-date with a local
requirement.

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

Expose the `--exclude-newer` flag (#2166)

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

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

Bump version to v0.1.14 (#2157)

898c3f6... by konstin

Better offline error message (#2110)

Error for `uv pip compile scripts/requirements/jupyter.in` without
internet:

**Before**

```
error: error sending request for url (https://pypi.org/simple/jupyter/): error trying to connect: dns error: failed to lookup address information: No such host is known. (os error 11001)
  Caused by: error trying to connect: dns error: failed to lookup address information: No such host is known. (os error 11001)
  Caused by: dns error: failed to lookup address information: No such host is known. (os error 11001)
  Caused by: failed to lookup address information: No such host is known. (os error 11001)
```

**After**

```
error: Could not connect, are you offline?
  Caused by: error sending request for url (https://pypi.org/simple/django/): error trying to connect: dns error: failed to lookup address information: Temporary failure in name resolution
  Caused by: error trying to connect: dns error: failed to lookup address information: Temporary failure in name resolution
  Caused by: dns error: failed to lookup address information: Temporary failure in name resolution
  Caused by: failed to lookup address information: Temporary failure in name resolution
```

On linux, it would be "Temporary failure in name resolution" instead of
"No such host is known. (os error 11001)".

The implementation checks for "dne error" stringly as hyper errors are
opaque. The danger is that this breaks with a hyper update. We still get
the complete error trace since reqwest eagerly inlines errors
(https://github.com/seanmonstar/reqwest/issues/2147).

No test since i wouldn't know how to simulate this in cargo test.

Fixes #1971