All notable changes to azldev are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
--without-lockfilepreview mode. Add a global--without-lockfileflag that opts in to a preview of tracking resolved upstream commits in generated component configuration instead of per-component lock files. The flag defaults to off; without it azldev's behavior, command set, and configuration handling are unchanged. The preview surface is not stable and may change.- Generated upstream commit configuration. With
--without-lockfile, record snapshot-selected upstream commits as normal layered TOML underbase/upstream-commits. Generated pin files participate in standard configuration loading, merging, provenance tracking, and validation, and the project'slock-dirsetting is accepted but ignored. - Upstream commit refresh command. With
--without-lockfile,azldev component refresh-upstream-commitresolves and records upstream commits. It supports check-only operation, removes obsolete pins for selected non-upstream components, and prunes orphaned generated files when all components are selected. Configuration is loaded permissively for this command so stale generated pins can be removed after a component is deleted or converted to another source type.
- Mode-specific component commands. With
--without-lockfile,azldev component update,component history, andcomponent queryare replaced by hidden no-op shims, and the lock-file-only--skip-lock-validationflag is not registered. All of them are unchanged in the default mode. - Configuration-based component change detection. With
--without-lockfile,azldev component changedloads each historical project configuration independently and compares normalized build inputs instead of stored fingerprints. It handles added and deleted components, resolves recursive includes and inherited defaults at each ref, compares local source and overlay content, and reports renderedsourceschanges separately. - Synthetic source history. With
--without-lockfile, synthetic dist-git history is built from configured upstream commit transitions and walks first-parent history to the repository root instead of relying on lock-recorded import commits. - Component workflow guidance. Agent skills, instruction files, and MCP tools describe the workflow of the mode azldev runs in. The generated CLI reference continues to document the default mode; the preview mode is documented in the user guide.
- Overlay metadata agent guidance. Add the emitted
azldev-overlay-metadataskill for choosing overlay categories, upstream status, and provenance. (#311) - Component configuration merging. Allow repeated
[components.<name>]definitions across configuration files to merge. Later non-empty fields override earlier values, while overlays are appended. (#296) - Test configuration schema. Add parse-only
[tests]and[test-groups]declarations and test references from components and images. (#229) - KIWI configuration overrides. Add the distro-version
kiwi-config-overridefield for passing an additional configuration file to KIWI image builds. (#325)
- Component spec queries. Query post-overlay specs from
rendered-specs-dirin bulk through a shared mock chroot. Add--archselection withExclusiveArchandExcludeArchenforcement and preserve successful results when individual specs fail. Runazldev component renderbefore querying. (#204) - ISO creation dependency. Replace
genisoimage/cdrkitwithxorrisofor creating cloud-init and other generated ISO images. (#304)
- Reject test names that cannot safely be used as filesystem path components. (#229)
- Agent skills and docs integration. Add agent skill rendering core, add component/build/runtime skills, and expose skills through the docs agent. (#287, #295, #305)
- Archive overlay pipeline support. Wire archive overlays into prep-sources with post-overlay hash tracking. (#276)
- Local image test execution. Run LISA test suites locally via
azldev image test. (#292) - RPM provenance macros. Add opt-in
%fedora_upstream_*provenance macros. (#290)
- Dry-run defaults extraction. Extract embedded defaults during dry runs. (#278)
- Deterministic archive directory copy. Ensure archive dir is copied deterministically. (#301)
- Component updates and reproducibility. Render and update components from the CLI, inspect their history, and identify which components changed. Deterministic fingerprints, validated lock files, upstream staleness checks, and freshness-based skipping make updates repeatable and efficient.
- Source preparation and overlays. Prepare sources through the
mockbatch pipeline, download sources independently withdownload-sources, and customize specs and archives with section, subpackage, file, metadata, and per-file overlays. - Dist-git and release handling. Generate synthetic git history, construct
dist-git repositories from lock-file history, and choose between automatic,
%autorelease, and static release calculation. - Package and repository tools. Inspect package configuration with
azldev package list, query RPM repositories withazldev repo query, and organize built RPMs and SRPMs into publish-channel-aware output directories. - Image testing. Configure image capabilities and test suites, including pytest support and booting live ISO images.
- Configuration and command-line experience. Load user configuration from the XDG config directory, validate configuration and lock files, and provide actionable error hints, progress reporting, check-only modes, and improved component list output.
- Developer tooling. Generate reference documentation explicitly, audit tests with mutation testing, and use source and batch-processing utilities through the MCP server.
- Source and overlay reliability. Keep
source-filesandsourcesin sync, handle renamed URL sources, expand overlay paths after configuration resolution, skip.gitwhen applying file overlays, and detect source identity drift. - Spec and release parsing. Discover patches throughout a spec, recognize
more
%autoreleaseand section-header forms, preserve balanced conditionals, and avoid invalid release bumps. - Synthetic history and dist-git. Support shallow clones, worktrees, submodules, merge commits, and uncommitted configuration changes when generating history and dist-git repositories.
- Command-line behavior. Honor quiet mode consistently, return empty JSON
arrays instead of
null, improve image and shallow-clone errors, and make error suggestions safe during concurrent operations. - Build and runtime behavior. Allow source downloads as root, prioritize disks over ISO media when booting images, reduce license-check noise, and improve MCP server reliability.
First tagged preview release of azldev, the developer CLI for the
Azure Linux distro.
- Project and metadata management. Scaffold a project with
azldev project initorproject new, then parse, resolve, and query the TOML metadata (azldev.toml) that defines Azure Linux. Configuration merges built-in defaults with project and user-level (XDG) files, is fully validated, and is published as a JSON Schema viaazldev config generate-schema. - Component inspection and locking. List and inspect components with
azldev component listandcomponent query, and import new ones withcomponent add. Deterministic component fingerprints and per-component lock files keep builds reproducible;component updaterefreshes them with--check-only,--bump, freshness-based skipping, a progress bar, and upstream-staleness detection.component changedandcomponent diff-sourcesreport what moved. - Source preparation and spec rendering.
component prepare-sourcesandcomponent renderproduce build-ready sources and specs through amock-based batch pipeline, synthesizing the git history thatrpmautospecneeds and constructing dist-git from lock-file history. A rich overlay system (spec search/replace, prepend/append lines, remove section or subpackage, file and source replacement, per-file overlay files, and inline metadata) customizes specs, with explicit release-calculation modes (autorelease,static, and automatic). Source archives are fetched from lookaside caches. - Local package and image builds. Build individual packages with
mockusingcomponent build, emitting RPMs and SRPMs into structured, publish-channel-aware output directories.azldev imagebuilds, customizes, injects files into, boots, and runs LISA tests against Azure Linux images on a local QEMU VM. - Package and repository queries. Inspect binary package configuration with
azldev package list(including--rpm-file, debug-package synthesis, and separate package/component group columns), and inspect or manage RPM repositories withazldev repo query, backed by repo resources and repo-set templates. - Command-line experience. Shell completions for bash, zsh, fish, and
PowerShell; actionable hints on errors; global
--quiet,--verbose, and--dry-runflags withtable,json,csv, andmarkdownoutput formats; an embedded MCP server (azldev advanced mcp); and auto-generated CLI reference documentation.