Detect which components changed between two git refs
Compare component lock files and rendered sources between two git refs to determine which components changed. For each component, reports whether its input fingerprint changed (any change) and whether its rendered sources file changed (sources change).
This is useful for CI/CD pipelines to determine which components need to be rebuilt or have their lookaside tarballs re-uploaded after a PR merge.
Fails with an error if any component's fingerprint is unchanged between refs but its rendered sources file drifted. This combination cannot occur from a clean render -- it usually means the rendered sources were edited by hand (a cache-poisoning vector if blindly uploaded) or the renderer is non- deterministic.
Note: component selection and directory paths (lock-dir, rendered-specs-dir) are resolved from the current checkout's configuration, not from the compared refs. For accurate results, run this command from a checkout that matches the --to ref (e.g., after merging a PR). Components not in the current config are detected via lock file presence in the compared refs when using -a.
azldev component changed [flags]
# Show changed components between a branch and HEAD
azldev component changed --from main -a
# Show changes between two specific refs
azldev component changed --from v1.0 --to v2.0 -a
# Include unchanged components in output
azldev component changed --from main -a --include-unchanged
# JSON output for scripting
azldev component changed --from main -a -q -O json
-a, --all-components Include all components
-p, --component stringArray Component name pattern
-g, --component-group stringArray Component group name
--from string Git ref to compare from (required)
-h, --help help for changed
--include-unchanged Include unchanged components in output (only applies to broad -a scans; explicit selections always show status)
-s, --spec-path stringArray Spec path
--to string Git ref to compare to (default "HEAD")
-y, --accept-all accept all prompts
--color mode output colorization mode {always, auto, never} (default auto)
--config-file stringArray additional TOML config file(s) to merge (may be repeated)
-n, --dry-run dry run only (do not take action)
--network-retries int maximum number of attempts for network operations (minimum 1) (default 3)
--no-default-config disable default configuration
-O, --output-format fmt output format {csv, json, markdown, table} (default table)
--permissive-config do not fail on unknown fields in TOML config files
-C, --project string path to Azure Linux project
-q, --quiet only enable minimal output
-v, --verbose enable verbose output
- azldev component - Manage components