Browse the documentation

Preview documentation for AEL Beta 0.0.1 — launching soon

Updating a package

In AEL, the Agent Engineering Language, ael pack update (command names may change before launch) will move one package that a scope already declares to another version that its requirement in pack.ael allows.

Status

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

Package names on this page are preview naming and may change before launch.

Usage

Preview syntax — may change before launch
ael pack update server/http
ael pack update server/http --scope src/api
ael pack update server/http --json
Argument or optionMeaning
<name>The package to update, as pack.ael names it.
--scope <folder>Update the package in that folder's manifest. Without it, the manifest that covers the folder you are in.
--jsonA machine-readable report of the change.

Which version

ael pack update will choose the highest version that the package's requirement allows. A requirement of "^1.2.0" will allow versions from 1.2.0 up to, not including, 2.0.0; a pre-release will be chosen only when you name it exactly.

To move outside the range, change the requirement in pack.ael first, then run ael pack update. The Manifest reference describes every form of requirement.

Before anything changes

The command will show what the update brings:

  • the old and the new version;
  • packages that the new version adds or no longer needs;
  • changes of features, and any capability that a package now asks for.

A new capability will be a request, never a grant, and it will always be shown before the update is made.

What changes

  • pack.lock and .package/ of that scope will change together, in one atomic step, after every new package file has been verified.
  • Only that scope will change. A folder with its own manifest will keep its own version, and a sibling folder will never be touched.
  • Nothing in a package will run during the update.

If two requirements in one scope cannot both be met by the new version, the update will stop and name both dependency paths. Nothing will change.

After updating

Run ael check and your tests: a new version may change an export your code uses. ael pack lock-diff will show exactly what changed between the old and the new pack.lock.