Split components yml#40
Merged
mosheabr merged 5 commits intoNVIDIA:mainfrom May 1, 2026
Merged
Conversation
Adds components.d/ — one YAML file per component, plus a README
documenting the layout and onboarding flow. The aggregated content
matches today's components.yml; this commit only introduces the new
files. Consumers (sync workflow, regenerate-readme.sh) still read
components.yml; subsequent commits migrate them.
Why: simultaneous onboarding PRs from different teams currently all
edit components.yml. As cadence grows, every new-team PR collides
with every other open onboarding PR. Per-file structure means each
PR touches its own file — zero shared edits, zero merge conflicts
on onboarding.
The aggregation command (used by subsequent migration commits):
yq ea '[.] | {"components": .}' components.d/*.yml
produces the exact same {components: [...]} structure today's
components.yml carries.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
Aggregates components.d/*.yml into a single {components: [...]}
structure at the start of the sync step, then iterates that
structure exactly as before. The existing yq calls now reference
the aggregated config via a CONFIG variable.
CONFIG=/tmp/components.aggregated.yml
yq ea '[.] | {"components": .}' components.d/*.yml > "$CONFIG"
Behavior unchanged — the workflow still produces the same component
list it produced from components.yml. components.yml is now orphaned
(still in the repo, no longer read); the next commit removes it.
Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
Mirrors the previous commit's workflow change: aggregate components.d/*.yml into a single config at the start, then run the existing yq queries against it via a CONFIG variable. Behavior unchanged — the script produces the same README tables it produced when reading components.yml directly. Onboarding teams no longer need to know which file the regenerator reads; they just add components.d/<slug>.yml and the script picks it up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
Both consumers (sync workflow and regenerate-readme.sh) now read from components.d/*.yml via the aggregation step introduced in the previous two commits. components.yml is orphaned and removed to make components.d/ the single source of truth. Onboarding teams: see components.d/README.md for the schema and the new flow (one file per component instead of editing this shared file). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
Reflects the new onboarding flow: teams add a new file in components.d/ rather than editing a shared components.yml. Three references updated — onboarding type, path-policy author confirmation, and reviewer checklist. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
Collaborator
Author
mosheabr
approved these changes
May 1, 2026
Collaborator
mosheabr
left a comment
There was a problem hiding this comment.
Approve.
This closes the last shared-file conflict surface. Combined with #38 (DCO check) and #39 (auto-gen README), simultaneous onboarding PRs from different teams now touch zero shared files — onboarding becomes "create one new file under components.d/, open PR."
Verified:
- 5 atomic, signed commits
- Per-component data preserved exactly (sampled cuda-q, cuopt, megatron-bridge)
- Aggregation via
yq ea '[.] | {"components": .}' components.d/*.ymlworks for both the sync workflow and regenerate-readme.sh - Schema doc at components.d/README.md is clear (required/optional fields, single + multi-skill examples)
Heads up — three currently-open onboarding PRs (#22 Hannah/TileGym, #12 Seph/Dynamo, #6 Seph/community) still edit components.yml; they'll need to rebase and migrate to components.d/.yml. None are close to merge so this isn't blocking, but I'll ping the authors separately.
12 tasks
sayalinvidia
added a commit
that referenced
this pull request
May 1, 2026
components.yml was split into per-component files under components.d/ in #40. The repo-structure diagram in README.md still showed the old filename; this commit updates it. No functional change — pure documentation sync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
12 tasks
sayalinvidia
added a commit
that referenced
this pull request
May 1, 2026
Hardcoded counts in this block were drifting from reality (e.g. TensorRT-LLM listed as 20 vs actual 24, Megatron-Bridge 9 vs 25). The Available Skills table is the canonical source for counts; keeping them in two places was a maintenance trap. Reviewer follow-up from #40. Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Onboarding type
components.ymlentry)For new product onboarding — author affirmations
By submitting this PR, I confirm on behalf of my team:
.agents/skills/orskills/path used for new entries (or existing path retained for legacy entries percomponents.yml)Reviewer checklist (OSS Skills PIC)
components.ymlentry valid (required fields, uniquecatalog_dir, path exists in source repo)SKILL.mdfrontmatter spec-compliant (at least one sampled)All PRs
git commit -s).If you forgot, run
git rebase --signoff origin/main && git push --force-with-leaseto retroactively sign all commits in your branch.Other context (for non-onboarding PRs)
Summary:
This PR splits components.yml into per-component files under components.d/ (one YAML file per product). Sync workflow and README regenerator now aggregate all components.d/*.yml at runtime — same {components: [...]} structure as before, no behavior change.
Why: simultaneous onboarding PRs from different teams currently all edit components.yml and conflict. Per-file structure means each PR touches its own file → zero shared edits → zero merge conflicts at scale.
5 commits, each independently revertible: split files → migrate workflow → migrate script → remove old components.yml → update PR template.