Skip to content

Add per-component Version column to README - #32

Merged
sayalinvidia merged 3 commits into
NVIDIA:mainfrom
sayalinvidia:add-readme-version-columns
Apr 28, 2026
Merged

Add per-component Version column to README#32
sayalinvidia merged 3 commits into
NVIDIA:mainfrom
sayalinvidia:add-readme-version-columns

Conversation

@sayalinvidia

@sayalinvidia sayalinvidia commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator

Onboarding type

  • New product onboarding (components.yml entry)
  • Other (catalog change, README fix, infrastructure, etc.)

Reviewer checklist (OSS Skills PIC)

  • components.yml unchanged (catalog set is unaffected by this PR)
  • README table renders correctly with the new Version column
  • Sync workflow change reviewed end-to-end (capture + patch steps)
  • No new license or third-party dependency

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

  1. README markers — each row gets a cell wrapped in HTML-comment markers: <!-- sync:slug:version -->...<!-- /sync:slug:version -->. Initial values are em dashes; RAG Blueprint stays plain since it isn't in components.yml.
  2. Sync workflow capture — after each successful clone, records upstream short SHA, full SHA, committer date, and repo to /tmp/sync-versions.txt.
  3. Sync workflow patch — new step sed-replaces each marker block with [`abc1234`](https://github.com/<repo>/commit/<full_sha>) · YYYY-MM-DD. Components without markers are silently skipped.

Design choices

  • One combined "Version" column rather than separate SHA/date — less table bloat, both pieces of info visible.
  • Date is the upstream committer date (%cs), not the sync run date — reflects when the version was created upstream, so readers can judge freshness ("3 weeks old").
  • Slug derivation: name | tr 'A-Z ' 'a-z-' (e.g. Nemotron Voice Agentnemotron-voice-agent).
  • Sed delimiter | because URLs contain slashes; cell content has no pipes.
  • Patch step runs after "Fail if nothing synced" so total failures don't dirty the README.
  • New components onboarded later need to add the marker block to their README row; the workflow won't insert markers automatically.

Known limitation

The committer date uses the committer's local timezone (%cs), so a commit at 22:44 UTC by a +05:30 committer shows as the next day. Easy follow-up if cross-component date comparison matters: switch to TZ=UTC git show -s --date=short --format=%cd.

@sayalinvidia

Copy link
Copy Markdown
Collaborator Author

verified updates on test repo:
image

@sayalinvidia
sayalinvidia marked this pull request as ready for review April 28, 2026 18:37
@sayalinvidia
sayalinvidia requested a review from mosheabr as a code owner April 28, 2026 18:37
@sayalinvidia sayalinvidia changed the title Add readme version columns Add per-component Version column to README Apr 28, 2026

@mosheabr mosheabr left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 .

sayalinvidia and others added 3 commits April 28, 2026 14:32
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>
@sayalinvidia
sayalinvidia force-pushed the add-readme-version-columns branch from d0868ee to 2f0e909 Compare April 28, 2026 21:32
@sayalinvidia
sayalinvidia merged commit 25cb9e8 into NVIDIA:main Apr 28, 2026
mosheabr pushed a commit that referenced this pull request May 1, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants