Skip to content

chore: Adding in standard OSS NVIDIA Sphinx install#139

Merged
dagardner-nv merged 9 commits intoNVIDIA-AI-Blueprints:developfrom
aschilling-nv:afs/docs-support
Mar 17, 2026
Merged

chore: Adding in standard OSS NVIDIA Sphinx install#139
dagardner-nv merged 9 commits intoNVIDIA-AI-Blueprints:developfrom
aschilling-nv:afs/docs-support

Conversation

@aschilling-nv
Copy link
Copy Markdown
Contributor

Summary

  • Migrates the Sphinx documentation configuration from a conditional fallback setup to the
    standard NVIDIA OSS Sphinx theme (nvidia_sphinx_theme) as the required theme
  • Expands docs/source/conf.py with additional extensions (sphinx.ext.viewcode,
    sphinx.ext.napoleon, sphinx_design), richer MyST parser options (math, task lists,
    definition lists, etc.), and Mermaid diagram configuration
  • Adds project.json and versions1.json to support the NVIDIA docs version switcher
    widget and public docs features
  • Adds pyproject.toml doc dependencies: nvidia-sphinx-theme, sphinx-autobuild,
    sphinx-design, and sphinxcontrib-mermaid
  • Extends linkcheck_ignore to skip GitHub and raw GitHub URLs during link checks

Signed-off-by: Andrew Schilling <aschilling@nvidia.com>
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 12, 2026

Greptile Summary

This PR migrates the Sphinx documentation setup to the standard NVIDIA OSS Sphinx theme (nvidia_sphinx_theme), expands the MyST parser and extension configuration, adds version-switcher support files (project.json, versions1.json), and fixes several broken relative links in the docs.

Key changes:

  • html_theme is now hardcoded to nvidia_sphinx_theme — the conditional sphinx_rtd_theme fallback is removed
  • New extensions added: sphinx.ext.viewcode, sphinx.ext.napoleon, sphinx_design
  • Version-switcher wired up via html_theme_options["switcher"] with versions1.json
  • Anchor links corrected in deep-researcher.md and troubleshooting.md for em-dash headings
  • Broken relative links to deploy/helm READMEs replaced with plain-text references in kubernetes.md

Outstanding concerns (some already discussed in previous threads):

  • sphinx-rtd-theme is still listed as a docs dependency in pyproject.toml even though the fallback it served has been removed — it is now unused
  • sphinx.ext.viewcode and sphinx.ext.napoleon are registered but will have no effect without sphinx.ext.autodoc also being enabled
  • json_url: "../versions1.json" resolves one level above the versioned deploy path, meaning the version-switcher widget will 404 in production (discussed in prior thread)
  • sphinxcontrib-mermaid is installed but conf.py still registers sphinxmermaid; mermaid_version = "latest" only applies to the former (discussed in prior thread)

Confidence Score: 3/5

  • Safe to merge as a documentation infrastructure improvement, but two previously-flagged issues (version-switcher json_url path and sphinxcontrib-mermaid not registered) should be resolved before the docs are published to production.
  • The content-level fixes (anchor links, broken relative links, toctree entries) are all correct. The configuration changes are largely good, but several issues remain unaddressed from prior review threads — most notably the ../versions1.json URL that will 404 in a real deployment, and two dead dependencies (sphinx-rtd-theme, sphinxcontrib-mermaid) left in place. None of these block a local docs build, but they will cause visible failures once published.
  • docs/source/conf.py and pyproject.toml need the most attention for the unresolved dependency and version-switcher URL issues.

Important Files Changed

Filename Overview
docs/source/conf.py Major rework of Sphinx configuration — migrates to nvidia_sphinx_theme, adds extensions, MyST options, and version-switcher support. Several issues flagged in review threads remain unresolved: the json_url: "../versions1.json" path will 404 in production, sphinxcontrib-mermaid is installed but not registered as an extension, sphinx.ext.viewcode/napoleon have no effect without autodoc, and mermaid_version = "latest" targets the unregistered extension.
pyproject.toml Adds nvidia-sphinx-theme, sphinx-autobuild, sphinx-design, and sphinxcontrib-mermaid to docs dependencies. sphinx-rtd-theme is now a dead dependency since the fallback was removed from conf.py. sphinxcontrib-mermaid is installed but the active extension in conf.py remains sphinxmermaid.
docs/source/versions1.json New file for the version switcher widget, listing version 1.2.1 pointing to https://docs.nvidia.com/ai-blueprint/1.2.1/. Correct content, but the json_url path in conf.py ("../versions1.json") will resolve to a different URL than where this file is served from when deployed.
docs/source/project.json New file providing project metadata for the NVIDIA docs public features widget. Content looks correct.
docs/source/index.md Adds mcp-tools.md and kubernetes.md entries to the toctree. Both files exist in the repository, so no broken references.
docs/source/deployment/kubernetes.md Replaces broken relative links to deploy/helm/README.md (which would escape the docs tree) with inline text references to the source repository paths. Correct fix for docs-site link errors.
docs/source/architecture/agents/deep-researcher.md Updates anchor link from #nemotron-super-build-endpoint-availability to #nemotron-super--build-endpoint-availability, matching the auto-generated anchor for a heading containing an em dash. Consistent with the parallel fix in troubleshooting.md.
docs/source/resources/troubleshooting.md Same anchor link fix as deep-researcher.md — corrects #nemotron-super-build-endpoint-availability to #nemotron-super--build-endpoint-availability for the em-dash heading. Consistent change.
uv.lock Lock file updated to include new docs dependencies: accessible-pygments, nvidia-sphinx-theme, pydata-sphinx-theme, sphinx-autobuild, sphinx-design, and sphinxcontrib-mermaid. Hashes and sources look standard.

Sequence Diagram

sequenceDiagram
    participant Browser
    participant DocsServer as docs.nvidia.com/ai-blueprint/1.2.1/
    participant VersionJSON as versions1.json location

    Browser->>DocsServer: Load page
    DocsServer-->>Browser: HTML + PyData theme JS
    Browser->>VersionJSON: GET ../versions1.json<br/>(resolves to docs.nvidia.com/ai-blueprint/versions1.json)
    note over VersionJSON: ⚠️ File is actually served at<br/>docs.nvidia.com/ai-blueprint/1.2.1/versions1.json<br/>(placed there by html_extra_path)
    VersionJSON-->>Browser: 404 Not Found
    Browser->>Browser: Version switcher widget fails to populate
Loading

Last reviewed commit: 8f0756f

Signed-off-by: Andrew Schilling <aschilling@nvidia.com>
@AjayThorve
Copy link
Copy Markdown
Collaborator

@aschilling-nv can you resolve lint issues in ci

Signed-off-by: Andrew Schilling <aschilling@nvidia.com>
aschilling-nv and others added 2 commits March 12, 2026 16:07
Signed-off-by: Andrew Schilling <aschilling@nvidia.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
@aschilling-nv
Copy link
Copy Markdown
Contributor Author

@aschilling-nv can you resolve lint issues in ci

Done!

…s/docs-support

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>
Copy link
Copy Markdown
Collaborator

@raykallen raykallen left a comment

Choose a reason for hiding this comment

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

lgtm

@dagardner-nv
Copy link
Copy Markdown
Collaborator

/merge

@dagardner-nv dagardner-nv merged commit 24e8689 into NVIDIA-AI-Blueprints:develop Mar 17, 2026
4 checks passed
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.

4 participants