- 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 <name> -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/<first-char>/<name>/`, 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
`<name>/<name>.comp.toml` directory, or remove its inline `[components.<name>]`
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/<name>.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 <name> -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.
Ver no GitHub