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.

来源信息

仓库
microsoft/azurelinux
最近来源活动
2026年10月14日 20:54
检测到的 SKILL.md 语言
英语
星标
5,353
分支
710

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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.
在 GitHub 查看