--- name: azldev-remove-component description: "Read this before deleting or dropping a component; there is no azldev remove command, so doing it wrong leaves dangling state. Explains the manual removal workflow for deleting component metadata, cleaning references, and validating any related output-affecting changes. Triggers include remove component, delete package, drop component, prune dependency." --- # Remove a component There is **no `azldev` command to remove a component** — it is a manual edit. A deletion-only change needs no package build, but changes to dependents, package/image configuration, or other built inputs must follow the repository's normal validation requirements. The steps below delete the component's definition, lock, and rendered spec, then clean up references. ## Before you start Confirm the component exists and inspect its resolved configuration: ```sh azldev comp list -p -q -O json ``` Check for **reverse dependencies** first: if other components `BuildRequires` or `Requires` this one, removing it breaks their builds. Search the tree for the component name. Identify its binary subpackage names from the rendered output under `specs///`, then search for those names too. `azldev comp query` currently supports local spec sources only, not the usual upstream spec source. ## Steps 1. **Remove the definition.** Delete the component's dedicated `/.comp.toml` directory, or remove its inline `[components.]` entry from whichever included TOML defines it. 2. **Remove publish / package config references.** If your project configures publish channels or package groups, drop any references to the component or to its binary subpackages. Publishing is component-scoped; per-binary exceptions are binary-RPM-scoped — search for both. 3. **Remove the lock.** There is no azldev command for this: ```sh rm locks/.lock ``` 4. **Remove the rendered spec.** Let azldev prune orphaned spec directories: ```sh azldev comp render -a --clean-stale ``` `--clean-stale` (only valid with `-a`) removes rendered-spec directories that no longer correspond to a configured component. It re-renders everything, so it is slow; for a targeted removal you can instead delete the component's rendered spec under `specs/` by hand. 5. **Check other references.** Grep for the component (and its binary names) in image definitions and any `*.kiwi` / package-list files, and remove or replace them — an image that installs a now-removed package will not build. ## Verify ```sh azldev comp list -p -q -O json # should report the component is not found ``` Also confirm the lock and rendered spec directory are gone and that no image or package configuration still references the component. If the removal required changes to dependents or package/image configuration, build and test the affected outputs according to the repository's normal validation policy. ## Notes - **Dependents with manual release.** If removing this component forces a change in a *dependent* (e.g. dropping a `BuildRequires`), and that dependent sets `release.calculation = "manual"`, bump its release counter yourself in the same change. Components with automatic release calculation (`auto`, `autorelease`, `static`) are handled by the normal commit/render/amend cycle. - **Remove exclusive dependencies together.** If a package is only needed by the component you are dropping, remove it in the same change to keep the tree consistent. Generated by `azldev docs agent`; do not hand-edit.