Listing packages
In AEL, the Agent Engineering Language, ael pack list (command names may change before launch) will list the packages of a scope, and tell apart what is declared, what is installed and what your code actually uses.
Status
Planned for AEL Beta 0.0.1. AEL is not available yet.
Usage
ael pack list
ael pack list --scope src/api
ael pack list --json
| Option | Meaning |
|---|---|
--scope <folder> | List the packages of that folder's manifest. Without it, the manifest that covers the folder you are in. |
--json | The list in machine-readable form. |
What it shows
For every package in the scope, direct or not, the list will say which of these hold:
| State | Meaning |
|---|---|
| Declared | Named in the scope's pack.ael. |
| Locked | Recorded in pack.lock, with its exact version. |
| Installed | Present in .package/ and matching the lock file. |
| Used | Selected by at least one file with refer … select …. |
| Kept | Not used directly, but needed by another package. |
For each package, it will also give:
- the scope the package comes from, when a folder inherits it from a manifest further up;
- its exact version and its source: the official registry, an
httpsaddress or alocalfile; - why it is there: declared by you, or brought in by another package.
A package that is installed but never used will be listed as such. ael refmap will show the same finding in the context of your code.
What it never does
ael pack list will change nothing, use no network and run no package code. It will read the manifest, the lock file and the installed packages as they are.
If the manifest, the lock file and the installed packages disagree, the list will say where. ael pack verify will check the installed files in depth, and ael pack install --locked will bring them back in line with the lock file.
Related
- Why a package is in a project: the path that brings in one package.
- Dependency graph: every package and the links between them.