NVIDIA / NVIDIA/simready-foundation
[docs] Published pages silently render incomplete — undefined Sphinx roles/directives + suppressed warnings
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
- Vendor the three roles/directives into this repo (open-source the
omni.usd_profiles.sphinx.extpieces, or ship minimal fallback implementations that emit a real table/link/badge). - Add the providing package to
requirements-docs.txtso the public build matches the internal one. - 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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