Repository navigation
fix(recipes): report dependency errors consistently across deployers - #2993
Conversation
A component whose dependencyRefs name a component absent from the recipe (typically a hand-trimmed recipe) failed dependency ordering with "circular dependencies exist", because an undeclared dependency never drains its dependent's in-degree and was indistinguishable from a cycle. The shared dependency graph builder now rejects edges from enabled components to undeclared components up front, naming every offending component/dependency pair in recipe order. A traversal that still fails to drain is therefore always a genuine cycle. Edges to declared-but- disabled components remain satisfied externally, and the error code stays ErrCodeInvalidRequest. Fixes NVIDIA#2477 Signed-off-by: Ethan Zhang <ezhang3333@gmail.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
🧰 Additional context used📚 Code guidelines (2)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 WalkthroughWalkthroughDependency validation and topological traversals use a shared graph builder. They report missing dependencies and cycles as Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix · Severity of issue fixed: Low Suggested reviewers: Merge Risk: ⚪ Minimal · up to No actionable issue remains from this review; the change is mergeable after normal checks. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Recipe evidence checkNo leaf overlays affected by this PR. This gate is warning-only and never blocks merge. |
Signed-off-by: Ethan Zhang <ezhang3333@gmail.com>
|
Enabled edit by maintainers |
Missing component dependencies now produce specific errors instead of a false circular-dependency diagnosis. Recipe validation and ordering share the same rules and report each missing edge once, on its own line, together with any genuine cycle.
Bundle generation validates the effective dependency graph before writing output for every deployer, including the default Helm deployer. Declared disabled dependencies and components excluded by the supported bundle filter remain treated as provided externally. Disabled components' own dependencies are ignored consistently during recipe validation and ordering.
Fixes #2477
Validation:
make qualifypasses with Bash 5 on PATH andGOMAXPROCS=4to avoid a pre-existing timing-test flake. This includes the full race suite (84.6% coverage), lint, 29 end-to-end tests, vulnerability and license checks, and SDK/REST compatibility. CLI reproductions additionally verify missing and combined missing/cycle errors for all five deployers, with no output created.