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에서 보기