Skip to content

docs: Document release procedures - #172

Merged
rapids-bot[bot] merged 10 commits into
NVIDIA:mainfrom
dagardner-nv:david-release-process
Aug 7, 2026
Merged

docs: Document release procedures#172
rapids-bot[bot] merged 10 commits into
NVIDIA:mainfrom
dagardner-nv:david-release-process

Conversation

@dagardner-nv

@dagardner-nv dagardner-nv commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Overview

  • Adapt the prepare-code-freeze and draft-release-notes skills from Relay.
  • Adapt the RELEASING.md document from Relay

Where should the reviewer start?

  • .agents/skills/prepare-code-freeze/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Closes FABRIC-159

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.

  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Summary by CodeRabbit

  • New Features

    • Added tooling to collect verified release evidence and support release-note drafting.
    • Added workflows for preparing code freezes and coordinating release readiness.
  • Documentation

    • Added comprehensive release-process documentation covering versioning, validation, publishing, tagging, and post-release checks.
    • Centralized release policy and maintainer workflow guidance.
    • Updated CI, packaging, and contribution guidance, including the required v prefix for release tags.

…Fabric

Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>
@dagardner-nv
dagardner-nv requested a review from a team as a code owner August 3, 2026 22:39
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Added RELEASING.md with the release workflow. Added skills for code-freeze preparation and release-note drafting. Added a read-only Git evidence collector. Updated maintainer, documentation, CI, packaging, and release-tag guidance.

Changes

Release process

Layer / File(s) Summary
Canonical release policy
RELEASING.md, AGENTS.md, CONTRIBUTING.md
Documents release history, version alignment, code freezes, validation, tagging, publication, GitHub Release creation, post-release checks, and required v-prefixed tags.
Code-freeze preparation
.agents/skills/prepare-code-freeze/SKILL.md, .agents/skills/README.md
Adds the code-freeze workflow, version and branch preparation, validation steps, pull request requirements, and tag guardrails.
Release-note evidence collection
.agents/skills/draft-release-notes/SKILL.md, .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
Adds release-note drafting guidance and a read-only Git collector for refs, commits, versions, release-note trees, categories, and public paths.
Maintainer guidance alignment
.agents/skills/contribute-docs/SKILL.md, .agents/skills/maintain-ci/SKILL.md, .agents/skills/maintain-packaging/SKILL.md
Aligns documentation, CI, and packaging guidance with RELEASING.md. Adds release-related canonical references.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Maintainer
  participant ReleaseNotesSkill
  participant EvidenceCollector
  participant Git
  Maintainer->>ReleaseNotesSkill: Start release-note workflow
  ReleaseNotesSkill->>EvidenceCollector: Request release evidence
  EvidenceCollector->>Git: Resolve refs and inspect commits
  Git-->>EvidenceCollector: Return commits, paths, and release-note trees
  EvidenceCollector-->>ReleaseNotesSkill: Return categorized evidence
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title uses the docs type, an imperative summary, lowercase type, no trailing period, and remains under 72 characters.
Description check ✅ Passed The description includes all required sections, identifies reviewer starting points, references FABRIC-159 with Closes, and confirms both checklist items.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/draft-release-notes/scripts/collect_release_evidence.py:
- Around line 142-145: Remove the ancestor requirement from the ref-resolution
flow around resolve_ref and run_git. Resolve both previous and current refs,
then compute and report their merge base so divergent release branches are
accepted; retain the existing RuntimeError handling for genuine ref or Git
failures.

In @.agents/skills/prepare-code-freeze/SKILL.md:
- Line 64: Update the ordered procedure list in SKILL.md so the step currently
numbered 9 is numbered 8, restoring sequential numbering after item 7 while
preserving the existing PR instructions.
- Around line 1-4: Add the repository-standard copyright and Apache-2.0 SPDX
HTML-comment header immediately after the closing YAML frontmatter delimiter in
.agents/skills/prepare-code-freeze/SKILL.md (lines 1-4) and
.agents/skills/draft-release-notes/SKILL.md (lines 1-4), while keeping the YAML
frontmatter first.
- Around line 33-36: Update the code-freeze workflow in SKILL.md so Step 4
explicitly creates and switches to the PR branch from the latest upstream/main
using the documented branch-name pattern before Step 5 runs just set-version.
Ensure the version bump is performed on this newly checked-out code-freeze
branch, not an unrelated current branch.

In `@RELEASING.md`:
- Around line 180-181: Correct the release-history sentence in the referenced
release-notes documentation so it ends with a single period after “GitHub
Releases”; preserve the MDX front matter and JSX SPDX comment unchanged.
- Around line 6-8: Update the first product reference in RELEASING.md:6-8 by
changing the H1 to use “NVIDIA NeMo Fabric”; update
.agents/skills/prepare-code-freeze/SKILL.md:2-3 and
.agents/skills/draft-release-notes/SKILL.md:2-3 so each description’s first
product reference uses “NVIDIA NeMo Fabric,” retaining “NeMo Fabric” for
subsequent references.
- Around line 254-265: Update the release checklist UI references around
“Releases”, “Tags”, “Create release from tag”, and “Generate release notes” to
use bold formatting for the exact labels, and replace the raw PyPI registry URLs
in the post-release checks with descriptive Markdown links such as
[PyPI](https://pypi.org/) while preserving the existing verification steps.
- Around line 54-62: Update the “Release Tags” section in RELEASING.md to
explicitly document all supported prerelease forms: v<version>-alpha.<number>,
v<version>-beta.<number>, and v<version>-rc.<number>. Keep the guidance
consistent with the publication behavior described in the later CI section and
retain the leading-v requirement.
- Around line 222-249: Update the “What CI Does On A Tag Push” description to
state that stable, beta, and RC tags trigger ci_python.yml, publish_rust.yml,
and fern-docs.yml, while alpha tags trigger only ci_python.yml. Keep the
subsequent workflow responsibilities and publication details consistent with
this distinction.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: a6c85106-99ff-43a8-8ddb-5b46a2d0e389

📥 Commits

Reviewing files that changed from the base of the PR and between f23e364 and ce3a3dd.

📒 Files selected for processing (9)
  • .agents/skills/README.md
  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • AGENTS.md
  • RELEASING.md
📜 Review details
⏰ Context from checks skipped due to timeout. (8)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.14, macos-arm64)
  • GitHub Check: Test (Python 3.11, macos-arm64)
  • GitHub Check: Test (Python 3.13, macos-arm64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (20)
**/.agents/skills/**

📄 CodeRabbit inference engine (.agents/skills/README.md)

Use this maintainer skill set for repository work involving public APIs, tests, CI, packaging, releases, documentation, and pull requests.

Files:

  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/README.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
**/.agents/skills/**/SKILL.md

📄 CodeRabbit inference engine (.agents/skills/README.md)

**/.agents/skills/**/SKILL.md: Name maintainer skills descriptively using task-based names, such as contribute-api and validate-change.
Begin every SKILL.md with YAML frontmatter containing at least name and description.

Files:

  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
.agents/skills/**

📄 CodeRabbit inference engine (.agents/skills/README.md)

Ensure coding agents can auto-discover the maintainer skill set from .agents/skills/.

.agents/skills/**: Use maintainer skills for repository contributions, including API, documentation, testing, CI, packaging, release, and PR preparation; they may reference repository internals.
Do not add consumer integration guidance to the maintainer skill set.

Files:

  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/README.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • AGENTS.md
  • RELEASING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • AGENTS.md
  • RELEASING.md
**/AGENTS.md

📄 CodeRabbit inference engine (CLAUDE.md)

Follow the instructions documented in AGENTS.md when working in the repository.

Files:

  • AGENTS.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

In documentation and examples, reference scripts/generate_api_docs.sh as the stable public wrapper; reference scripts/docs/ helper paths only when documenting internal maintenance work.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant SDK, API reference, adapter, example, integration, and support documentation when the corresponding public surface changes.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX HTML-comment header.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,mdx,rst,yml,yaml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

**/*.{md,mdx,rst,yml,yaml}: Keep package names, repository references, and build commands current.
Run the documentation validation command just docs when the documentation site changes.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{toml,lock,json,yml,yaml,md,py,rs}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Keep package names, import paths, module names, generated artifact locations, CI install commands, examples, and local workflows internally consistent.

Files:

  • AGENTS.md
  • RELEASING.md
**/{README.md,*.md,*.mdx}

📄 CodeRabbit inference engine (AGENTS.md)

When public behavior, the nemo-fabric package, examples, or supported bindings change, update the relevant user-facing documentation entry points, including the root README, Fern docs, adapter and integration READMEs, and examples README.

Files:

  • AGENTS.md
  • RELEASING.md
{docs/**,README.md,AGENTS.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,AGENTS.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency with generated schemas.
For links between files under docs/, require paths relative to the source file with the target file's .mdx extension so they work in both Fern builds and repository browsers. Flag Fern site-root links such as NeMo Fabric overview; use the repository-relative equivalent, such as NeMo Fabric overview.

Files:

  • AGENTS.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • AGENTS.md
  • RELEASING.md
.agents/skills/maintain-packaging/SKILL.md

📄 CodeRabbit inference engine (AGENTS.md)

Keep packaging implementation guidance in .agents/skills/maintain-packaging/SKILL.md.

Files:

  • .agents/skills/maintain-packaging/SKILL.md
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

📄 CodeRabbit inference engine (.agents/skills/draft-release-notes/SKILL.md)

Run the read-only evidence collector with explicit previous and current release refs and the target major/minor version before drafting release notes.

Files:

  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
RELEASING.md

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep release-process and release-history policy in RELEASING.md.

Reflect public packaging changes, release tags, registry publication procedures, and current install/import/build commands in release-facing documentation.

Keep release policy and the end-to-end maintainer workflow in RELEASING.md.

Files:

  • RELEASING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:39:56.701Z
Learning: Keep documentation and example changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:02.573Z
Learning: Confirm the target release version from the release branch and package metadata, and preserve unrelated working-tree changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:02.573Z
Learning: Treat the evidence collector's grouped commits as an evidence index, not publication-ready copy.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:02.573Z
Learning: Run `git diff --check` and `just docs` after reviewing public claims.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:02.573Z
Learning: Check product names, commands, package names, support claims, and links against the current repository before handing off the draft.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Prompt for `<next-version>` when it is not provided; this is the version that `main` adopts after the release branch is created.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Fetch the latest `upstream/main`, create the release branch from it, and push the branch to `upstream`; if it already exists, verify that it points to the expected commit.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Create the code-freeze PR branch from the latest `upstream/main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Run `just set-version <next-version>` to update all release-versioned package surfaces on `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Validate the freeze with `cargo check --workspace --locked`, `just build-all`, `just wheels`, `just --fmt --check`, a search for remaining old-version documentation references, and `git diff --check`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: The code-freeze PR must target `main`, not the release branch, and must mention the new release branch, nightly alpha branch configuration update, version bump, documentation updates or intentional leftovers, and the new release-branch target for release-bound PRs.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Do not create release tags during a code freeze; create only the release branch and main PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Do not leave uncommitted user changes mixed into the code-freeze PR branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:25.382Z
Learning: Use `update-project-version` for version semantics, `maintain-ci` when freeze changes affect nightly or release-branch automation, and `prepare-pr` before opening the PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: Use branch prefixes `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: Name branches after the work, never the Linear ticket; do not embed ticket IDs or slugs in branch names.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: Use Conventional Commit PR titles in the form `<type>: <summary>`; reserve `fix` for actual product bugs, not CI, documentation, or chores.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: Use signed-off commits with `git commit -s` for pull-request work.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:40:34.629Z
Learning: PR descriptions must include what changed, why, how it was tested, and any breaking changes within the repository template format.
🪛 ast-grep (0.45.0)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

[error] 29-35: Command coming from incoming request
Context: subprocess.run(
["git", *args],
cwd=repo,
check=False,
capture_output=True,
encoding="utf-8",
)
Note: [CWE-78] Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').

(subprocess-from-request)


[warning] 58-58: XPath query is request-/variable-derived; use parameterized XPath to prevent injection.
Context: VERSION_PATTERN.findall(content)
Note: [CWE-643] Improper Neutralization of Data within XPath Expressions ('XPath Injection').

(xpath-injection-python)

🪛 LanguageTool
.agents/skills/prepare-code-freeze/SKILL.md

[uncategorized] ~64-~64: The official name of this software platform is spelled with a capital “H”.
Context: ...on. 9. Open a PR targeting main using .github/pull_request_template.md. The PR mu...

(GITHUB)

RELEASING.md

[uncategorized] ~224-~224: The official name of this software platform is spelled with a capital “H”.
Context: ... Tag Push Pushing a valid tag triggers [.github/workflows/ci_python.yml](.github/workf...

(GITHUB)


[uncategorized] ~225-~225: The official name of this software platform is spelled with a capital “H”.
Context: ...yml](.github/workflows/ci_python.yml), [.github/workflows/publish_rust.yml`](.github/wo...

(GITHUB)


[uncategorized] ~226-~226: The official name of this software platform is spelled with a capital “H”.
Context: ...github/workflows/publish_rust.yml), and [.github/workflows/fern-docs.yml](.github/workf...

(GITHUB)

🪛 markdownlint-cli2 (0.23.1)
.agents/skills/prepare-code-freeze/SKILL.md

[warning] 64-64: Ordered list item prefix
Expected: 8; Actual: 9; Style: 1/2/3

(MD029, ol-prefix)

🪛 Ruff (0.16.0)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

[error] 30-30: subprocess call: check for execution of untrusted input

(S603)


[error] 31-31: Starting a process with a partial executable path

(S607)


[warning] 39-39: Avoid specifying long messages outside the exception class

(TRY003)

🔇 Additional comments (5)
AGENTS.md (1)

51-51: LGTM!

.agents/skills/README.md (1)

41-42: LGTM!

.agents/skills/contribute-docs/SKILL.md (1)

24-25: LGTM!

Also applies to: 43-43

.agents/skills/maintain-ci/SKILL.md (1)

37-38: LGTM!

Also applies to: 94-97

.agents/skills/maintain-packaging/SKILL.md (1)

31-32: LGTM!

Also applies to: 92-92

Comment thread .agents/skills/prepare-code-freeze/SKILL.md
Comment thread .agents/skills/prepare-code-freeze/SKILL.md
Comment thread .agents/skills/prepare-code-freeze/SKILL.md Outdated
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md
Comment thread RELEASING.md Outdated
Signed-off-by: David Gardner <dagardner@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
RELEASING.md (2)

85-95: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Must fix — Switch to main before bumping the next release version.

After the branch creation commands, the checkout remains on release/0.2. Step 88 says to bump versions on main, but the procedure does not show a switch to an up-to-date main or a PR branch based on it. A maintainer can run just set-version <next-version> on the release branch instead.

Add an explicit fetch and checkout or branch-creation step before just set-version.

Based on learnings, a code freeze must create the release branch, advance main, and prepare the code-freeze pull request.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@RELEASING.md` around lines 85 - 95, Update the release procedure after
creating the release branch to fetch the latest remote state and switch to an
up-to-date main-based branch before running just set-version <next-version>.
Include the required code-freeze flow: create the release branch, advance main,
and prepare the code-freeze pull request, ensuring the version bump cannot run
on release/0.2.

Source: Learnings


137-152: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Must fix — Make release validation complete and mandatory.

The baseline omits the required metadata check, cargo check --workspace --locked, just build-python, just --fmt --check, and git diff --check. It also treats just wheels as optional even though wheel artifacts are a published release surface.

Add these checks to the required release validation.

As per coding guidelines, version changes require targeted metadata searches, locked Rust validation, just build-python, release wheel builds, and git diff --check. Based on learnings, run just --fmt --check before handoff.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@RELEASING.md` around lines 137 - 152, Update the required release-validation
commands in RELEASING.md to include targeted metadata searches, cargo check
--workspace --locked, just build-python, just wheels, just --fmt --check, and
git diff --check. Move the wheel build from the optional section into the
mandatory baseline and retain the existing checks.

Sources: Coding guidelines, Learnings

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@RELEASING.md`:
- Around line 171-177: Update both release procedures in RELEASING.md to replace
the git pull commands immediately before tagging with git pull --ff-only, then
add a verification step confirming the checked-out commit is the expected
release commit before each git tag command. Preserve the existing branch
checkout and tagging flow.

---

Outside diff comments:
In `@RELEASING.md`:
- Around line 85-95: Update the release procedure after creating the release
branch to fetch the latest remote state and switch to an up-to-date main-based
branch before running just set-version <next-version>. Include the required
code-freeze flow: create the release branch, advance main, and prepare the
code-freeze pull request, ensuring the version bump cannot run on release/0.2.
- Around line 137-152: Update the required release-validation commands in
RELEASING.md to include targeted metadata searches, cargo check --workspace
--locked, just build-python, just wheels, just --fmt --check, and git diff
--check. Move the wheel build from the optional section into the mandatory
baseline and retain the existing checks.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: d8b890a1-cb4f-46bf-9c10-cb3ff2909733

📥 Commits

Reviewing files that changed from the base of the PR and between ce3a3dd and c89dbf5.

📒 Files selected for processing (1)
  • RELEASING.md
📜 Review details
⏰ Context from checks skipped due to timeout. (14)
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.13, linux-arm64)
  • GitHub Check: Test (Python 3.11, macos-arm64)
  • GitHub Check: Test (Python 3.14, macos-arm64)
  • GitHub Check: Test (Python 3.11, linux-arm64)
  • GitHub Check: Test (Python 3.12, linux-arm64)
  • GitHub Check: Test (Python 3.12, macos-arm64)
  • GitHub Check: Test (Python 3.13, macos-arm64)
  • GitHub Check: Test (Python 3.13, linux-amd64)
  • GitHub Check: Test (Python 3.11, linux-amd64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (12)
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • RELEASING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • RELEASING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • RELEASING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • RELEASING.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • RELEASING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

**/*.{md,mdx}: In documentation, prefer the documented public API over internal shortcuts.
Keep release-process and release-history policy in RELEASING.md; do not duplicate it in user-facing documentation or a CHANGELOG.md.

Files:

  • RELEASING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant SDK, API reference, adapter, example, integration, and support documentation when the corresponding public surface changes.

Files:

  • RELEASING.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX HTML-comment header.

Files:

  • RELEASING.md
**/*.{md,mdx,yml,yaml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

**/*.{md,mdx,yml,yaml}: Keep package names, repository references, and build commands current in documentation and example-related configuration.
Update entry-point documentation, including README.md or docs/index.yml, when examples or documentation reading paths change.
Update relevant getting-started, reference, adapter, and example README documentation when related examples or adapters change.
Run just docs when the documentation site changes.

Files:

  • RELEASING.md
RELEASING.md

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Reflect public packaging changes in release-facing documentation, including release tags, registry publication, and current install/import/build commands.

Files:

  • RELEASING.md
{RELEASING.md,.agents/skills/maintain-packaging/SKILL.md,docs/**/*}

📄 CodeRabbit inference engine (AGENTS.md)

Keep release policy and end-to-end maintainer workflow in RELEASING.md, packaging implementation guidance in .agents/skills/maintain-packaging/SKILL.md, and do not move release-history policy into user-facing docs or add a duplicate CHANGELOG.md.

Files:

  • RELEASING.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • RELEASING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Use maintainer skills for repository work involving public APIs, tests, CI, packaging, releases, documentation, and pull requests; keep consumer-facing integration guidance in the top-level `skills/` directory.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: When adding a public API, maintain parity across Rust, CLI, Python, schema, adapters, and documentation.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Production-ready harness adapters must define explicit capability, policy, packaging, lifecycle, and validation contracts.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Maintain package metadata, native artifacts, lockfiles, and release surfaces when changing packaging.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Synchronize release versions across packaging when updating the project version.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Create a release branch, advance `main`, and prepare the code-freeze pull request when preparing a code freeze.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Draft documentation release notes from verified repository evidence.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:50:50.620Z
Learning: Prepare, open, or edit pull requests with the correct scope and review handoff.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: Draft release notes from verified repository evidence; verify candidate claims in public documentation, API types, command help, or source before including them.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: State that the full release history is available in GitHub Releases; do not create a changelog or GitHub Release body from this skill.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: Confirm the target release version from the release branch and package metadata, and preserve unrelated working-tree changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: Run the read-only release-evidence helper with explicit previous and current release refs and the target minor version before drafting.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: Prioritize breaking changes, migrations, user-visible features, and ongoing support limitations when selecting release-note content.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: Run `git diff --check` and `just docs` after updating release notes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:01.057Z
Learning: Check product names, commands, package names, support claims, and links against the current repository before handing off the draft.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:09.833Z
Learning: Keep changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:09.833Z
Learning: Validate workflow changes with the narrowest useful checks, beginning with `just --fmt --check`, and inspect workflow references with `rg -n "uses:|permissions:|secrets:|concurrency:|cache|just " .github/workflows`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:09.833Z
Learning: When local lint passes but GitHub authorization is uncertain, inspect GitHub's permission model and the upstream action or reusable-workflow source rather than assuming local success proves remote success.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:09.833Z
Learning: Do not cache generated outputs when caching could hide stale behavior, unless the repository deliberately relies on that cache.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:19.716Z
Learning: Record the functional need, viable alternatives considered, why the selected dependency is the narrowest fit, and any unresolved licensing question; route licensing uncertainties to dependency approvers with distribution and linkage context.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:19.716Z
Learning: Keep changes scoped, surface assumptions, and define focused validation before editing; use the companion `karpathy-guidelines` alongside this guidance.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Derive the release branch name as `release/<major>.<minor>`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Create the release branch from the latest `upstream/main`; if it already exists, verify that it points to the expected commit before continuing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Prompt for `<next-version>` when it was not provided; this is the version that `main` uses after the release branch is cut.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Use `just set-version <next-version>` to bump all release-versioned package surfaces on `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Run `just build-all`, `just wheels`, `just --fmt --check`, the documentation old-version search, and `git diff --check` before opening the PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: The code-freeze PR must mention the new release branch, nightly alpha branch configuration update, version bump, documentation reference updates or intentional leftovers, and that release-bound PRs now target the new `release/*` branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Do not create release tags during a code freeze; create only the release branch and main PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Do not target the code-freeze PR at the release branch; target `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:26.701Z
Learning: Do not leave uncommitted user changes mixed into the code-freeze PR branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:36.245Z
Learning: Use branch prefixes `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:36.245Z
Learning: Name branches after the work and never include Linear ticket IDs or slugs in the branch name.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:36.245Z
Learning: Use signed-off commits for pull request work with `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:36.245Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T22:51:36.245Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
🔇 Additional comments (6)
RELEASING.md (6)

6-8: Must fix — Duplicate: Use the full product name on first use.

The heading is the first product reference, but it says NeMo Fabric. Change it to NVIDIA NeMo Fabric. Keep NeMo Fabric for later references.

As per path instructions, use NVIDIA NeMo Fabric on first use and NeMo Fabric thereafter.

Source: Path instructions


58-60: Must fix — Duplicate: Document every supported prerelease tag form.

The policy lists v0.1.0-rc.1, but Line 177 emits v0.1.0-rc1. Document the supported alpha, beta, and RC forms, including the compact RC form accepted by the repository, and use one canonical RC form in the commands.

Based on repository release-tag behavior, the documented forms must match the accepted forms and publication rules.

Also applies to: 177-177


209-210: Should fix — Duplicate: Remove the extra period.

Change GitHub Releases.. to GitHub Releases.

As per coding guidelines, technical documentation must use precise, professional prose.

Source: Coding guidelines


249-252: Must fix — Duplicate: Describe the alpha workflow boundary.

The statement says every valid tag triggers all three workflows. Alpha tags trigger only .github/workflows/ci_python.yml; the Rust and Fern workflows exclude alpha tags. State this distinction before listing workflow responsibilities.

Based on repository workflow behavior, alpha tags are excluded from Rust and Fern workflows.


279-290: Should fix — Duplicate: Format UI labels and registry links.

Format the exact GitHub controls as bold labels, such as Releases, Tags, Create release from tag, and Generate release notes. Replace the raw registry URLs at Lines 289-290 with descriptive links.

As per coding guidelines, format UI labels in bold and use descriptive link text instead of raw URLs.

Source: Coding guidelines


13-35: LGTM!

Also applies to: 37-52, 69-83, 97-134, 188-208, 212-218, 220-229, 238-244, 254-275

Comment thread RELEASING.md Outdated
Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
RELEASING.md (1)

177-184: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Must fix — Use the documented RC tag format.

Line 177 creates v${RELEASE_VERSION}-rc${RC_NUM}, such as v0.1.0-rc1. The documented contract requires v0.1.0-rc.1. Update both the tag name and the push command.

Proposed fix
-git tag -as -m "v${RELEASE_VERSION}-rc${RC_NUM}" v${RELEASE_VERSION}-rc${RC_NUM}
+git tag -as -m "v${RELEASE_VERSION}-rc.${RC_NUM}" v${RELEASE_VERSION}-rc.${RC_NUM}

-git push upstream v${RELEASE_VERSION}-rc${RC_NUM}
+git push upstream v${RELEASE_VERSION}-rc.${RC_NUM}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@RELEASING.md` around lines 177 - 184, Update the release-candidate tag
references in the tagging, verification, and push commands to use the documented
dotted format, placing a period between the rc marker and RC_NUM (for example,
v0.1.0-rc.1). Keep the RELEASE_VERSION and RC_NUM variables unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@RELEASING.md`:
- Around line 177-184: Update the release-candidate tag references in the
tagging, verification, and push commands to use the documented dotted format,
placing a period between the rc marker and RC_NUM (for example, v0.1.0-rc.1).
Keep the RELEASE_VERSION and RC_NUM variables unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: a5cb165a-cc58-4c6c-b798-24e2bd8f46de

📥 Commits

Reviewing files that changed from the base of the PR and between c89dbf5 and ae82f7c.

📒 Files selected for processing (3)
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • RELEASING.md
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.12, windows-amd64)
🧰 Additional context used
📓 Path-based instructions (14)
.agents/skills/**

📄 CodeRabbit inference engine (AGENTS.md)

.agents/skills/**: Use maintainer skills for repository contributions involving API, documentation, testing, CI, packaging, release, and PR preparation; these skills may reference repository internals.
Do not add consumer integration guidance to maintainer skills.

Files:

  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/prepare-code-freeze/SKILL.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • RELEASING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • RELEASING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • RELEASING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • RELEASING.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • RELEASING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

Files:

  • RELEASING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant SDK, API reference, adapter, example, integration, and support documentation when the corresponding public surface changes.

Files:

  • RELEASING.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX HTML-comment header.

Files:

  • RELEASING.md
**/*.{md,mdx,rst,yml,yaml,py,sh,bash}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current.

Files:

  • RELEASING.md
**/*.{md,mdx,rst,py,sh,bash}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Ensure example commands match current package names and paths.

Files:

  • RELEASING.md
**/{docs/package.json,docs/package-lock.json,.github/workflows/*.yml,justfile,RELEASING.md}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Use current and consistent package names, install commands, import commands, and build commands across documentation, examples, CI workflows, recipes, and release documentation.

Files:

  • RELEASING.md
RELEASING.md

📄 CodeRabbit inference engine (AGENTS.md)

Keep release policy and the end-to-end maintainer workflow in RELEASING.md.

Files:

  • RELEASING.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • RELEASING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:30.306Z
Learning: Keep maintainer skills focused on developing NeMo Fabric itself, including public APIs, tests, CI, packaging, releases, documentation, and pull requests.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:30.306Z
Learning: Keep consumer-facing integration guidance in the top-level `skills/` directory so it can be exported separately; do not include it in the maintainer skill set.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:30.306Z
Learning: Use descriptive, task-based names for maintainer skills, such as `contribute-api` and `validate-change`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:30.306Z
Learning: For Claude Code, expose the same maintainer skill set through `.claude/skills` as a symlink to `.agents/skills`, without mixing in consumer skills.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:36.637Z
Learning: Run `just docs` when the documentation site changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Use verified repository evidence when drafting release notes, including changed public documentation, API types, command help, and source code.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Confirm the target release version from the release branch and package metadata before drafting.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Run `collect_release_evidence.py` with explicit previous and current release refs and the target minor version before reviewing release candidates.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Treat the helper's commit groups as an evidence index, not publication-ready release-note copy.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Prioritize breaking changes, migrations, user-visible features, and ongoing support limitations when selecting release-note content.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Preserve unrelated working-tree changes while preparing release notes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Run `git diff --check` and `just docs` after reviewing claims.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:42.369Z
Learning: Verify product names, commands, package names, support claims, and links against the current repository before handoff.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:49.628Z
Learning: Keep changes scoped, surface assumptions, and define focused validation before editing; use `karpathy-guidelines` alongside this guidance.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:18:49.628Z
Learning: Run the narrowest useful validation, beginning with `just --fmt --check`. If local lint passes but GitHub authorization is uncertain, inspect GitHub's permission model and upstream action or reusable-workflow source rather than assuming local success proves remote success.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Prompt for `<next-version>` when it is not provided; this is the version that `main` adopts after the release branch is cut.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Create and push the release branch from the latest `upstream/main`; if it already exists, verify that it points to the expected commit before continuing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Create the code-freeze PR branch from the latest `upstream/main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Run `just set-version <next-version>` to bump all release-versioned package surfaces on `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Leave intentional historical references unchanged, including release notes, changelogs, generated build output, and third-party dependency attribution entries.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Run `just build-all`, `just wheels`, `just --fmt --check`, the old-version documentation search, and `git diff --check` as targeted freeze validation.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Any remaining documentation matches for `<old-version>` must be intentional and called out in the PR description.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: The PR description must mention the new release branch, nightly alpha branch configuration update, `just set-version <next-version>` bump, documentation updates or intentional leftovers, and that release-bound PRs now target the new `release/*` branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Do not create release tags; a code freeze creates only the release branch and the main PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Do not target the code-freeze PR at the release branch; target `main` instead.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:04.735Z
Learning: Do not leave uncommitted user changes mixed into the code-freeze PR branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: Use branch prefixes `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: Name branches after the work and never include Linear ticket IDs or slugs in branch names.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: Use Conventional Commit PR titles in the form `<type>: <summary>`; reserve `fix` for actual product bugs, not CI, documentation, or chores.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: Use signed-off commits for pull-request work with `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:19:13.214Z
Learning: PR descriptions must include what changed, why, how it was tested, and any breaking changes within the repository template format.
🪛 LanguageTool
.agents/skills/prepare-code-freeze/SKILL.md

[uncategorized] ~66-~66: The official name of this software platform is spelled with a capital “H”.
Context: ...on. 8. Open a PR targeting main using .github/pull_request_template.md. The PR mu...

(GITHUB)

RELEASING.md

[uncategorized] ~253-~253: The official name of this software platform is spelled with a capital “H”.
Context: ...s : | Workflow | Trigger | |---|---| | [.github/workflows/ci_python.yml](.github/workf...

(GITHUB)


[uncategorized] ~254-~254: The official name of this software platform is spelled with a capital “H”.
Context: ...yml) | For all tags including alpha | | [.github/workflows/publish_rust.yml](.github/wo...

(GITHUB)


[uncategorized] ~255-~255: The official name of this software platform is spelled with a capital “H”.
Context: ...ml) | For RC, beta and release tags | | [.github/workflows/fern-docs.yml](.github/workf...

(GITHUB)

🔇 Additional comments (11)
RELEASING.md (7)

54-60: Duplicate — Document all supported prerelease tag forms.

This section still documents only RC prereleases. Add the supported alpha and beta forms, and keep the dotted RC form.


171-177: Duplicate — Use fast-forward-only pulls before tagging.

Both procedures still run git pull immediately before git tag. Replace it with git pull --ff-only and verify the expected release commit before each tag command.

Also applies to: 231-237


249-255: Duplicate — Name stable tags explicitly.

The table uses “release tags” instead of “stable tags”. State that stable, beta, and RC tags trigger the Rust and Fern workflows, while alpha tags trigger only the Python workflow.


280-295: Duplicate — Format UI controls and registry links.

Use bold formatting for the exact GitHub control labels. Replace raw registry URLs with descriptive links such as [PyPI](...).

As per coding guidelines, format UI labels in bold and use descriptive link text instead of raw URLs.

Source: Coding guidelines


6-36: LGTM!


69-157: LGTM!


188-218: LGTM!

.agents/skills/prepare-code-freeze/SKILL.md (3)

4-5: Duplicate — Add the required SPDX HTML-comment header.

The author and license frontmatter does not replace the repository copyright and Apache-2.0 SPDX header. Add the required HTML comment after the closing frontmatter.

Source: Coding guidelines


35-38: Duplicate — Check out the code-freeze PR branch before running just set-version.

Step 4 only names docs/code-freeze-<major>.<minor>; it does not create or switch to that branch. Step 5 can therefore modify the current branch instead of the intended PR branch. Add an explicit checkout command and run just set-version there.


8-34: LGTM!

Also applies to: 39-79

.agents/skills/draft-release-notes/SKILL.md (1)

4-5: Duplicate — Add the required SPDX HTML-comment header.

The author and license frontmatter does not replace the repository copyright and Apache-2.0 SPDX header. Add the required HTML comment after the closing frontmatter.

Source: Coding guidelines

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@RELEASING.md`:
- Around line 289-307: Update the post-release verification section in
RELEASING.md to require the current ${RELEASE_VERSION} for nemo-fabric-core and
nemo-fabric-cli on crates.io, and for every listed Python distribution on both
PyPI indexes. Retain the requirement that nemo-fabric-runtime has a wheel for
each supported platform, and make each check explicitly verify the current
release version rather than merely package-page availability.
- Around line 289-307: Update the Python publication guidance in RELEASING.md to
document the external publisher, its release trigger, and its owner for all
seven distributions on PyPI and NVIDIA PyPI, or add the missing publication
workflow/release-caller step that uploads them. Ensure the post-release registry
checks remain only after a concrete publication process is defined.
- Around line 282-285: Extend the release procedure after the “Generate release
notes” step to instruct reviewing the generated title and body, then selecting
“Publish release.” Add a verifiable success criterion confirming that the GitHub
release entry is created and visible for the selected tag.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 7e9529ab-9e89-42df-b243-bc9079263937

📥 Commits

Reviewing files that changed from the base of the PR and between ae82f7c and c7b41dd.

📒 Files selected for processing (1)
  • RELEASING.md
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (11)
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • RELEASING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • RELEASING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • RELEASING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • RELEASING.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • RELEASING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

**/*.{md,mdx}: Prefer the documented public API over internal shortcuts in documentation and examples.
Keep release-process and release-history policy in RELEASING.md; do not duplicate it in user-facing documentation or CHANGELOG.md.
Update relevant getting-started, reference, adapter, and example README documentation when corresponding examples or adapters change.
Ensure example commands match current package names and paths.

Files:

  • RELEASING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant SDK, API reference, adapter, example, integration, and support documentation when the corresponding public surface changes.

Files:

  • RELEASING.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX HTML-comment header.

Files:

  • RELEASING.md
**/*.{md,mdx,yml,yaml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

**/*.{md,mdx,yml,yaml}: Keep package names, repository references, and build commands current.
Update entry-point documentation when examples or reading paths change, including README.md or docs/index.yml when applicable.

Files:

  • RELEASING.md
RELEASING.md

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Reflect public packaging changes, release tags, registry publication, and current install/import/build commands in release-facing documentation.

Keep release policy and the end-to-end maintainer workflow in RELEASING.md.

Files:

  • RELEASING.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • RELEASING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:24:44.826Z
Learning: Keep consumer-facing integration guidance in the top-level `skills/` directory and out of the maintainer skill set.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:24:49.603Z
Learning: Run `just docs` when the documentation site changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:12.247Z
Learning: Use `karpathy-guidelines` alongside this guidance; keep changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:12.247Z
Learning: Prefer the standard library, an existing dependency, or a small local implementation when that keeps behavior clear and maintainable.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:12.247Z
Learning: For every new dependency, record the functional need, alternatives considered, why the dependency is the narrowest fit, and any unresolved licensing question.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:12.247Z
Learning: Ensure generated artifacts land where downstream consumers expect, and keep package names, import paths, module names, documentation, examples, CI references, and versions internally consistent.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Prompt for `<next-version>` when it is not provided; this is the version that `main` uses after the release branch is cut.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Create the release branch from the latest `upstream/main`, push it to `upstream`, and verify an existing branch points to the expected commit before continuing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Create the code-freeze PR branch from the latest `upstream/main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Run `just build-all`, `just wheels`, `just --fmt --check`, the old-version documentation search, and `git diff --check` as targeted code-freeze validation.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: The code-freeze PR must mention the new release branch, nightly alpha branch configuration update, version bump, documentation updates or intentional leftovers, and that release-bound PRs now target the new `release/*` branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Do not create release tags during code freeze; only create the release branch and main PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Do not target the code-freeze PR at the release branch; target `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:19.271Z
Learning: Do not leave uncommitted user changes mixed into the code-freeze PR branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:30.771Z
Learning: Name branches after the work, never the Linear ticket, and do not embed ticket IDs or slugs in branch names.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:30.771Z
Learning: Use signed-off commits for pull-request work with git commit -s.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:30.771Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:30.771Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:25:30.771Z
Learning: PR descriptions must include what changed, why, how it was tested, and any breaking changes within the repository template format.
🔇 Additional comments (1)
RELEASING.md (1)

282-285: Should fix — Format GitHub controls as UI labels.

RELEASING.md#L282-L285 still places control names in quotation marks. Format Releases, Tags, Create release from tag, and Generate release notes in bold.

This duplicates the previous review finding, which remains unresolved.

Source: Coding guidelines

Comment thread RELEASING.md Outdated
Comment thread RELEASING.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/draft-release-notes/scripts/collect_release_evidence.py:
- Around line 154-157: Update the print_note_tree calls in the evidence
collection flow to pass previous_sha and current_sha instead of args.previous
and args.current, ensuring the release-notes trees use the same resolved commit
IDs as commits().
- Around line 136-148: Validate args.version as a strict major.minor value
before the evidence heading is generated, rejecting arbitrary text and malformed
versions through parser.error. Update the argument handling around
collect_release_evidence.py’s parser setup and preserve the validated version
for the existing “# Release-Note Evidence” output.
- Around line 69-70: Update the path collection in the release-evidence flow
around run_git to preserve every changed path for renames: invoke Git with
--no-renames and --name-only, then build paths from each non-empty output line
without splitting on tabs. Keep the existing repository and commit selection
unchanged.

In @.agents/skills/draft-release-notes/SKILL.md:
- Line 3: Update the description metadata in the draft-release-notes skill to
use “NVIDIA NeMo Fabric” for the first product-name reference, while retaining
“NeMo Fabric” for subsequent references.
- Around line 1-6: Add the repository-standard SPDX copyright and Apache-2.0
HTML comment immediately after the closing front-matter delimiter in SKILL.md,
preserving the existing YAML front matter unchanged and valid.
- Around line 24-26: Update the report capability description in the
release-notes skill to match collect_release_evidence.py: describe inspecting
both refs, listing release-note paths, and extracting version text, but remove
the claim that it compares release-notes pages unless the collector is extended
to generate that comparison.

In @.agents/skills/prepare-code-freeze/SKILL.md:
- Around line 21-25: Add a clean-worktree precondition before the branching and
version-update steps in the prepare-code-freeze workflow: run git status
--porcelain, proceed only when it is empty, and stop with a clear message
otherwise. Ensure this check occurs before fetching, creating the release
branch, or invoking just set-version.

In `@RELEASING.md`:
- Around line 249-250: Update the workflow-table lead-in in RELEASING.md from
“Pushing a valid tag triggers :” to “Pushing a valid tag triggers the workflows
below:”, removing the extra space and specifying the triggered object.
- Around line 177-184: Update the release-candidate tag references in the
documented git tag, git tag listing, git show, and git push commands to use the
`-rc.${RC_NUM}` suffix with a dot, consistently preserving the documented
`v<version>-rc.<number>` format.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 2fa2b1f4-9ee6-4327-8400-7d54318f943d

📥 Commits

Reviewing files that changed from the base of the PR and between f23e364 and c7b41dd.

📒 Files selected for processing (9)
  • .agents/skills/README.md
  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • AGENTS.md
  • RELEASING.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (16)
.agents/skills/**

📄 CodeRabbit inference engine (.agents/skills/README.md)

Coding agents discover maintainer skills from .agents/skills/.

.agents/skills/**: Keep maintainer skills under .agents/skills/; they may reference repository internals and contribution commands.
Do not add consumer integration guidance to the maintainer skill set.

Files:

  • .agents/skills/README.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/prepare-code-freeze/SKILL.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
.agents/skills/maintain-packaging/SKILL.md

📄 CodeRabbit inference engine (AGENTS.md)

Keep packaging implementation guidance in .agents/skills/maintain-packaging/SKILL.md.

Files:

  • .agents/skills/maintain-packaging/SKILL.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • AGENTS.md
  • RELEASING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • AGENTS.md
  • RELEASING.md
**/AGENTS.md

📄 CodeRabbit inference engine (CLAUDE.md)

Follow the instructions documented in AGENTS.md when working in the repository.

Files:

  • AGENTS.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

**/*.{md,mdx}: Prefer documented public APIs over internal shortcuts in documentation and examples.
Keep release-process and release-history policy in RELEASING.md, rather than duplicating it in user-facing documentation or a CHANGELOG.md.

**/*.{md,mdx}: Verify every release-note claim against changed public documentation, API types, command help, or source before including it.
Prioritize breaking changes, migrations, user-visible features, and ongoing support limitations in the curated...

Files:

  • AGENTS.md
  • RELEASING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant SDK, API reference, adapter, example, integration, and support documentation when the corresponding public surface changes.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML and Markdown files must use the specified SPDX HTML-comment header.

Files:

  • AGENTS.md
  • RELEASING.md
**/*.{md,mdx,yml,yaml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current.

Files:

  • AGENTS.md
  • RELEASING.md
{docs/**,README.md,AGENTS.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,AGENTS.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency with generated schemas.
For links between files under docs/, require paths relative to the source file with the target file's .mdx extension so they work in both Fern builds and repository browsers. Flag Fern site-root links such as NeMo Fabric overview; use the repository-relative equivalent, such as NeMo Fabric overview.

Files:

  • AGENTS.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • AGENTS.md
  • RELEASING.md
{docs/**/*,.github/workflows/**/*,justfile,RELEASING.md}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Keep documentation, examples, CI, local recipes, and release-facing material aligned with current install, import, build, and package names.

Files:

  • RELEASING.md
RELEASING.md

📄 CodeRabbit inference engine (AGENTS.md)

Keep release policy and the end-to-end maintainer workflow in RELEASING.md.

Files:

  • RELEASING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:28:54.782Z
Learning: Confirm the target release version from the release branch and package metadata.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:28:54.782Z
Learning: Run `collect_release_evidence.py` with explicit previous and current release refs and the target minor version before drafting release notes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:28:54.782Z
Learning: Treat the helper's commit groups as an evidence index, not publication-ready copy.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:28:54.782Z
Learning: Preserve unrelated working-tree changes while preparing release notes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:28:54.782Z
Learning: Run `git diff --check` and `just docs`, and verify product names, commands, package names, support claims, and links against the current repository before handoff.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:01.669Z
Learning: Keep CI changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:01.669Z
Learning: When GitHub authorization is uncertain, inspect GitHub's permission model and the upstream action or reusable-workflow source rather than treating local lint success as proof of remote correctness.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: Prefer the standard library, an existing dependency, or a small local implementation when that keeps behavior clear and maintainable.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: When multiple dependencies satisfy the requirement, prefer a maintained OSS option with clear SPDX metadata, a smaller transitive graph, and permissive licensing terms.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: Inspect resolved transitive dependency graphs, not only direct package licenses.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: Treat UNKNOWN, non-SPDX/custom, proprietary, source-available, copyleft, and network-copyleft terms as explicit review points; route them to dependency approvers with distribution and linkage context.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: Record the functional need, viable alternatives considered, why the selected dependency is the narrowest fit, and unresolved licensing questions.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: New dependencies must be necessary, maintained, and narrower than viable alternatives.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: Call out licensing uncertainties for dependency approver review.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:10.433Z
Learning: Include regenerated attribution files when they change.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Derive the release branch name as `release/<major>.<minor>` from the target release version.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Create the release branch from the latest `upstream/main`, and verify an existing remote release branch points where expected before continuing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Prompt for `<next-version>` when it is not provided; this is the version that `main` adopts after the release branch is cut.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Create the code-freeze PR branch from the latest `upstream/main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Run `just set-version <next-version>` to bump all release-versioned package surfaces on `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Validate the freeze with `cargo check --workspace --locked`, `just build-all`, `just wheels`, `just --fmt --check`, a search for remaining old-version references, and `git diff --check`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: The code-freeze PR must target `main`, not the release branch, and must mention the new release branch, nightly alpha branch configuration update, version bump, documentation reference updates or intentional leftovers, and that release-bound PRs now target the new `release/*` branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Do not create release tags during code freeze; create only the release branch and main PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:15.563Z
Learning: Do not leave uncommitted user changes mixed into the code-freeze PR branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:23.663Z
Learning: Use branch prefixes `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`; name branches after the work and never include Linear ticket IDs or slugs.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:23.663Z
Learning: Use Conventional Commit PR titles in the form `<type>: <summary>`; reserve `fix` for actual product bugs, not CI, documentation, or chores.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:23.663Z
Learning: Use signed-off commits for pull-request work with `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:23.663Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:23.663Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:29:23.663Z
Learning: PR descriptions must include what changed, why, how it was tested, and any breaking changes within the repository template format.
🪛 ast-grep (0.45.0)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

[warning] 58-58: XPath query is request-/variable-derived; use parameterized XPath to prevent injection.
Context: VERSION_PATTERN.findall(content)
Note: [CWE-643] Improper Neutralization of Data within XPath Expressions ('XPath Injection').

(xpath-injection-python)


[error] 29-35: Command coming from incoming request
Context: subprocess.run(
["git", *args],
cwd=repo,
check=False,
capture_output=True,
encoding="utf-8",
)
Note: [CWE-78] Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').

(subprocess-from-request)

🪛 LanguageTool
.agents/skills/prepare-code-freeze/SKILL.md

[uncategorized] ~66-~66: The official name of this software platform is spelled with a capital “H”.
Context: ...on. 8. Open a PR targeting main using .github/pull_request_template.md. The PR mu...

(GITHUB)

RELEASING.md

[uncategorized] ~253-~253: The official name of this software platform is spelled with a capital “H”.
Context: ...s : | Workflow | Trigger | |---|---| | [.github/workflows/ci_python.yml](.github/workf...

(GITHUB)


[uncategorized] ~254-~254: The official name of this software platform is spelled with a capital “H”.
Context: ...yml) | For all tags including alpha | | [.github/workflows/publish_rust.yml](.github/wo...

(GITHUB)


[uncategorized] ~255-~255: The official name of this software platform is spelled with a capital “H”.
Context: ...ml) | For RC, beta and release tags | | [.github/workflows/fern-docs.yml](.github/workf...

(GITHUB)

🪛 Ruff (0.16.0)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

[error] 30-30: subprocess call: check for execution of untrusted input

(S603)


[error] 31-31: Starting a process with a partial executable path

(S607)


[warning] 39-39: Avoid specifying long messages outside the exception class

(TRY003)

🔇 Additional comments (21)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py (1)

142-145: Duplicate — Allow divergent release branches.

Line 144 retains the ancestor restriction. It rejects valid release branches that diverged after code freeze. The previous review already provides the required correction.

Source: Learnings

RELEASING.md (7)

56-60: Duplicate — Document all supported prerelease tag forms.

The section still lists only v0.1.0-rc.1. Document the supported alpha, beta, and RC forms and keep the publication behavior consistent with CI.


171-176: Duplicate — Use fast-forward-only pulls before tagging.

Replace both git pull commands with git pull --ff-only, then verify that the checked-out commit is the intended release commit before each tag command.

Also applies to: 231-235


280-285: Duplicate — Publish the GitHub Release entry.

After generating the notes, review the title and body and select Publish release. The current procedure stops before creating the GitHub Release entry.


289-307: Duplicate — Verify the current release version.

Require ${RELEASE_VERSION} for nemo-fabric-core, nemo-fabric-cli, and every listed Python distribution on both indexes. Retain the platform-wheel checks.


257-277: Duplicate — Define the Python publication process.

The document describes GitHub Actions wheel artifacts but does not define the owner or trigger that publishes the seven Python distributions to PyPI and NVIDIA PyPI. Add that process or remove these registry checks until publication is defined.

Also applies to: 289-307


194-202: 🗄️ Data Integrity & Integration

Use an explicit current release ref for evidence collection.

--current HEAD depends on the active checkout and can include unrelated commits. Pass the exact release branch, tag, or commit that matches the target package metadata.

Based on learnings, run collect_release_evidence.py with explicit previous and current release refs before drafting release notes.

Source: Learnings


1-55: LGTM!

Also applies to: 61-160, 185-193, 203-218, 220-230, 236-246, 251-256, 286-288, 308-310

.agents/skills/prepare-code-freeze/SKILL.md (5)

1-6: Duplicate — Add the SPDX Markdown header.

Keep the YAML frontmatter first, then add the repository copyright and Apache-2.0 HTML-comment header after Line 6.

As per coding guidelines, Markdown files must use the specified SPDX HTML-comment header.

Source: Coding guidelines


2-3: Duplicate — Use the full product name on first use.

Change the first NeMo Fabric reference in the description to NVIDIA NeMo Fabric. Use NeMo Fabric afterward.

As per coding guidelines, Markdown documentation must use the full product name on first use.

Source: Coding guidelines


35-38: Duplicate — Create and switch to the code-freeze PR branch.

Step 4 only gives a branch name. Add the checkout command from upstream/main before Step 5 runs just set-version. Otherwise, the version bump can modify the wrong branch.


66-72: 🗄️ Data Integrity & Integration

Make the nightly alpha configuration step explicit.

The workflow requires the PR to mention a nightly alpha branch configuration update, but it does not define how to decide whether the update is required, which configuration to change, or how to validate it. Add a concrete check or delegate the step to maintain-ci with an explicit success criterion.

Based on learnings, the code-freeze workflow must decide whether frozen-line nightly alpha tags are required.

Source: Learnings


7-20: LGTM!

Also applies to: 26-34, 39-65

AGENTS.md (1)

51-51: LGTM!

.agents/skills/README.md (1)

41-42: LGTM!

.agents/skills/contribute-docs/SKILL.md (2)

24-25: LGTM!


43-43: LGTM!

.agents/skills/maintain-ci/SKILL.md (2)

37-38: LGTM!


94-97: LGTM!

.agents/skills/maintain-packaging/SKILL.md (2)

31-32: LGTM!


92-92: LGTM!

Comment thread .agents/skills/draft-release-notes/scripts/collect_release_evidence.py Outdated
Comment thread .agents/skills/draft-release-notes/SKILL.md
Comment thread .agents/skills/draft-release-notes/SKILL.md Outdated
Comment thread .agents/skills/draft-release-notes/SKILL.md Outdated
Comment thread .agents/skills/prepare-code-freeze/SKILL.md
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md
Signed-off-by: David Gardner <dagardner@nvidia.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CONTRIBUTING.md`:
- Around line 76-80: Align the release-tag examples in the SemVer guidance with
the executable contract in justfile by using unprefixed values such as 0.1.0 and
0.1.0-rc.1, and update the prohibition accordingly. Keep the guidance consistent
with the tags accepted by the release commands.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 58c5dba0-84c0-4938-a647-b8e8b5566bd2

📥 Commits

Reviewing files that changed from the base of the PR and between c7b41dd and 4aabf97.

📒 Files selected for processing (1)
  • CONTRIBUTING.md
📜 Review details
⏰ Context from checks skipped due to timeout. (7)
  • GitHub Check: Preview docs
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Pre-commit
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.13, macos-arm64)
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • CONTRIBUTING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • CONTRIBUTING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • CONTRIBUTING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • CONTRIBUTING.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • CONTRIBUTING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

Documentation and public text should follow NVIDIA technical-writing style.

**/*.{md,mdx}: Prefer documented public APIs over internal shortcuts in documentation and examples.
Update relevant getting-started, reference, example, and adapter README documentation when corresponding examples or adapters change.
Run just docs when the documentation site changes.

For documentation-site changes, run just docs to regenerate Python and Rust API references and validate the Fern configuration.

Files:

  • CONTRIBUTING.md
**/*.{md,mdx,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current.

Files:

  • CONTRIBUTING.md
**/{README.md,*.md,*.mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

If a change affects public behavior, adapters, examples, or workspace structure, update the corresponding documentation in the same branch.

Files:

  • CONTRIBUTING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Markdown files must include the specified SPDX copyright and Apache-2.0 license header using an HTML comment.

Files:

  • CONTRIBUTING.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • CONTRIBUTING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Changes to public API surfaces must maintain parity across Rust, CLI, Python, schema, adapters, and documentation.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Production-ready harness adapters must include explicit capability, policy, packaging, lifecycle, and validation contracts.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Small bug fixes should remain reviewable and avoid widening scope.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Documentation and examples must be changed in step with public behavior.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Choose and run the appropriate validation matrix for each change.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Release versions must be bumped and synchronized across packaging surfaces.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Prepare code freezes by creating a release branch, advancing `main`, and preparing the code-freeze pull request.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Draft documentation release notes from verified repository evidence.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:23.388Z
Learning: Prepare, open, or edit pull requests with the appropriate scope and review handoff.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:28.187Z
Learning: Keep documentation and example changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:35.674Z
Learning: Preserve unrelated working-tree changes while preparing release notes.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:35.674Z
Learning: Keep complete PR-by-PR release history in GitHub Releases rather than duplicating it in the documentation release-notes page.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:42.727Z
Learning: Keep changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:40:53.968Z
Learning: For each new dependency, record the functional need, viable alternatives considered, why the selected dependency is the narrowest fit, and any unresolved licensing question.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Prompt for `<next-version>` when it is not provided; this is the version that `main` adopts after the release branch is cut.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Fetch the latest `upstream/main`, create `release/<major>.<minor>` from it, and push the branch to `upstream`; if it already exists, verify that it points to the expected commit.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Create the code-freeze PR branch from the latest `upstream/main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Run `just set-version <next-version>` to bump all release-versioned package surfaces on `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Validate the freeze with `cargo check --workspace --locked`, `just build-all`, `just wheels`, `just --fmt --check`, an old-version documentation search, and `git diff --check`; document any intentional remaining old-version references in the PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: The code-freeze PR must mention the new release branch, nightly alpha branch configuration update, version bump, documentation updates or intentional leftovers, and that release-bound PRs target the new `release/*` branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Do not create release tags during code freeze; code freeze creates only the release branch and the main PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Do not target the code-freeze PR at the release branch; target `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:00.761Z
Learning: Do not leave uncommitted user changes mixed into the code-freeze PR branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: Keep consumer skills under `skills/` separate from maintainer skills under `.agents/skills/`; do not mix consumer integration guidance with repository-internal contribution steps.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: Use branch prefixes `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`; name branches after the work and never include Linear ticket IDs or slugs.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: Use Conventional Commit PR titles in the form `<type>: <summary>`; reserve `fix` for actual product bugs, not CI, documentation, or chores.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: Use signed-off commits for pull request work with `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: PR descriptions must include what changed, why, how it was tested, and any breaking changes within the repository template format.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:08.895Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:16.897Z
Learning: Before submitting a pull request, run relevant tests, verify affected packages compile, update documentation, and rebase on the latest `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:16.897Z
Learning: All pull requests require at least one approving review, and CI must pass before merging.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:16.897Z
Learning: During review, address feedback with additional commits and do not force-push.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:16.897Z
Learning: Use commit messages in the format `type: short description`, using an approved type, with the first line under 72 characters.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-03T23:41:16.897Z
Learning: Release tags must use SemVer with a leading `v`, such as `v0.1.0` or `v0.1.0-rc.1`; unprefixed tags are prohibited.

Comment thread CONTRIBUTING.md
Signed-off-by: Anuradha Karuppiah <26330987+AnuradhaKaruppiah@users.noreply.github.com>
@AnuradhaKaruppiah

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.agents/skills/draft-release-notes/SKILL.md (1)

62-70: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Must fix — Run the required documentation checks.

When docs/about-nemo-fabric/release-notes.mdx changes, this workflow must also use contribute-docs and review-doc-style for documentation-only changes. The current step runs only just docs, so it does not apply the repository’s required documentation workflow. Add both skills and keep just docs for the docs-site build.

As per coding guidelines, “For documentation-only changes, use contribute-docs and review-doc-style; run just docs for docs-site or generated-reference changes.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/draft-release-notes/SKILL.md around lines 62 - 70, Update the
Validate section of the release-notes workflow so changes to
docs/about-nemo-fabric/release-notes.mdx invoke both contribute-docs and
review-doc-style, while retaining just docs for docs-site or generated-reference
validation.

Source: Coding guidelines

♻️ Duplicate comments (3)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py (2)

146-147: 🗄️ Data Integrity & Integration | 🟠 Major

Must fix — Use resolved commit IDs for every evidence read.

These lines resolve previous_sha and current_sha, but print_note_tree() still receives args.previous and args.current at Lines 158-159. A branch can move after ref resolution, causing the report to combine commit metadata from one revision with release-note contents from another. Pass the resolved IDs to print_note_tree().

Proposed fix
-    print_note_tree(repo, "Previous", args.previous)
-    print_note_tree(repo, "Current", args.current)
+    print_note_tree(repo, "Previous", previous_sha)
+    print_note_tree(repo, "Current", current_sha)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/draft-release-notes/scripts/collect_release_evidence.py
around lines 146 - 147, Update the print_note_tree() call to pass the resolved
previous_sha and current_sha values instead of args.previous and args.current,
ensuring all evidence reads use the same immutable commit IDs resolved by
resolve_ref().

148-148: 🎯 Functional Correctness | 🟠 Major

Must fix — Accept valid divergent release refs.

--is-ancestor rejects comparisons between release lines that diverged after a code freeze. Resolve both refs, compute their merge base, and report it without requiring previous_sha to be an ancestor of current_sha. Keep merge-base errors inside the existing try block so unrelated histories still produce an argparse error.

Based on learnings, release branches are created from upstream/main and release-bound changes target the release branch; later release branches can diverge from earlier release branches.

Proposed fix
         previous_sha = resolve_ref(repo, args.previous)
         current_sha = resolve_ref(repo, args.current)
-        run_git(repo, "merge-base", "--is-ancestor", previous_sha, current_sha)
+        merge_base = run_git(repo, "merge-base", previous_sha, current_sha).strip()
...
-    print(f"- Merge base: `{run_git(repo, 'merge-base', previous_sha, current_sha).strip()[:12]}`")
+    print(f"- Merge base: `{merge_base[:12]}`")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/draft-release-notes/scripts/collect_release_evidence.py at
line 148, Update the release-ref comparison around run_git so both previous_sha
and current_sha are resolved, then compute and report their merge base without
requiring previous_sha to be an ancestor of current_sha. Keep merge-base
failures within the existing try block so unrelated histories continue to
surface as argparse errors.

Source: Learnings

.agents/skills/draft-release-notes/SKILL.md (1)

3-6: 📐 Maintainability & Code Quality | 🟠 Major

Must fix — Add the required SPDX HTML-comment header.

The front matter declares license: Apache-2.0, but the file has no SPDX HTML comment after the closing delimiter on Line 6. Add the repository-standard copyright and Apache-2.0 header without changing the front matter.

As per coding guidelines, “Markdown files must include the specified SPDX copyright and Apache-2.0 license header using HTML comment syntax.”

Proposed fix
 license: Apache-2.0
 ---
 
+<!-- SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+SPDX-License-Identifier: Apache-2.0 -->
+
 # Draft Release Notes
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/draft-release-notes/SKILL.md around lines 3 - 6, Add the
repository-standard SPDX copyright and Apache-2.0 license HTML comment
immediately after the closing front-matter delimiter in SKILL.md, while
preserving the existing front matter unchanged.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/draft-release-notes/SKILL.md:
- Line 3: Update the front-matter description in the draft-release-notes skill
so the docs/about-nemo-fabric/release-notes.mdx path is wrapped in inline
backticks, while preserving the rest of the description unchanged.

In `@RELEASING.md`:
- Around line 188-201: Update the RC and stable release procedures before both
git tag commands to validate every release-versioned surface: Cargo.toml,
pyproject.toml, and the derived runtime metadata, ensuring each resolves to
RELEASE_VERSION. Keep the checks executable and aligned with the repository’s
current version-resolution behavior, while preserving the existing branch,
commit, and tag validations.
- Around line 203-206: Update both remote-tag checks in the release instructions
to capture the exit status from git ls-remote, continue only when Git returns
status 2 for no matching tag, and abort before creating the local tag for every
other nonzero status. Preserve the existing failure for an already-existing
remote tag.

---

Outside diff comments:
In @.agents/skills/draft-release-notes/SKILL.md:
- Around line 62-70: Update the Validate section of the release-notes workflow
so changes to docs/about-nemo-fabric/release-notes.mdx invoke both
contribute-docs and review-doc-style, while retaining just docs for docs-site or
generated-reference validation.

---

Duplicate comments:
In @.agents/skills/draft-release-notes/scripts/collect_release_evidence.py:
- Around line 146-147: Update the print_note_tree() call to pass the resolved
previous_sha and current_sha values instead of args.previous and args.current,
ensuring all evidence reads use the same immutable commit IDs resolved by
resolve_ref().
- Line 148: Update the release-ref comparison around run_git so both
previous_sha and current_sha are resolved, then compute and report their merge
base without requiring previous_sha to be an ancestor of current_sha. Keep
merge-base failures within the existing try block so unrelated histories
continue to surface as argparse errors.

In @.agents/skills/draft-release-notes/SKILL.md:
- Around line 3-6: Add the repository-standard SPDX copyright and Apache-2.0
license HTML comment immediately after the closing front-matter delimiter in
SKILL.md, while preserving the existing front matter unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 38af1281-968a-4835-909f-daac86da9891

📥 Commits

Reviewing files that changed from the base of the PR and between c7b41dd and 1b20abf.

📒 Files selected for processing (5)
  • .agents/skills/README.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
  • CONTRIBUTING.md
  • RELEASING.md
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.12, windows-amd64)
🧰 Additional context used
📓 Path-based instructions (14)
.agents/skills/**

📄 CodeRabbit inference engine (.agents/skills/README.md)

Coding agents must auto-discover the maintainer skill set from .agents/skills/.

Keep maintainer guidance for API, documentation, testing, CI, packaging, release, and PR preparation under .agents/skills/; it may reference repository internals.

Files:

  • .agents/skills/README.md
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,mdx,yml,py,rs,sh}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

Keep documentation aligned with current NeMo Fabric behavior, repository layout, entry points, commands, package names, APIs, bindings, and support claims.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on first use, typically in the title and H1; use NeMo Fabric thereafter. Use fabric alone only for the CLI tool and surround it with backticks.
Treat incorrect or stale commands, package names, paths, APIs, support claims, procedures, examples, terminology, or public behavior documentation as blocking issues.
Capitalize NVIDIA correctly and format code, commands, paths, and filenames as inline code where needed.
Use title case for technical-documentation headings.
Introduce code blocks, tables, and lists with complete lead-in sentences; ensure examples match current APIs and build commands.
Use descriptive anchor text, avoid raw URLs and generic labels such as here, and use repository-relative .mdx paths for links within docs/.
Prefer active voice, present tense, short sentences, plain English, consistent terminology, and imperative, parallel, scannable procedures.
Use after instead of once when expressing temporal sequence, and use can rather than may when describing possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
When reporting documentation-review findings, lead with Must fix, Should fix, and Nice to have categories; include file path, line reference, current problem, rationale, and a concrete rewrite or direction.

**/*.{md,mdx}: Keep release-process and release-history policy in RELEASING.md, not in user-facing documentation or a duplicate CHANGELOG.md.
Run just docs when the documentation site changes.

For documentation-heavy changes, prefer small targeted commits that separate entry-point, reference, example, and maintenance updates.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,mdx,py}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Prefer the documented public API over internal shortcuts in documentation and examples.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,mdx,yml,yaml,py,sh}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build or example commands current.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.{md,mdx,yml,yaml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Update entry-point documentation, including README.md or docs/index.yml, when examples or documentation reading paths change.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Markdown files must include the specified SPDX copyright and Apache-2.0 license header using HTML comment syntax.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • CONTRIBUTING.md
  • RELEASING.md
RELEASING.md

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Reflect public packaging changes, release tags, registry publication, and release-facing commands in RELEASING.md.

Files:

  • RELEASING.md
{RELEASING.md,.agents/skills/maintain-packaging/SKILL.md,CHANGELOG.md}

📄 CodeRabbit inference engine (AGENTS.md)

Keep release policy and end-to-end maintainer workflow in RELEASING.md, packaging implementation guidance in .agents/skills/maintain-packaging/SKILL.md, and do not add a duplicate CHANGELOG.md or move release-history policy into user-facing docs.

Files:

  • RELEASING.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:13.793Z
Learning: Maintainer skills should cover repository work including public API changes, Python tests, CI, packaging, releases, documentation, validation, and pull-request workflows.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:32.276Z
Learning: Keep changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:41.804Z
Learning: Prefer the standard library, an existing dependency, or a small local implementation when that keeps behavior clear and maintainable.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:41.804Z
Learning: When multiple dependencies satisfy a requirement, prefer a maintained OSS option with clear SPDX metadata, a smaller transitive graph, and permissive licensing such as Apache-2.0, MIT, BSD, or ISC.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:41.804Z
Learning: Inspect resolved transitive dependency graphs and licenses, not only direct package licenses.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:41.804Z
Learning: Treat `UNKNOWN`, non-SPDX/custom, proprietary or source-available, copyleft, and network-copyleft licenses as explicit review points; route them to dependency approvers with distribution and linkage context rather than silently accepting or rejecting them.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:41.804Z
Learning: Record the functional need, viable alternatives considered, why the selected dependency is the narrowest fit, and any unresolved licensing question.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: Fetch the latest `upstream/main` and create and push the release branch `release/<major>.<minor>` from it; if the branch already exists, verify its expected commit before continuing.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: Create the code-freeze PR branch from the latest `upstream/main`, and do not mix uncommitted user changes into it.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: Run `just set-version <next-version>` to bump all release-versioned package surfaces on `main`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: Run the required validation checks: `just build-all`, `just wheels`, `just --fmt --check`, the old-version documentation search, and `git diff --check`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: The code-freeze PR must target `main`, not the release branch, and must mention the new release branch, nightly alpha configuration update, version bump, documentation reference changes or intentional leftovers, and the new target for release-bound PRs.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: Do not create release tags during a code freeze; create only the release branch and the main code-freeze PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:21:50.098Z
Learning: Use `update-project-version` for version semantics, `maintain-ci` when nightly or release-branch automation changes, and `prepare-pr` before opening the PR.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:22:01.324Z
Learning: Use branch prefixes `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`; name branches after the work rather than Linear ticket IDs or slugs.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:22:01.324Z
Learning: Use Conventional Commit PR titles in the form `<type>: <summary>`; reserve `fix` for actual product bugs, not CI, documentation, or chores.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:22:01.324Z
Learning: Use signed-off commits for pull-request work with `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:22:01.324Z
Learning: When creating a pull request from the current branch, target the upstream repository rather than a fork.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:22:01.324Z
Learning: If repository-local PR guidance conflicts with generic GitHub connector or plugin guidance, follow the repository-local guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Fabric

Timestamp: 2026-08-07T17:22:01.324Z
Learning: PR descriptions must state what changed, why it changed, how it was tested, and any breaking changes while preserving the repository template format.
🔇 Additional comments (9)
CONTRIBUTING.md (1)

76-80: Must fix — Document all supported prerelease tag forms.

This section lists only v0.1.0-rc.1 as a prerelease. The repository also supports -alpha.<number> and -beta.<number> tags. Alpha tags trigger only the Python workflow. Beta and RC tags also trigger Rust and Fern publication workflows.

Add all supported forms and their workflow boundaries, or refer to the canonical guidance in RELEASING.md.

As per coding guidelines, release-tag guidance must remain aligned with current repository behavior.

Source: Coding guidelines

RELEASING.md (1)

97-119: LGTM!

Also applies to: 182-187, 208-217, 221-263, 265-285, 294-303, 340-352

.agents/skills/README.md (1)

41-42: LGTM!

.agents/skills/draft-release-notes/scripts/collect_release_evidence.py (2)

69-70: 🗄️ Data Integrity & Integration

Verify rename path handling.

The supplied snippet does not include this implementation. If the collector still parses git --name-status by keeping only the last tab-separated field, a rename from a public path to a non-public path drops the old path from the public-surface report. Preserve both endpoints, or use --no-renames --name-only.

#!/bin/bash
set -euo pipefail

file=.agents/skills/draft-release-notes/scripts/collect_release_evidence.py
sed -n '28,72p' "$file"
rg -n -C 5 -- 'diff-tree|name-status|name-only|split' "$file"

134-139: LGTM!

.agents/skills/draft-release-notes/SKILL.md (4)

8-12: LGTM!


14-30: LGTM!


32-60: LGTM!


72-73: LGTM!

Comment thread .agents/skills/draft-release-notes/SKILL.md
Comment thread RELEASING.md
Comment thread RELEASING.md
@dagardner-nv

Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot
rapids-bot Bot merged commit 4b1db2f into NVIDIA:main Aug 7, 2026
32 checks passed
@dagardner-nv
dagardner-nv deleted the david-release-process branch August 7, 2026 17:37
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.

3 participants