uv/crates/uv-client
Andrew Gallant 5b8ed92f95 uv-client: switch heuristic freshness lifetime to hard-coded value
The comment in the code explains the bulk of this:

```rust
// We previously computed this heuristic freshness lifetime by
// looking at the difference between the last modified header and
// the response's date header. We then asserted that the cached
// response ought to be "fresh" for 10% of that interval.
//
// It turns out that this can result in very long freshness
// lifetimes[1] that lead to uv caching too aggressively.
//
// Since PyPI sets a max-age of 600 seconds and since we're
// principally just interacting with Python package indices here,
// we just assume a freshness lifetime equal to what PyPI has.
//
// Note though that a better solution here is for the index to
// support proper HTTP caching headers (ideally Cache-Control, but
// Expires also works too, as above).
```

We also remove the `heuristic_percent` field on `CacheConfig`. Since
that's actually part of the cache itself, we bump the simple cache
version.

Finally, we add some more `trace!` calls that should hopefully make
diagnosing issues related to the freshness lifetime a bit easier in the
future.

Fixes #5351
2024-07-31 08:12:11 -07:00
..
src uv-client: switch heuristic freshness lifetime to hard-coded value 2024-07-31 08:12:11 -07:00
tests Remove trailing period from user-facing messages (#5218) 2024-07-19 10:43:49 -04:00
Cargo.toml Enable workspace lint configuration in remaining crates (#4329) 2024-06-18 03:02:28 +00:00
README.md Rename to uv (#1302) 2024-02-15 11:19:46 -06:00

pypi-client

A general-use client for interacting with PyPI.

Loosely modeled after Orogene's oro-client.