Repository navigation
docs(recipe): clarify recipe stewardship and composition - #3000
Conversation
Signed-off-by: framsouza <fram.souza14@gmail.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configurationConfiguration used: Repository: NVIDIA/aicr/.coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: NVIDIA/aicr/.coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughWalkthroughThe Recipe Development Guide adds a section on recipe stewardship and composition. It explains that resolved recipes combine multiple configuration sources, describes community ownership and maintainer accountability, and clarifies what overlay metadata and repository history indicate about provenance. Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~4 minutes Change: Other Suggested reviewers: Merge Risk: ⚪ Minimal · up to This documentation change accurately clarifies recipe composition and provenance; no material merge risk remains. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Congrats, @framsouza, this is the 3000th PR in AICR! |
Summary
Adds a short Recipe stewardship and composition note to the Recipe Development Guide's Overview, explaining that a resolved recipe is materialized from a composition graph rather than authored as one standalone, independently owned file.
Motivation / Context
Readers of the Recipe Development Guide can come away thinking a resolved recipe is a flat configuration artifact with a single owner (NCP vs. ISV vs. NVIDIA). It is not — it is materialized from a directed acyclic graph of registry defaults, overlays, mixins, configuration profiles, and optional external
--datainput.The issue originally proposed a "Recipe ownership and provenance" note plus a separate FAQ entry. @mchmarny narrowed the scope in #2270 (comment) and the reporter agreed. This PR implements that narrowed scope:
metadata.appliedOverlaysrecords resolution order and is deliberately not an ownership or per-field attribution ledger — resolution materializes the effective configuration rather than preserving authorship for every contributing value.Fixes: #2270
Related: N/A
Type of Change
Component(s) Affected
cmd/aicr,pkg/cli)cmd/aicrd,pkg/server)pkg/recipe)pkg/bundler,pkg/component/*)pkg/collector,pkg/snapshotter)pkg/validator)pkg/errors,pkg/k8s)docs/,examples/)Implementation Notes
Placement. The note lands as a
###subsection closing out## Overviewindocs/integrator/recipe-development.md, immediately after the existing "For query matching and overlay merging internals" pointer. A heading rather than a bold paragraph is correct per the repo's Documentation Style rule — it names a topic and runs past the ~8-content-line threshold — and it gives the note a stable anchor to link at. Heading text is sentence case, matching existing siblings in this file (### Inference performance constraints,### Regional registry overrides).Links. Three, each verified against a live heading:
#configuration-profiles### Configuration Profiles, same file../contributor/recipe.md#observable-reciperesult-surfaces## Observable RecipeResult Surfaces— whereMetadata.AppliedOverlaysis actually documentedGOVERNANCE.md#areas-of-ownership## Areas of OwnershipGOVERNANCE.mdis linked as an absolutehttps://github.com/NVIDIA/aicr/blob/main/...URL, per the existing convention for repo-root files — a relative path would escape the Fern docs root. The two in-docs links are relative.Deliberately not linked:
docs/contributor/maintaining.md→### `maintainers:` Block Routing (Post PR-D). Its slug is ambiguous (backticks, colon, parentheses) and it has zero existing inbound links, so it is a broken-anchor risk.No
docs/index.ymlchange — the page is already registered, and the Fern nav lists pages only, not per-page anchors.Terminology note: "ownership" is already load-bearing in this guide for the GPU-stack sense (which component owns the driver / device plugin). The new prose keeps its subject unmistakably the recipe.
Testing
make qualifywas not run locally. The dev box is missing 20 of the 26 pinned tools (golangci-lint,addlicense,goreleaser,grype,syft,chainsaw, …) andqualifyadditionally runs e2e against a Kind cluster, so bothmake lintandmake licensefail on missing binaries rather than on this change. No.gofiles are touched, so the mandatory per-package Go lint gate and the test-coverage gate do not apply; the checks this change could plausibly break are the docs gates and lychee, which are run above. Deferring to the merge gate for the remainder.Risk Assessment
Documentation-only: 19 added lines in one file, no code, no behavior change.
Rollout notes: N/A
Checklist
make testwith-race) — scoped to./pkg/recipe/...; no Go changes in this PRmake lint) — docs gates pass; Go/license lint blocked on missing local tools, see Testinggit commit -S)