Every azldev configuration file is a TOML file that conforms to the azldev schema. The root config file is typically named azldev.toml and sits at the project root. Additional config files are pulled in via the includes mechanism.
All config files share the same schema — there is no distinction between a "root" file and an "included" file. Any file can define any section, subject to the merge rules.
| TOML Key | Type | Description | Reference |
|---|---|---|---|
includes |
string array | Glob patterns for additional config files to load | Includes |
project |
object | Project metadata and directory configuration | Project |
distros |
map of objects | Distro definitions (build environments, upstream sources) | Distros |
components |
map of objects | Component (package) definitions | Components |
component-groups |
map of objects | Named groups of components with shared defaults | Component Groups |
images |
map of objects | Image definitions (VMs, containers) | Images |
tools |
object | Configuration for external tools used by azldev | Tools |
The includes field lists glob patterns for additional config files to load and merge:
includes = ["distro/distro.toml", "base/project.toml"]| Field | Type | Description |
|---|---|---|
includes |
string array | Glob patterns resolved relative to the directory containing this file. Supports *, ?, [...], and ** (recursive) wildcards. |
Glob patterns that match no files are silently ignored. Literal filenames (no wildcards) that do not exist produce an error.
Includes are resolved recursively — included files can themselves declare further includes. For a detailed explanation of load order and merge semantics, see Configuration System.
A minimal root config file that includes distro definitions and a project:
includes = ["distro/distro.toml", "base/project.toml"]A project-level config file with its own includes:
includes = ["comps/components.toml", "images/images.toml"]
[project]
description = "my-project"
log-dir = "build/logs"
work-dir = "build/work"
output-dir = "out"
default-distro = { name = "azurelinux", version = "4.0" }A simple component list file:
includes = ["**/*.comp.toml"]
[components.curl]
[components.git]
[components.vim]- Configuration System — how config files are loaded, merged, and how inheritance works
- JSON Schema — machine-readable schema for editor integration and validation
- Run
azldev config dump -q -O jsonto inspect the fully resolved configuration - Run
azldev config generate-schemato generate the latest schema