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.

Informações da origem

Repositório
microsoft/azurelinux
Última atividade na origem
14 de outubro de 2026 às 20:54
Idioma detectado do SKILL.md
inglês
Estrelas
5.359
Forks
711

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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.
Ver no GitHub