Skip to main content

azldev-build-component

Read this before building a component or diagnosing a build failure; do not guess build flags or the inner loop. Explains how to build, iterate on, and debug an azldev component, covering comp build flags (local-repo, preserve-buildenv), the render/build/test inner loop, diff-sources, and disabling a failing %check via check.skip. Triggers include build component, build failed, build error, inner loop, preserve buildenv, local repo, disable check.

Quellinformationen

Repository
microsoft/azurelinux
Letzte Quellaktivität
14. Oktober 2026 um 20:54
Erkannte Sprache von SKILL.md
Englisch
Sterne
5.358
Forks
711

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
azldev-build-component
description
Read this before building a component or diagnosing a build failure; do not guess build flags or the inner loop. Explains how to build, iterate on, and debug an azldev component, covering comp build flags (local-repo, preserve-buildenv), the render/build/test inner loop, diff-sources, and disabling a failing %check via check.skip. Triggers include build component, build failed, build error, inner loop, preserve buildenv, local repo, disable check.
# Build and debug a component **Never install built RPMs on your host** — they target the distro, not your dev machine. Test them in a chroot with the `azldev-mock` skill. Building and testing are separate steps: `azldev comp build` produces RPMs; it does not test them. ## Build ```sh azldev comp build -p <name> # one component azldev comp build -p <a> -p <b> --local-repo-with-publish <dir> # chain deps via a local repo azldev comp build -p <name> --local-repo <dir> # rebuild against a populated repo ``` Build foundational packages before their dependents. RPMs land in the project's configured output directory (`out` by default). `-q` quiets output but hides build progress — use it only for inner-loop builds you expect to succeed. ## The inner loop investigate → modify → render → build → test → inspect | Step | Command | | --- | --- | | Investigate | read the rendered spec under `specs/`, or `azldev comp diff-sources -p <name>` | | Modify | edit the component's `.comp.toml` (see the `azldev-overlays` and `azldev-comp-toml` skills) | | Verify | `azldev comp render -p <name>` (fast — skips source tarballs) | | Build | `azldev comp build -p <name>` | | Test | `azldev adv mock shell --add-package <rpm>` (see the `azldev-mock` skill) | | Inspect | `azldev comp build -p <name> --preserve-buildenv always`, then a mock shell | Prefer `comp render` for quick overlay verification; use `comp diff-sources` to see the exact overlay effect (it fetches sources once, applies overlays to a copy, and diffs the two trees). Builds can be slow — set generous timeouts. Finalize with `azldev comp update -p <name>` before opening a PR (see the `azldev-update-component` skill). ## Debugging build failures 1. **Render error mentioning a non-standard `Release` tag** — a release-calculation issue; see the `azldev-comp-toml` skill. 2. **Preview error mentioning `rpmdev-bumpspec`, `rpmdev-packager`, `rpm`, `rpmspec`, `python3`, or the Python RPM module** — this applies only when you explicitly use the temporary `--rpmdev-bumpspec` preview. Provision the named prerequisite for that opt-in path. Without the flag, azldev keeps the legacy static Release calculation. 3. **Overlay did not apply as expected** — `azldev comp diff-sources -p <name>` shows what the overlays actually change. 4. **Inspect the build environment** — `azldev comp build -p <name> --preserve-buildenv on-failure` (values `on-failure`, `always`, `never`), then enter a mock shell. 5. **Failing `%check`** — fix the tests first (root cause, upstream patches, targeted fixes). Only as a last resort, disable with `build.check.skip = true` and a required `build.check.skip_reason` explaining what fails, why it cannot be fixed, and whether it is temporary. A transient `--no-check` build flag exists for one-off local builds. Per-component build tweaks (`build.defines`, `build.without`) live in the `.comp.toml` — see the `azldev-comp-toml` skill. Generated by `azldev docs agent`; do not hand-edit.
Auf GitHub ansehen