Dependency graph
In AEL, the Agent Engineering Language, ael pack graph shows the complete dependency graph of a scope, as its lock file records it: every package, direct or not, and every link between them.
Usage
ael pack graph
ael pack graph --json
| Option | Meaning |
|---|---|
--json | The graph in machine-readable form, for your own tools. |
What it shows
It shows:
- Every package in the scope's
pack.lock, with its exact version, origin and publisher. - Every link: which package depends on which, and whether the link is for running the program, for building it or for development only.
- Features: the features each link requests, and the combined features each package receives.
- Targets: links that apply only to some targets. They stay in the graph, marked, even when they are not part of a build for your target.
- Your declarations: which packages your
pack.aelnames directly, as the starting points of the graph.
The text form is meant for reading; --json gives the same graph with every field, for tools that draw or check it.
What it is, and what it is not
The graph is the record of what the scope depends on, taken from the lock file. It is not a record of what your program calls: a package may be in the graph and still be unused by your code. ael refmap shows what your code references, and the build keeps only that.
What it never does
ael pack graph reads pack.lock only. It changes nothing, uses no network, installs nothing and runs no package code. It never resolves versions again: it shows the graph that was locked, so the answer is the same on every machine that has the same lock file.
Related
- Why a package is in a project: the one chain that brings in a given package.
- Comparing lock files: how the graph changed between two lock files.
- Listing packages: which packages are declared, installed and used.
- Writing the lock file: how the graph is resolved and recorded.
- Using packages: scopes and the lock file.