mirror of
https://github.com/astral-sh/uv
synced 2026-01-23 06:20:12 -05:00
Use indented inline tables for `distribution.dependencies`, `distribution.optional-dependencies` and `distribution.dev-dependencies`. The new style is more concise (see examples below) and it makes the association between a distribution and its dependencies clearer (previously, they were both individual `[[...]]` blocks separated by newlines). The style is optimized for small, meaningful diffs by placing each dependency on a single line with a final trailing comma. Whenever a dependency is added, removed or changed, there should be a one line diff in `distribution.dependencies`. The final trailing comma ensures that adding a dependency doesn't change the line ahead. Part of #3611 ## Examples ### Simple workspace package Before: ```toml [[distribution]] name = "bird-feeder" version = "1.0.0" source = "editable+packages/bird-feeder" [[distribution.dependencies]] name = "anyio" [[distribution.dependencies]] name = "seeds" ``` After: ```toml [[distribution]] name = "bird-feeder" version = "1.0.0" source = "editable+packages/bird-feeder" dependencies = [ { name = "anyio" }, { name = "seeds" }, ] ``` ### Flask Before: ```toml [[distribution]] name = "flask" version = "3.0.2" source = "registry+https://pypi.org/simple" sdist = { url = "a89e8120fa/flask-3.0.2.tar.gz", hash = "sha256:822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d", size = 675248 } wheels = [{ url = "aa98bfe0eb/flask-3.0.2-py3-none-any.whl", hash = "sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e", size = 101300 }] [[distribution.dependencies]] name = "blinker" [[distribution.dependencies]] name = "click" [[distribution.dependencies]] name = "itsdangerous" [[distribution.dependencies]] name = "jinja2" [[distribution.dependencies]] name = "werkzeug" [distribution.optional-dependencies] [[distribution.optional-dependencies.dotenv]] name = "python-dotenv" ``` After: ```toml [[distribution]] name = "flask" version = "3.0.2" source = "registry+https://pypi.org/simple" sdist = { url = "a89e8120fa/flask-3.0.2.tar.gz", hash = "sha256:822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d", size = 675248 } dependencies = [ { name = "blinker" }, { name = "click" }, { name = "itsdangerous" }, { name = "jinja2" }, { name = "werkzeug" }, ] wheels = [{ url = "aa98bfe0eb/flask-3.0.2-py3-none-any.whl", hash = "sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e", size = 101300 }] [distribution.optional-dependencies] dotenv = [ { name = "python-dotenv" }, ] ``` ### Forking Before: ```toml [[distribution]] name = "project" version = "0.1.0" source = "editable+." [[distribution.dependencies]] name = "package-a" version = "4.3.0" source = "registry+https://astral-sh.github.io/packse/0.3.29/simple-html/" marker = "sys_platform == 'darwin'" [[distribution.dependencies]] name = "package-a" version = "4.4.0" source = "registry+https://astral-sh.github.io/packse/0.3.29/simple-html/" marker = "sys_platform == 'linux'" [[distribution.dependencies]] name = "package-b" marker = "sys_platform == 'linux'" [[distribution.dependencies]] name = "package-c" marker = "sys_platform == 'darwin'" ``` After: ```toml [[distribution]] name = "project" version = "0.1.0" source = "editable+." dependencies = [ { name = "package-a", version = "4.3.0", source = "registry+https://astral-sh.github.io/packse/0.3.29/simple-html/", marker = "sys_platform == 'darwin'" }, { name = "package-a", version = "4.4.0", source = "registry+https://astral-sh.github.io/packse/0.3.29/simple-html/", marker = "sys_platform == 'linux'" }, { name = "package-b", marker = "sys_platform == 'linux'" }, { name = "package-c", marker = "sys_platform == 'darwin'" }, ] ```