Dependency graph
In AEL, the Agent Engineering Language, ael pack graph (command names may change before launch) will show the complete dependency graph of a scope, as its lock file records it: every package, direct or not, and every link between them.
Status
Planned for AEL Beta 0.0.1. AEL is not available yet.
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 will show:
- 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 will 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 will be meant for reading; --json will give the same graph with every field, for tools that draw or check it.
What it is, and what it is not
The graph will be the record of what the scope depends on, taken from the lock file. It will not be a record of what your program calls: a package may be in the graph and still be unused by your code. ael refmap will show what your code references, and the build will keep only that.
What it never does
ael pack graph will read pack.lock only. It will change nothing, use no network, install nothing and run no package code. It will never resolve versions again: it will show 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.