Skip to content

docs: migrate documentation from Sphinx to Fern#1062

Open
lbliii wants to merge 2 commits into
mainfrom
lbliii/fern-docs-on-main
Open

docs: migrate documentation from Sphinx to Fern#1062
lbliii wants to merge 2 commits into
mainfrom
lbliii/fern-docs-on-main

Conversation

@lbliii

@lbliii lbliii commented Jun 4, 2026

Copy link
Copy Markdown

Summary

Migrates the docs/ Sphinx/MyST documentation to Fern MDX, targeting the current main (0.3.0) history. This is a fresh re-point of #1032 — that PR was built on main-legacy, whose docs document the old nemo-evaluator-launcher CLI; importing it would pollute main with stale content. Instead, this PR re-runs the migration against main's current docs (the new nel CLI) so the content matches the shipping product.

Generated with the convert-to-fern toolkit.

What changed

  • Fern scaffolding under docs/fern/: fern.config.json (pinned to fern-api 5.29.0, matching NeMo-Curator), docs.yml with the NVIDIA global-theme, MDX components, and an explicit-slug nightly navigation.
  • All 29 doc pages converted to MDX at docs/<section>/*.mdx, with frontmatter and version-agnostic internal links.
  • Fern CI workflows (fern-docs-ci, fern-docs-preview-build, fern-docs-preview-comment, publish-fern-docs), rooted at docs/fern.
  • Sphinx removed: conf.py, requirements.txt, versions1.json, broken_links_false_positives.json, the release-docs / release-nightly-docs workflows, the Sphinx docs-version bump in release-freeze, the Sphinx [docs] extra, and the Makefile sphinx targets (now fern check / fern docs dev).

Validation

Both pass locally with the CI-pinned fern-api@5.29.0:

  • fern checkAll checks passed
  • fern docs broken-links✓ All checks passed (every internal link resolves)
  • Toolkit checks clean: no tag mismatches, no unconverted MyST/RST artifacts.

Note: global-theme: nvidia resolves against the Fern registry, so it validates in CI (which has DOCS_FERN_TOKEN) and for any local run authenticated to the nvidia Fern org.

Supersedes #1032.

🤖 Generated with Claude Code

Convert the Sphinx/MyST docs under docs/ to Fern MDX using the
convert-to-fern toolkit and cut the docs toolchain over to Fern.

- Add docs/fern/ scaffolding: fern.config.json (pinned to fern-api
  5.29.0), docs.yml with the NVIDIA global theme, MDX components, and
  an explicit-slug nightly navigation.
- Convert all 29 pages to MDX at docs/<section>/*.mdx with frontmatter
  and version-agnostic internal links (fern check + broken-links clean).
- Add Fern CI workflows (check, preview build/comment, publish) rooted
  at docs/fern.
- Remove Sphinx infrastructure: conf.py, requirements.txt,
  versions1.json, broken_links_false_positives.json, the release-docs
  and release-nightly-docs workflows, and the Sphinx docs-version bump
  in release-freeze.
- Point Makefile docs targets at Fern and drop the Sphinx [docs] extra.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (56)
  • .github/config/requirements.txt is excluded by none and included by none
  • .github/workflows/fern-docs-ci.yml is excluded by none and included by none
  • .github/workflows/fern-docs-preview-build.yml is excluded by none and included by none
  • .github/workflows/fern-docs-preview-comment.yml is excluded by none and included by none
  • .github/workflows/publish-fern-docs.yml is excluded by none and included by none
  • .github/workflows/release-docs.yml is excluded by none and included by none
  • .github/workflows/release-freeze.yml is excluded by none and included by none
  • .github/workflows/release-nightly-docs.yml is excluded by none and included by none
  • .github/workflows/release.yaml is excluded by none and included by none
  • Makefile is excluded by none and included by none
  • docs/api/index.mdx is excluded by !docs/** and included by none
  • docs/architecture/aws-ecs-sandbox.mdx is excluded by !docs/** and included by none
  • docs/architecture/index.mdx is excluded by !docs/** and included by none
  • docs/architecture/sandbox.mdx is excluded by !docs/** and included by none
  • docs/broken_links_false_positives.json is excluded by !docs/** and included by none
  • docs/conf.py is excluded by !docs/** and included by none
  • docs/deployment-patterns.mdx is excluded by !docs/** and included by none
  • docs/deployment/ci-regression.mdx is excluded by !docs/** and included by none
  • docs/deployment/docker.mdx is excluded by !docs/** and included by none
  • docs/deployment/index.mdx is excluded by !docs/** and included by none
  • docs/deployment/kubernetes.mdx is excluded by !docs/** and included by none
  • docs/deployment/local.mdx is excluded by !docs/** and included by none
  • docs/deployment/ray.mdx is excluded by !docs/** and included by none
  • docs/deployment/slurm.mdx is excluded by !docs/** and included by none
  • docs/evaluation/benchmarks.mdx is excluded by !docs/** and included by none
  • docs/evaluation/scoring.mdx is excluded by !docs/** and included by none
  • docs/fern/components/Authors.tsx is excluded by !docs/** and included by none
  • docs/fern/components/BadgeLinks.tsx is excluded by !docs/** and included by none
  • docs/fern/components/CustomCard.tsx is excluded by !docs/** and included by none
  • docs/fern/components/MetricsTable.tsx is excluded by !docs/** and included by none
  • docs/fern/components/NotebookViewer.tsx is excluded by !docs/** and included by none
  • docs/fern/components/Tag.tsx is excluded by !docs/** and included by none
  • docs/fern/components/TrajectoryViewer.tsx is excluded by !docs/** and included by none
  • docs/fern/docs.yml is excluded by !docs/** and included by none
  • docs/fern/fern.config.json is excluded by !docs/** and included by none
  • docs/fern/versions/nightly.yml is excluded by !docs/** and included by none
  • docs/get-started/install.mdx is excluded by !docs/** and included by none
  • docs/get-started/quickstart.mdx is excluded by !docs/** and included by none
  • docs/index.md is excluded by !docs/** and included by none
  • docs/index.mdx is excluded by !docs/** and included by none
  • docs/requirements.txt is excluded by !docs/** and included by none
  • docs/result-format.mdx is excluded by !docs/** and included by none
  • docs/tutorials/adapters.mdx is excluded by !docs/** and included by none
  • docs/tutorials/byob.mdx is excluded by !docs/** and included by none
  • docs/tutorials/compare.mdx is excluded by !docs/** and included by none
  • docs/tutorials/config-composition.mdx is excluded by !docs/** and included by none
  • docs/tutorials/distributed-eval.mdx is excluded by !docs/** and included by none
  • docs/tutorials/gym-integration.mdx is excluded by !docs/** and included by none
  • docs/tutorials/index.md is excluded by !docs/** and included by none
  • docs/tutorials/index.mdx is excluded by !docs/** and included by none
  • docs/tutorials/legacy-containers.mdx is excluded by !docs/** and included by none
  • docs/tutorials/quality-gate.mdx is excluded by !docs/** and included by none
  • docs/tutorials/skills-integration.mdx is excluded by !docs/** and included by none
  • docs/tutorials/walkthrough.mdx is excluded by !docs/** and included by none
  • docs/versions1.json is excluded by !docs/** and included by none
  • pyproject.toml is excluded by none and included by none

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 9a123a83-bb16-4b3a-95df-cc2d20be66da

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch lbliii/fern-docs-on-main

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

The release workflow built Sphinx docs via .github/config/requirements.txt,
which fails now that docs/conf.py is removed. Fern docs are published by
publish-fern-docs.yml, so disable publish-docs in the release library call
and drop the unused Sphinx requirements file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
@codecov

codecov Bot commented Jun 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@lbliii lbliii self-assigned this Jun 5, 2026
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.

1 participant