Exporting for offline builds
In AEL, the Agent Engineering Language, ael pack vendor (command names may change before launch) will export the locked packages of a project for offline builds: it will copy every package file that the lock file names into a folder you choose.
Status
Planned for AEL Beta 0.0.1. AEL is not available yet.
One manifest and one lock file will give reproducible builds that also work offline. ael pack vendor will be for the machines that never had a network connection to fetch the packages in the first place, such as an isolated build machine.
Usage
ael pack vendor -o vendor
| Option | Meaning |
|---|---|
-o <dir> | The folder to export into. |
--json | A machine-readable report of what was exported. |
What it exports
- Every package file that
pack.locknames, direct or not, exactly as it was verified and installed. - Nothing else: no source files, no other scope's packages and no unlocked versions.
Each exported package file will be a separate, complete package file with its own fingerprint, the same fingerprint your lock file records. Exporting will change no file inside it, so every check that applies to a downloaded package file will still apply on the other machine.
What it never does
- It will never resolve versions again, and never export a package that the lock file does not name.
- It will use no network: it will export only verified copies already on your machine. If one is missing, it will name the file and export nothing. Run
ael pack install --lockedfirst. - It will change nothing in your project and run no package code.
On the other machine
Copy the project with its pack.lock and the exported folder. Every package file will be verified again, against the fingerprint in the lock file, before it is installed or used there. ael pack install --locked --offline will then install without a network, and name any file that is missing.
Not settled yet
How ael pack install on the other machine will be pointed at the exported folder will be described before launch.
Related
- Installing declared packages: locked and offline installs.
- Using packages: the lock file and offline builds.