NVIDIA / NVIDIA/simready-foundation

[docs] Published pages silently render incomplete — undefined Sphinx roles/directives + suppressed warnings

Open
#7 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
88
Forks
18
PR merge metrics
No merged PRs in 30d

Description

Summary

The published documentation silently renders with missing content. Several custom MyST roles/directives the pages depend on are not defined in this repository, and the Sphinx config suppresses the warnings that would surface this — so the build is green while the live site drops requirement tables, validator links, compatibility badges, and tag styling.

Evidence (live site)

On https://nvidia.github.io/simready-foundation/latest/capabilities/core/atomic_asset/requirements.html the requirements table is absent — the page ends at "Detailed Requirements" with no requirement rows.

On https://nvidia.github.io/simready-foundation/latest/capabilities/physics_bodies/physics_graspable/requirements/graspable-vector-line.html the metadata table renders empty Validator / Compatibility / Tags fields:

Code: GSP.001
Validator: (empty)
Compatibility: (empty)
Tags: (empty)

(The USD code examples on that page do render — those use standard fenced code blocks.)

Cause

Three custom roles/directives are referenced throughout the docs but have no implementation in this repo:

Token Uses in nv_core/sr_specs/docs
{compatibility} 133
{oav-validator-latest-link} 54
{requirements-table} 17

They are provided only by an optional, internally-imported extension — nv_core/sr_specs/docs/conf.py:45-47:

try:
    import omni.usd_profiles.sphinx.ext  # noqa: F401
    extensions.append("omni.usd_profiles.sphinx.ext")
except ImportError:
    ...

requirements-docs.txt does not install that package, so the public GitHub Pages build runs without it. And the warnings that would catch this are suppressed — conf.py:51-54:

suppress_warnings = [
    "myst.role_unknown",
    "myst.directive_unknown",
]

Net effect: every requirement table (the actual spec content), every validator link, every compatibility badge, and tag styling is dropped from the published site, with no build signal.

Why it matters

This is a large part of why the docs read as incomplete: the pages that are supposed to enumerate the specifications render empty. A reader cannot see the requirement IDs, validator links, or compatibility for any capability on the public site.

Suggested resolution

  1. Vendor the three roles/directives into this repo (open-source the omni.usd_profiles.sphinx.ext pieces, or ship minimal fallback implementations that emit a real table/link/badge).
  2. Add the providing package to requirements-docs.txt so the public build matches the internal one.
  3. Stop suppressing myst.role_unknown / myst.directive_unknown, and run the docs build with -W (warnings-as-errors) in CI so an undefined role fails the build instead of silently emptying a page.

Verified on main @ 2026.04.1, 2026-05-28.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with nv_core/sr_specs/docs/conf.py and requirements-docs.txt, then run the documentation build to reproduce the missing roles and suppressed warnings. Trace the three undefined tokens and the public build configuration before choosing an implementation. Done means published pages contain the requirement tables, validator links, compatibility badges, and tag styling, while unknown roles fail the CI build.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, ci-cd, documentation
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.