Resolve and lock source identities for components
Resolve source identities for components and write them to per-component lock files.
For upstream components, this resolves the effective commit hash using the distro snapshot time or explicit pin, then records it in locks/.lock. For local components, this computes a content hash of the spec directory. Subsequent commands (render, build) use the locked state for deterministic, reproducible results.
When updating all components (-a), orphan lock files (locks for components that no longer exist in the project config) are automatically pruned. Orphan pruning is skipped when updating individual components to avoid accidentally removing lock files for components not included in the filter.
The --bump flag updates matching lock files to increment the manual-rebuild counter, triggering a new release. Useful for mass-rebuild scenarios (e.g., toolchain bug, static library update). Orphan pruning is skipped under --bump.
The --check-only flag runs the full pipeline but does NOT write lock files or prune orphans. The command exits 0 when nothing would change and exits 1 when any component is stale or any lock would be pruned. Intended for CI gates. Cannot be combined with --bump.
azldev component update [flags]
# Update all components
azldev component update -a
# Update a single component
azldev component update -p curl
# Update components in a group
azldev component update -g core
# Bump rebuild counter for a component (triggers new release)
azldev component update --bump curl
# CI gate: exit 0 if locks are fresh, 1 if anything would change
azldev component update -a --check-only -q
-a, --all-components Include all components
--bump increment the manual-rebuild counter to trigger a new release
--check-only resolve identities and recompute fingerprints but do not write lock files or prune orphans. Exits 0 when nothing would change and 1 when any component is stale (or, with --all-components, when any orphan lock would be pruned). Intended for CI gates. Cannot be combined with --bump
-p, --component stringArray Component name pattern
-g, --component-group stringArray Component group name
--force-recalculate force re-resolution of all components, ignoring freshness checks that would skip unchanged components. Use when upstream state may have changed independently of the snapshot time and the new commit is preferred
-h, --help help for update
-s, --spec-path stringArray Spec path
-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