File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ Understanding Dependency Types
2+ ==============================
3+
4+ Fromager tracks 5 dependency types, grouped into build-time and runtime categories.
5+
6+ Requirement Types
7+ -----------------
8+
9+ **Build-Time ** (must be built before parent):
10+
11+ - ``build-system `` — From ``pyproject.toml `` ``[build-system].requires `` with a fallback to a default provider (see PEP 517)
12+ - ``build-backend `` — Returned by Fromager hooks, which call PEP 517 hooks like ``get_requires_for_build_wheel `` by default
13+ - ``build-sdist `` — Returned by Fromager hooks, which call PEP 517 hooks by default
14+
15+ .. note ::
16+
17+ Both backend and sdist requirements are built before a package can be built.
18+
19+ **Runtime ** (processed after parent is built):
20+
21+ - ``toplevel `` — Packages specified via CLI or requirements file
22+ - ``install `` — Runtime dependencies extracted from built wheel (``install_requires ``)
23+
24+ Key Behavior
25+ ------------
26+
27+ **Build dependency fails ** → Parent **cannot build **
28+
29+ **Install dependency fails ** → Parent **may still build ** (failure occurs at runtime)
30+
31+ Identifying in graph.json
32+ -------------------------
33+
34+ Each edge shows ``req_type ``:
35+
36+ .. code-block :: json
37+
38+ {"req_type" : " build-system" , "req" : " setuptools>=45" }
39+ {"req_type" : " install" , "req" : " requests>=2.28" }
40+
41+ Use ``fromager graph to-dot --install-only `` to filter runtime-only dependencies.
Original file line number Diff line number Diff line change 1+ Concepts
2+ ========
3+
4+ .. toctree ::
5+ :maxdepth: 1
6+
7+ dependencies
8+
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ those special cases directly into fromager.
2929 using.md
3030 getting-started.rst
3131 customization.md
32+ concepts/index.rst
3233 how-tos/index.rst
3334 hooks.rst
3435 files.md
You can’t perform that action at this time.
0 commit comments