Browse the documentation

Preview documentation for AEL Beta 0.0.1 — launching soon

Installing declared packages

In AEL, the Agent Engineering Language, ael pack install (command names may change before launch) will set up the packages a project already declares, exactly as pack.ael and pack.lock say, changing no version. It will be what you run on a new machine, or at the start of an automated build.

Status

Planned for AEL Beta 0.0.1. AEL is not available yet.

To add a package the project does not use yet, use ael pack add.

Usage

Preview syntax — may change before launch
ael pack install
ael pack install --locked
ael pack install --locked --offline
ael pack install --scope src/api
OptionMeaning
--lockedRefuse to change pack.lock. If it no longer matches pack.ael, stop and change nothing.
--offlineUse no network: install only from verified copies already on this machine.
--scope <folder>Install for that folder's manifest. Without it, the manifest that covers the folder you are in.
--jsonA machine-readable report.

What it does

  • It will read the scope's pack.ael and pack.lock, and install every package the lock file names, direct or not, into .package/ beside them.
  • It will never move a version that pack.lock records.
  • It will never build a package from source, run an install script or run any package code.
  • It will install into this scope only, never into a parent or sibling folder.

Your lock file will pin the exact versions you built with, so builds repeat, even offline, and nothing will download when an app starts.

Locked installs

--locked will be the mode for automated builds and new machines. With it, ael pack install will never write pack.lock: if the lock file is missing, or no longer matches its manifest, the command will stop with an error that says so, and nothing will change.

Keep pack.lock with your source files and leave .package/ out: ael pack install --locked will recreate it from the lock file alone.

Offline installs

With --offline, nothing will be fetched. Packages will come only from verified copies already on your machine, such as the shared package cache. If a package file is missing, the command will name each missing file and install nothing.

Checks and safety

  • Every package file will be verified before it is used: its signature for official packages, its fingerprint against the lock file, its contents and how it was built.
  • The whole install will be atomic: the scope will be either as it was or fully installed, never half of each. An interrupted install will be finished or undone by the next package command, or by ael pack repair.
  • Access tokens for your private host will stay outside your project files.

Not settled yet

Without --locked, ael pack install may bring pack.lock up to date with a manifest that changed, but it will never move a version the lock already records. The exact behaviour will be confirmed before launch; automated builds should use --locked.