Skip to content

docs: Create separate pypi.md files for each Python package - #158

Merged
rapids-bot[bot] merged 15 commits into
NVIDIA:release/0.1from
dagardner-nv:david-pypi-119-b3
Jul 30, 2026
Merged

docs: Create separate pypi.md files for each Python package#158
rapids-bot[bot] merged 15 commits into
NVIDIA:release/0.1from
dagardner-nv:david-pypi-119-b3

Conversation

@dagardner-nv

@dagardner-nv dagardner-nv commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Overview

  • README.md files remain developer focused
  • pypi.md provides brief install instructions appropriate for presentation on pypi.org
  • Merge testing.md files back into the README.md files
  • Update project.url settings in pyproject.toml files
  • Add badge bar and logo graphic to top of each pypi.md file

Where should the reviewer start?

pypi.md

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

  • Closes FABRIC-119

  • 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

  • Documentation

    • Added/updated PyPI installation pages for the runtime and multiple adapters (Claude, Codex, Hermes, Deep Agents, plus a shared adapters-common page), including component-coverage/compatibility tables and optional NeMo Relay guidance.
    • Added new “Testing” sections for Claude and Codex with mock-first instructions and opt-in live integration steps; removed outdated standalone testing guides.
    • Refreshed the main PyPI landing page layout and streamlined sections.
  • Chores

    • Updated package metadata to point readme to the new PyPI docs and standardized repository/homepage/issues links across packages.

Signed-off-by: David Gardner <dagardner@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jul 29, 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

The pull request adds per-package PyPI documentation, updates package metadata and repository links, revises the root PyPI page, and consolidates Claude and Codex testing instructions into their README files.

Changes

Documentation and packaging updates

Layer / File(s) Summary
Adapter package documentation and metadata
adapters/*/pypi.md, adapters/*/pyproject.toml
Adds adapter-specific installation pages, points package metadata to pypi.md, and standardizes repository, homepage, and issues URLs.
Runtime and repository PyPI documentation
python/pypi.md, python/pyproject.toml, adapters/common/*, pypi.md, pyproject.toml
Adds runtime and common-package PyPI pages, revises supported harness and Relay guidance, and updates repository metadata links.
Adapter testing documentation
adapters/claude/README.md, adapters/codex/README.md, adapters/*/testing.md
Adds mock, live integration, Relay, environment-variable, and artifact-contract instructions to adapter READMEs and removes the standalone Claude testing page.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • NVIDIA/NeMo-Fabric#153: Adds overlapping per-package pypi.md files and package metadata updates.
  • NVIDIA/NeMo-Fabric#155: Overlaps in adapter PyPI documentation, README testing guidance, and repository metadata changes.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Uses Conventional Commits format and clearly summarizes creating separate pypi.md files for Python packages.
Description check ✅ Passed Includes Overview, reviewer start point, related issue, and both contribution checkboxes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

@dagardner-nv
dagardner-nv marked this pull request as ready for review July 29, 2026 20:29
@dagardner-nv
dagardner-nv requested a review from a team as a code owner July 29, 2026 20:29
@github-actions

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: 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 `@adapters/claude/pypi.md`:
- Around line 26-27: Split the Relay guidance into two sentences in
adapters/claude/pypi.md lines 26-27 and adapters/codex/pypi.md lines 26-27: end
the CLI requirement after “tool,” and begin the installation-guide reference
with “Refer to” as a new sentence.

In `@adapters/claude/README.md`:
- Line 249: Update the documented real_relay_gateway command to set
FABRIC_TEST_NEMO_RELAY_COMMAND, matching the environment variable consumed by
the E2E test harness and ensuring the user-provided Relay executable is
selected.

In `@python/pypi.md`:
- Around line 23-27: Rewrite the “Is equivalent to:” introduction in
python/pypi.md as a complete sentence ending with appropriate punctuation, while
preserving the existing pip install command and its meaning.
🪄 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: 67ccc26a-1f89-4d81-a16f-df46b6718f79

📥 Commits

Reviewing files that changed from the base of the PR and between 5bcfdf6 and ee3752e.

📒 Files selected for processing (18)
  • adapters/claude/README.md
  • adapters/claude/pypi.md
  • adapters/claude/pyproject.toml
  • adapters/claude/testing.md
  • adapters/codex/README.md
  • adapters/codex/pypi.md
  • adapters/codex/pyproject.toml
  • adapters/codex/testing.md
  • adapters/common/pypi.md
  • adapters/common/pyproject.toml
  • adapters/deepagents/pypi.md
  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pypi.md
  • adapters/hermes/pyproject.toml
  • pypi.md
  • pyproject.toml
  • python/pypi.md
  • python/pyproject.toml
💤 Files with no reviewable changes (2)
  • adapters/claude/testing.md
  • adapters/codex/testing.md
📜 Review details
⏰ Context from checks skipped due to timeout. (18)
  • GitHub Check: Preview docs
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.13, macos-arm64)
  • GitHub Check: Test (Python 3.13, linux-amd64)
  • GitHub Check: Test (Python 3.11, macos-arm64)
  • GitHub Check: Test (Python 3.14, linux-amd64)
  • GitHub Check: Test (Python 3.12, macos-arm64)
  • GitHub Check: Test (Python 3.12, linux-arm64)
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.11, linux-amd64)
  • GitHub Check: Test (Python 3.14, macos-arm64)
  • GitHub Check: Test (Python 3.14, linux-arm64)
  • GitHub Check: Test (Python 3.12, linux-amd64)
  • GitHub Check: Test (Python 3.11, linux-arm64)
  • GitHub Check: Test (Python 3.13, linux-arm64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (25)
**/*

📄 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:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • adapters/common/pypi.md
  • python/pyproject.toml
  • adapters/claude/README.md
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
  • pypi.md
  • adapters/codex/README.md
**/*.{rs,toml}

📄 CodeRabbit inference engine (.agents/skills/prepare-pr/SKILL.md)

For any Rust change, run just test-rust and cargo fmt --all -- --check.

For Rust core, CLI, or shared runtime semantic changes, run Rust formatting and tests, and add Python tests when behavior is exposed through the SDK.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • python/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
**/{Cargo.toml,Cargo.lock,pyproject.toml,package.json}

📄 CodeRabbit inference engine (.agents/skills/prepare-pr/SKILL.md)

For new or updated dependencies, document the functional need, alternatives considered, and why the selected dependency is the narrowest fit.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • python/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
**/*.{toml,lock}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

If a manifest or lockfile changes, run the license-diff script against origin/main, review transitive license changes, and run the attributions-rust and attributions-python pre-commit hooks.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • python/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
**/*.{yml,yaml,toml,lock}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

For CI or packaging changes, use maintain-ci or maintain-packaging, then run recipes and checks whose behavior changed.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • python/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
{pyproject.toml,adapters/**/pyproject.toml}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

{pyproject.toml,adapters/**/pyproject.toml}: Update the literal project.version in the root setuptools project and every adapter pyproject.toml.
Keep internal exact-version requirements aligned: root nemo-fabric-* == <version> optional dependencies and each adapter's nemo-fabric-adapters-common == <version> dependency.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
**/*.{rs,py,toml}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

When editing version helpers, verify every nemo-fabric-* workspace package through Cargo metadata and reject a static version in python/pyproject.toml.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • python/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
**/*.{toml,rs,py}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Avoid blind repository-wide replacement of version-like strings; distinguish package-version references from examples and unrelated dependency versions.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • python/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
**/*.{rs,py,html,md,mdx,toml,yaml,yml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

All source files must include the specified SPDX copyright and Apache-2.0 license headers using the comment syntax appropriate to the file type.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/hermes/pyproject.toml
  • pyproject.toml
  • adapters/codex/pyproject.toml
  • adapters/common/pypi.md
  • python/pyproject.toml
  • adapters/claude/README.md
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
  • pypi.md
  • adapters/codex/README.md
adapters/*/{README.md,LICENSE,fabric-adapter.json,pyproject.toml,uv.lock,package.json,package-lock.json,src/**,tests/**}

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

Place each adapter under adapters/<name> with LICENSE -> ../../LICENSE, README.md, fabric-adapter.json, language-native package and lock files, a source entry point, and focused tests; Python adapters use the specified pyproject.toml, uv.lock, source path, and test naming convention.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • adapters/codex/pyproject.toml
  • adapters/claude/README.md
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
  • adapters/codex/README.md
adapters/*/pyproject.toml

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

Keep published Python runtime dependencies razor-thin and adapter-owned; directly imported SDK/client libraries must be declared, while external-process harness dependencies must not be installed or upgraded and test-only dependencies belong in [dependency-groups].

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pyproject.toml
  • adapters/codex/pyproject.toml
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
{adapters/**,examples/**}

⚙️ CodeRabbit configuration file

{adapters/**,examples/**}: Review adapter and example changes for command correctness, config/schema consistency, artifact handling, and compatibility with the public NeMo Fabric contracts.

Files:

  • adapters/deepagents/pyproject.toml
  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • adapters/claude/pypi.md
  • adapters/hermes/pyproject.toml
  • adapters/codex/pyproject.toml
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • adapters/common/pyproject.toml
  • adapters/claude/pyproject.toml
  • adapters/codex/README.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:

  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • pypi.md
  • adapters/codex/README.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:

  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • pypi.md
  • adapters/codex/README.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:

  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • pypi.md
  • adapters/codex/README.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

When public behavior, adapters, examples, or workspace structure changes, update the corresponding documentation, including relevant README files and SDK or API references.

**/*.{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:

  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • pypi.md
  • adapters/codex/README.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:

  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • pypi.md
  • adapters/codex/README.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:

  • adapters/hermes/pypi.md
  • adapters/deepagents/pypi.md
  • adapters/codex/pypi.md
  • python/pypi.md
  • adapters/claude/pypi.md
  • adapters/common/pypi.md
  • adapters/claude/README.md
  • pypi.md
  • adapters/codex/README.md
{Cargo.toml,python/pyproject.toml,pyproject.toml}

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

Keep Rust workspace/package metadata and Python/maturin package metadata internally consistent, including package names, versions, import paths, and module names.

Files:

  • pyproject.toml
  • python/pyproject.toml
{Cargo.toml,Cargo.lock,pyproject.toml,uv.lock,python/pyproject.toml}

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

{Cargo.toml,Cargo.lock,pyproject.toml,uv.lock,python/pyproject.toml}: Keep workspace, Python, and lockfile dependency versions aligned where required, and review both direct and transitive dependency changes from resolved lockfiles.
Inspect resolved transitive licenses, explicitly surface UNKNOWN, non-SPDX/custom, proprietary, source-available, copyleft, or network-copyleft terms, and route unresolved licensing questions to dependency approvers with distribution and linkage context.
Document the functional need, alternatives considered, rationale for the selected dependency, and any unresolved licensing question when introducing dependencies.

Files:

  • pyproject.toml
  • python/pyproject.toml
{Cargo.toml,pyproject.toml,python/pyproject.toml}

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

Before adding a dependency, prefer the standard library, an existing dependency, or a small local implementation when appropriate; otherwise select a maintained, narrow-fit dependency with clear SPDX metadata and a permissive license where possible.

Files:

  • pyproject.toml
  • python/pyproject.toml
{Cargo.toml,Cargo.lock,pyproject.toml,uv.lock}

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

After updating manifests or lockfiles, run uv run --no-project python scripts/licensing/license_diff.py --base-ref origin/main and review added packages and license changes.

Files:

  • pyproject.toml
{pyproject.toml,python/pyproject.toml,Cargo.toml,docs/package.json,.github/workflows/*.yml,justfile}

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

Reflect public packaging changes in release-facing documentation and ensure CI references the same package names and commands used by local workflows.

Files:

  • pyproject.toml
  • python/pyproject.toml
python/pyproject.toml

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Keep project.dynamic = ["version"]; do not add a literal project.version, because Maturin derives the runtime version from Cargo metadata.

Files:

  • python/pyproject.toml
adapters/*/README.md

📄 CodeRabbit inference engine (AGENTS.md)

Update adapter integration READMEs when public behavior, examples, or supported bindings change.

Document installation, supported configuration, harness-only settings, credentials, lifecycle, telemetry, artifacts, limitations, focused test commands, and canonical typed SDK or harness-native YAML examples where applicable.

Files:

  • adapters/claude/README.md
  • adapters/codex/README.md
🔇 Additional comments (15)
adapters/codex/README.md (1)

149-171: LGTM!

adapters/claude/pypi.md (1)

1-25: LGTM!

Also applies to: 28-30

adapters/claude/pyproject.toml (1)

25-25: LGTM!

Also applies to: 41-43

adapters/codex/pypi.md (1)

1-25: LGTM!

Also applies to: 28-30

adapters/codex/pyproject.toml (1)

25-25: LGTM!

Also applies to: 41-43

python/pyproject.toml (1)

22-22: LGTM!

Also applies to: 31-33

pypi.md (2)

11-12: LGTM!

Also applies to: 88-89, 115-116


39-46: 🗄️ Data Integrity & Integration

No issue in the installation matrix.

			> Likely an incorrect or invalid review comment.
pyproject.toml (1)

32-34: LGTM!

adapters/deepagents/pypi.md (1)

1-34: LGTM!

adapters/deepagents/pyproject.toml (1)

25-25: LGTM!

Also applies to: 53-55

adapters/hermes/pypi.md (1)

1-34: LGTM!

adapters/hermes/pyproject.toml (1)

25-25: LGTM!

Also applies to: 45-47

adapters/common/pypi.md (1)

1-28: LGTM!

adapters/common/pyproject.toml (1)

25-31: LGTM!

Comment thread adapters/claude/pypi.md Outdated
Comment thread adapters/claude/README.md
Comment thread python/pypi.md Outdated
Comment thread pypi.md

@AjayThorve AjayThorve left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approved w/ a minor comment, feel free to discard

@lbliii lbliii left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Style guide review (NVIDIA technical writing style)

Nice cleanup — splitting developer-facing README.md from install-scoped pypi.md is the right call, and merging the orphaned testing.md files back into the READMEs removes a real discoverability problem. The prose is solid; almost everything below is mechanical.

Please look at these first

  1. One blocking content regression. pypi.md drops the Python version support statement entirely (inline comment on lines 31-33). That is a real loss, not the duplication the rest of the PR is removing.
  2. One CodeRabbit finding is wrong. Its Major on adapters/claude/README.md:249 would silently disable the test. Details inline — please do not apply it. The other two CodeRabbit comments (the python/pypi.md fragment and the Relay comma splice) are correct and I have echoed them with suggestions.

Verified good

  • Both docs anchors resolve against docs/getting-started/install.mdx (#install-nemo-relay### Install NeMo Relay, #nemo-relay-cli#### NeMo Relay CLI).
  • assets/fabric-hero-option2.png exists on main, so the raw.githubusercontent.com references resolve.
  • Alt text is present and descriptive on all seven images.
  • Every extras table matches the actual [project.optional-dependencies] in the corresponding pyproject.toml, including the harness/full equivalence on Claude and Codex and the separate relay extras on Hermes and Deep Agents.

Remaining nits not worth inline comments

  • Double blank lines: pypi.md:47-48 and 88-89, adapters/claude/README.md:240-241, adapters/codex/README.md:147-148.
  • pypi.md:120 has the same lowercase NVIDIA/nemo-fabric URL casing flagged on python/pypi.md:35.
  • adapters/deepagents/pypi.md marks both [full] and [relay] as providing the NeMo Relay Python package. True, but full pulls nemo-relay[deepagents] while relay pulls plain nemo-relay. Probably fine to gloss at this altitude — flagging in case the distinction matters to someone debugging.

On removing Core Concepts (re: @AjayThorve's question)

Agreed with the removal, and I would go further: Core Concepts should get its own docs-site section rather than living on a PyPI install page or in README.md. There is currently no concepts section on the site — docs/about-nemo-fabric/overview.mdx is doing four jobs at once (positioning, concepts, quickstart, navigation), which is how this content ended up on a packaging page.

Suggested follow-up, not this PR: an About NeMo Fabric > Core Concepts section built from the conceptual/overview template, with child pages for configuration, adapters, run plans, artifacts, observability, and packaging.

That last one would pay for itself here. The reason each pypi.md needs its own four-column Runtime/Adapter/Harness/Relay table is that the packaging model has no canonical explanation anywhere — write it once and all seven pages link to it instead of restating it, which is the same duplication problem that motivated this removal in the first place.

Two things worth keeping in pypi.md regardless: the Python version statement (above), and the sentence noting the experimental nemo-fabric CLI ships separately from the Python package — that is a packaging caveat a PyPI reader needs at install time.

Comment thread pypi.md
Comment thread pypi.md
Comment thread pypi.md Outdated
Comment thread adapters/claude/README.md
Comment thread adapters/claude/README.md Outdated
Comment thread adapters/claude/pypi.md Outdated
Comment thread adapters/codex/pypi.md Outdated
Comment thread adapters/codex/pypi.md Outdated
Comment thread python/pypi.md Outdated
Comment thread python/pypi.md Outdated
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
dagardner-nv and others added 2 commits July 29, 2026 14:38
Signed-off-by: David Gardner <dagardner@nvidia.com>
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.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)
pypi.md (1)

12-12: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Pin the PyPI hero asset to an immutable revision.

refs/heads/main makes published PyPI pages depend on mutable branch content, so older releases can silently change or break if the asset moves. Use a release tag, commit SHA, or package-local asset instead.

🤖 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 `@pypi.md` at line 12, Update the hero image URL in pypi.md to reference an
immutable release tag or commit SHA instead of refs/heads/main, preserving the
existing asset path and display text.
🤖 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 `@pypi.md`:
- Line 12: Update the hero image URL in pypi.md to reference an immutable
release tag or commit SHA instead of refs/heads/main, preserving the existing
asset path and display text.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: c13b3190-2737-4e32-be05-8f8375d4deb8

📥 Commits

Reviewing files that changed from the base of the PR and between ee3752e and f24c44b.

📒 Files selected for processing (1)
  • pypi.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (8)
**/*.{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:

  • pypi.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:

  • pypi.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:

  • pypi.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:

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

📄 CodeRabbit inference engine (CONTRIBUTING.md)

When public behavior, adapters, examples, or workspace structure changes, update the corresponding documentation, including relevant README files and SDK or API references.

**/*.{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:

  • pypi.md
**/*.{rs,py,html,md,mdx,toml,yaml,yml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

All source files must include the specified SPDX copyright and Apache-2.0 license headers using the comment syntax appropriate to the file type.

Files:

  • pypi.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:

  • pypi.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:

  • pypi.md
🔇 Additional comments (1)
pypi.md (1)

41-42: LGTM!

Also applies to: 90-91, 115-117

Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
dagardner-nv and others added 3 commits July 29, 2026 14:43
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
Co-authored-by: Lawrence Lane <25370251+lbliii@users.noreply.github.com>
Signed-off-by: David Gardner <96306125+dagardner-nv@users.noreply.github.com>
…Relay

Signed-off-by: David Gardner <dagardner@nvidia.com>
Signed-off-by: David Gardner <dagardner@nvidia.com>
@Salonijain27 Salonijain27 added this to the 0.1 milestone Jul 29, 2026
Comment thread pypi.md Outdated
Signed-off-by: David Gardner <dagardner@nvidia.com>
@dagardner-nv

Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot

rapids-bot Bot commented Jul 30, 2026

Copy link
Copy Markdown

Failed to merge PR using squash strategy.

@dagardner-nv

Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot

rapids-bot Bot commented Jul 30, 2026

Copy link
Copy Markdown

Failed to merge PR using squash strategy.

…d-pypi-119-b3

Signed-off-by: David Gardner <dagardner@nvidia.com>
@rapids-bot
rapids-bot Bot merged commit c310e9c into NVIDIA:release/0.1 Jul 30, 2026
6 checks passed
@dagardner-nv
dagardner-nv deleted the david-pypi-119-b3 branch July 30, 2026 16:32
@coderabbitai coderabbitai Bot mentioned this pull request Jul 31, 2026
2 tasks
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.

5 participants