astral-uv:ibraheem/tmate

Last commit made on 2024-05-21
Get this branch:
git clone -b ibraheem/tmate https://git.launchpad.net/astral-uv

Branch merges

Branch information

Name:
ibraheem/tmate
Repository:
lp:astral-uv

Recent commits

32d45ad... by Ibraheem Ahmed <email address hidden>

debugging

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

Rename `DistInfoMetadata` to `CoreMetadata` (#3699)

## Summary

This reflects the change codified in PEP 714.

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

Add PEP 714 support for HTML API client (#3697)

## Summary

If `data-core-metadata` is set, we need to respect that over
`data-dist-info-metadata` in the HTML client.

See: https://github.com/astral-sh/uv/issues/3689

e6a5da7... by konstin

Fix clippy on main by boxing large error variant (#3707)

I don't really understand why this only happens on windows clippy and
not on linux too, but as usual, boxing the error variant fixes it.

Fixup for #3585

2ffd453... by konstin

Discover workspaces without using them in resolution (#3585)

Add minimal support for workspace discovery, only used for determining
paths in the bluejay commands.

We can now discover the workspace structure, namely that the
`pyproject.toml` of a package belongs to a workspace `pyproject.toml`
with members and exclusion. The globbing logic is inspired by cargo. We
don't resolve `workspace = true` metadata declarations yet.

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

Add PEP 714 support for JSON API client (#3698)

## Summary

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

## Test Plan

Manually verified we pick up `core-metadata` from PyPI if I remove the
aliases.

95af1db... by konstin

Let `RequirementSource::Path.editable` be `bool`, not `Option<bool>` (#3693)

Small refactoring of the internal representation. This does not change
`tool.uv.sources`.

f396c6c... by konstin

Revert "Support editables in `uv sync` (#3692)" (#3696)

This reverts commit #3692 until we get the editables from the lockfile.

647f705... by konstin

Abort tests running for more than 60s to catch deadlocks (#3694)

We observed recent deadlocks (e.g.
https://github.com/astral-sh/uv/actions/runs/9173987312/job/25223866259?pr=3693)
causing CI to run until the default github actions timeout. To prevent
this, we add a 60s timeout in nextest. 60s should be enough both on CI
and on developers' machines.

76418f5... by konstin

Arc-wrap `PubGrubPackage` for cheap cloning in pubgrub (#3688)

Pubgrub stores incompatibilities as (package name, version range)
tuples, meaning it needs to clone the package name for each
incompatibility, and each non-borrowed operation on incompatibilities.
https://github.com/astral-sh/uv/pull/3673 made me realize that
`PubGrubPackage` has gotten large (expensive to copy), so like `Version`
and other structs, i've added an `Arc` wrapper around it.

It's a pity clippy forbids `.deref()`, it's less opaque than `&**` and
has IDE support (clicking on `.deref()` jumps to the right impl).

## Benchmarks

It looks like this matters most for complex resolutions which, i assume
because they carry larger `PubGrubPackageInner::Package` and
`PubGrubPackageInner::Extra` types.

```bash
hyperfine --warmup 5 "./uv-main pip compile -q ./scripts/requirements/jupyter.in" "./uv-branch pip compile -q ./scripts/requirements/jupyter.in"
hyperfine --warmup 5 "./uv-main pip compile -q ./scripts/requirements/airflow.in" "./uv-branch pip compile -q ./scripts/requirements/airflow.in"
hyperfine --warmup 5 "./uv-main pip compile -q ./scripts/requirements/boto3.in" "./uv-branch pip compile -q ./scripts/requirements/boto3.in"
```

```
Benchmark 1: ./uv-main pip compile -q ./scripts/requirements/jupyter.in
  Time (mean ± σ): 18.2 ms ± 1.6 ms [User: 14.4 ms, System: 26.0 ms]
  Range (min … max): 15.8 ms … 22.5 ms 181 runs

Benchmark 2: ./uv-branch pip compile -q ./scripts/requirements/jupyter.in
  Time (mean ± σ): 17.8 ms ± 1.4 ms [User: 14.4 ms, System: 25.3 ms]
  Range (min … max): 15.4 ms … 23.1 ms 159 runs

Summary
  ./uv-branch pip compile -q ./scripts/requirements/jupyter.in ran
    1.02 ± 0.12 times faster than ./uv-main pip compile -q ./scripts/requirements/jupyter.in
```

```
Benchmark 1: ./uv-main pip compile -q ./scripts/requirements/airflow.in
  Time (mean ± σ): 153.7 ms ± 3.5 ms [User: 165.2 ms, System: 157.6 ms]
  Range (min … max): 150.4 ms … 163.0 ms 19 runs

Benchmark 2: ./uv-branch pip compile -q ./scripts/requirements/airflow.in
  Time (mean ± σ): 123.9 ms ± 4.6 ms [User: 152.4 ms, System: 133.8 ms]
  Range (min … max): 118.4 ms … 138.1 ms 24 runs

Summary
  ./uv-branch pip compile -q ./scripts/requirements/airflow.in ran
    1.24 ± 0.05 times faster than ./uv-main pip compile -q ./scripts/requirements/airflow.in
```

```
Benchmark 1: ./uv-main pip compile -q ./scripts/requirements/boto3.in
  Time (mean ± σ): 327.0 ms ± 3.8 ms [User: 344.5 ms, System: 71.6 ms]
  Range (min … max): 322.7 ms … 334.6 ms 10 runs

Benchmark 2: ./uv-branch pip compile -q ./scripts/requirements/boto3.in
  Time (mean ± σ): 311.2 ms ± 3.1 ms [User: 339.3 ms, System: 63.1 ms]
  Range (min … max): 307.8 ms … 317.0 ms 10 runs

Summary
  ./uv-branch pip compile -q ./scripts/requirements/boto3.in ran
    1.05 ± 0.02 times faster than ./uv-main pip compile -q ./scripts/requirements/boto3.in
```

<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->