--- name: azldev description: "Read this before running azldev or editing azldev config, and whenever working in a repo that contains an azldev.toml file; do not guess azldev's commands or config. Explains how to use the azldev CLI to build a distro from TOML config, including the core concepts (components, overlays, distros, rendered specs, locks), running azldev (repo root or -C, plus the -q and -O json flags), the common commands, and where to go for each workflow. Triggers include azldev, comp build, comp render, comp update, build a component, add a component, distro config." --- # Using azldev azldev builds a Linux distribution from TOML configuration. It imports RPM specs from an upstream distro and customizes them with an overlay system — no spec forking. Components render to specs and sidecar build inputs, then build into RPMs; images assemble RPMs into bootable artifacts. ## Orient yourself - Run azldev from the repo root (where `azldev.toml` lives), or pass `-C `. - Global, agent-friendly flags: **`-q`** (quiet) and **`-O json`** (machine-readable output). They work on every command. - Config is a stitched TOML hierarchy: `azldev.toml` includes the distro and project config, which include the component files (`**/*.comp.toml`) into one namespace. ## Core concepts - **Component** — a unit of packaging that renders to a spec and sidecar build inputs, then builds into one or more RPMs. Its spec source is upstream (default), a pinned upstream distro/version, or a local spec. - **Overlay** — a semantic patch applied to a spec or source file at render time, so you customize upstream without forking it. - **Distro** — a named build target (`*.distro.toml`) with upstream URIs, release versions, and build inputs. - **Rendered spec** — the generated `.spec` after overlays; a build input, never hand-edited. - **Lock** — a per-component file pinning the resolved upstream commit and an input fingerprint. ## Common commands Top-level commands in this build: - `azldev completion` — Generate the autocompletion script for the specified shell - `azldev component` — Manage components - `azldev config` — Manage tool configuration - `azldev docs` — Documentation commands - `azldev image` — Manage Azure Linux images - `azldev package` — Manage binary package configuration - `azldev project` — Manage Azure Linux projects - `azldev repo` — Inspect and manage RPM repositories - `azldev version` — Print the CLI version Everyday tasks (add `-q -O json` when scripting): | Task | Command | | --- | --- | | List components | `azldev comp list -a` | | Inspect one component | `azldev comp list -p ` | | Add a component | `azldev comp add` | | Build a component | `azldev comp build -p ` | | Render specs | `azldev comp render -p ` (or `-a`) | | Refresh a lock | `azldev comp update -p ` | | List / build images | `azldev image list` / `azldev image build` | `comp` is an alias for `component`. Always confirm current syntax with `azldev --help`. The hidden `advanced` group (`adv`) contains specialist integrations such as MCP and mock helpers; it is intentionally omitted from normal help. ## Where to go next - Add a new component — read the `azldev-add-component` skill. - Edit or review a component's TOML — read the `azldev-comp-toml` skill. - Add or change overlays — read the `azldev-overlays` skill. - Annotate an overlay's intent (category, upstream status, provenance) — read the `azldev-overlay-metadata` skill. - Build, iterate, and debug a component — read the `azldev-build-component` skill. - Build, boot, and register images — read the `azldev-image` skill. - Refresh a lock and finalize for a PR — read the `azldev-update-component` skill. - Remove a component — read the `azldev-remove-component` skill. - Test built RPMs in a chroot — read the `azldev-mock` skill. ## Golden rules - **Never edit generated output** — rendered specs and the output/work/log dirs are produced by azldev. Change the source config and re-render. - **Re-run `azldev comp update` before opening a PR** — the lock fingerprint covers the whole component config, and lock / rendered-spec CI checks run on committed state. - **Every overlay needs a `description`** explaining why the change is needed. Generated by `azldev docs agent`; do not hand-edit.