Add per-component Version column to README - #32
Conversation
mosheabr
left a comment
There was a problem hiding this comment.
Approving — implementation is solid, design choices well-justified (single Version column, upstream committer date, sed-with-pipe-delimiter, ordering after "Fail if nothing synced"). Verified slug derivation matches all 10 markers, sed pattern is safe, and idempotency works.
Before merge: can you rebase with git rebase --signoff origin/main && git push -f to add DCO sign-offs to the three commits? Lets us land this without --admin override and serves as the dry-run for the DCO enforcement work you're prepping.
Side observation: this PR surfaced that RAG Blueprint is in the README but not in components.yml (PR #17 added the README row but skipped the components.yml entry, so skills/rag/ doesn't exist). Tracking separately — not your PR's problem to fix. You correctly kept its Version cell as plain —.
Each component row gets a cell wrapped in HTML-comment markers (<!-- sync:slug:version --> ... <!-- /sync:slug:version -->) that the sync workflow will patch with the upstream commit SHA and date. Initial values are placeholder em dashes; RAG Blueprint stays plain since it isn't in components.yml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
After cloning each product repo, record the upstream HEAD short SHA, full SHA, committer date (YYYY-MM-DD), and repo name to /tmp/sync-versions.txt. The next step will consume this to patch the README Version column markers. Slug derivation matches the marker keys in README.md: lowercase the component name and replace spaces with dashes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
New workflow step reads /tmp/sync-versions.txt and sed-replaces each component's marker block in README.md with a linked short SHA and the upstream committer date, e.g. [\`abc1234\`](https://github.com/.../commit/...) · 2026-04-27. Runs after "Fail if nothing synced" so total failures don't dirty README. Components without markers (e.g. RAG Blueprint, not in components.yml) are silently skipped — sed pattern just doesn't match. Uses | as the sed delimiter so URL slashes don't need escaping. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
d0868ee to
2f0e909
Compare
CONTRIBUTING.md requires every commit to carry a Signed-off-by trailer, but enforcement was honor-system — recent PRs (#29, #30, #32) merged via --admin override because contributors forgot the sign-off and there was no automated check. This workflow runs on every pull_request open/synchronize/reopen, walks each commit in base..head, and fails if any commit lacks a Signed-off-by trailer. The failure log surfaces the recovery command (git rebase --signoff origin/main && git push --force-with-lease) so contributors can self-serve. The automated/sync-skills branch is exempt — it's the daily mirror bot, not a contributor; the legal anchor for synced content lives on the human onboarding PR that registered the component in components.yml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>

Onboarding type
components.ymlentry)Reviewer checklist (OSS Skills PIC)
components.ymlunchanged (catalog set is unaffected by this PR)Other context
Adds a Version column to the Available Skills table that auto-populates with each component's upstream commit SHA and date, giving consumers per-component version visibility without leaving the catalog.
What changes
<!-- sync:slug:version -->...<!-- /sync:slug:version -->. Initial values are em dashes; RAG Blueprint stays plain—since it isn't incomponents.yml./tmp/sync-versions.txt.[`abc1234`](https://github.com/<repo>/commit/<full_sha>) · YYYY-MM-DD. Components without markers are silently skipped.Design choices
%cs), not the sync run date — reflects when the version was created upstream, so readers can judge freshness ("3 weeks old").name | tr 'A-Z ' 'a-z-'(e.g.Nemotron Voice Agent→nemotron-voice-agent).|because URLs contain slashes; cell content has no pipes.Known limitation
The committer date uses the committer's local timezone (
%cs), so a commit at 22:44 UTC by a+05:30committer shows as the next day. Easy follow-up if cross-component date comparison matters: switch toTZ=UTC git show -s --date=short --format=%cd.