---
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.
