mirror of
https://github.com/astral-sh/uv.git
synced 2025-11-01 20:31:12 +00:00
This is meant to be a base on which to build. There are some parts which are implicitly incomplete and others which are explicitly incomplete. The latter are indicated by TODO comments. Here is a non-exhaustive list of incomplete things. In many cases, these are incomplete simply because the data isn't present in a `ResolutionGraph`. Future work will need to refactor our resolver so that this data is correctly passed down. * Not all wheels are included. Only the "selected" wheel for the current distribution is included. * Marker expressions are always absent. * We don't emit hashes for certainly kinds of distributions (direct URLs, git, and path). * We don't capture git information from a dependency specification. Right now, we just always emit "default branch." There are perhaps also other changes we might want to make to the format of a more cosmetic nature. Right now, all arrays are encoded using whatever the `toml` crate decides to do. But we might want to exert more control over this. For example, by using inline tables or squashing more things into strings (like I did for `Source` and `Hash`). I think the main trade-off here is that table arrays are somewhat difficult to read (especially without indentation), where as squashing things down into a more condensed format potentially makes future compatible additions harder. I also went pretty light on the documentation here than what I would normally do. That's primarily because I think this code is going to go through some evolution and I didn't want to spend too much time documenting something that is likely to change. Finally, here's an example of the lock file format in TOML for the `anyio` dependency. I generated it with the following command: ``` cargo run -p uv -- pip compile -p3.10 ~/astral/tmp/reqs/anyio.in --unstable-uv-lock-file ``` And that writes out a `uv.lock` file: ```toml version = 1 [[distribution]] name = "anyio" version = "4.3.0" source = "registry+https://pypi.org/simple" [[distribution.wheel]] url = " |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||