Skip to content

Port RAPIDS docs from Jekyll to NVIDIA Sphinx theme#807

Open
bdice wants to merge 40 commits into
rapidsai:mainfrom
bdice:sphinx-port
Open

Port RAPIDS docs from Jekyll to NVIDIA Sphinx theme#807
bdice wants to merge 40 commits into
rapidsai:mainfrom
bdice:sphinx-port

Conversation

@bdice

@bdice bdice commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • port the RAPIDS documentation portal from Jekyll to Sphinx, MyST, and the NVIDIA Sphinx theme
  • preserve the published routes, notices, release and platform data, installation selector, visualizations, redirects, RSS feed, and production telemetry
  • adapt the S3 assembly and post-processing pipeline to the locked uv environment and add Netlify previews for copied pull request branches

Validation

  • pre-commit run --all-files
  • pytest (3 tests passed)
  • strict Sphinx dirhtml build with warnings treated as errors (129 sources)
  • rendered-site validation (132 HTML files and 94 notices)
  • route and heading comparison against the Jekyll baseline (128 routes)

The S3-backed full-site assembly and Netlify preview run in the upstream deploy workflow after the copy-PR bot creates the pull-request/<number> branch.

Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice bdice changed the title Port RAPIDS docs from Jekyll to Sphinx [Proof of Concept] Port RAPIDS docs from Jekyll to Sphinx Jul 6, 2026
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@netlify

netlify Bot commented Jul 6, 2026

Copy link
Copy Markdown

Deploy Preview for docs-rapids-ai ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit ccb5a03
🔍 Latest deploy log https://app.netlify.com/projects/docs-rapids-ai/deploys/6a5eca96576edc0008b1c183
😎 Deploy Preview https://deploy-preview-807--docs-rapids-ai.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Signed-off-by: Bradley Dice <bdice@bradleydice.com>
bdice added 3 commits July 6, 2026 20:25
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Restore development support and minimize migration diff
@copy-pr-bot

copy-pr-bot Bot commented Jul 7, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice

bdice commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 0531a34

bdice added 2 commits July 7, 2026 01:44
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice

bdice commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test ad33396

Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice

bdice commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 61cb205

bdice added 2 commits July 7, 2026 01:48
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice

bdice commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 32fa1c9

bdice added 3 commits July 7, 2026 01:53
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Keep portal content at repository root
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice

bdice commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 6166ae2

Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@bdice

bdice commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test c1e649e

jameslamb and others added 4 commits July 12, 2026 10:25
https://github.com/rapidsai/cuxfilter is now archived and the 26.06 release is done. The RSN about archiving `cuxfilter` can be marked complete.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: rapidsai#808
(cherry picked from commit ff3968c)
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Contributes to rapidsai/build-planning#291

* moves `cuxfilter` to the "inactive projects' section of the API docs
* removes references encouraging its use

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: rapidsai#809
(cherry picked from commit 922b693)
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
## Summary

- Removes TensorFlow from the install selector's **Additional Packages** options and deletes obsolete compatibility notes.
- Allows PyTorch to be selected with CUDA 13. I validated that current official PyTorch wheels and conda-forge packages support CUDA 13.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: rapidsai#811
(cherry picked from commit 792777e)
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
Sync changes from the Jekyll site
Signed-off-by: Bradley Dice <bdice@bradleydice.com>
@mmccarty

Copy link
Copy Markdown
Contributor

Thanks for putting this migration together. I checked out the branch and ran the local validation successfully:

  • make check
  • Ruff lint and formatting
  • 10 pytest tests
  • strict Sphinx build across 129 sources
  • site validation across 132 HTML files and 94 notices

I found two link regressions that the current validator does not catch:

  1. The release links on the Platform Support page point to nonexistent anchors.

    extensions/rapids_docs/platform_support.py generates targets such as #rapids-2606, but MyST generates IDs such as #rapids-26-06 and #rapids-26-08-nightly. As a result, all eight release jump links at the top of the page are broken.

  2. Three relative Markdown links are emitted as .md URLs.

    With myst_all_links_external = True, these links are preserved verbatim instead of being converted to their published routes:

    • resources/merge-barriers.md./recently-updated.md
    • resources/recently-updated.md./merge-barriers.md
    • resources/reproducing-ci.md./github-actions.md

    In the generated site, these resolve below the current pretty-URL directory and return 404s. Using root-relative published URLs such as /resources/recently-updated/ would fix them.

One CI follow-up: the current head (6d8ffae) has not run the S3-backed copied-branch workflow. The latest run I found was against c1e649e, where full-site assembly failed because Liquid syntax remained in three imported files. The current validator may address that, but it would be good to trigger /ok to test 6d8ffae so the latest full-site assembly is verified before merging.

Signed-off-by: Mike McCarty <mmccarty@nvidia.com>
@mmccarty

Copy link
Copy Markdown
Contributor

The TOC on the page and in the right nav menu seems redundant with the new theme. If others agree, I can remove the hard coded TOC in install/index.md

Screenshot 2026-07-13 at 12 44 43 PM

@jameslamb jameslamb left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This PR is way too large to review thoroughly and I know it was mostly AI-generated, so I'm treating the PR as a request like "trust me". I do trust you and that you've done some local testing, so I'm clicking "Approve" so you have what you minimally need to merge this. I support the overall intent (switching from a Jekyll site to a Sphinx one to make using the NVIDIA Sphinx theme easier).

More notes below.


Reviewing the intent

If I understand it, the reason for this goes like this:

  1. we want to (have to?) move to the NVIDIA theme
  2. that is published as a Sphinx theme via a Python package, so it's convenient (required?) to switch from a Jekyll site to one built with Sphinx

If I'm right about that, then totally supportive of making the switch in general. It'd help maintainability too... there are many more folks in RAPIDS who are knowledgeable about Python / Sphinx than there are who can help with Ruby / Jekyll.

Reviewing the code

I did a review pass and noted some things that I think should be addressed before merging, but based on clicking around the preview it does look like the site content and look and feel are working. API docs still do not work in the preview (#680) so we'll have to merge this and do a real deployment to be sure the changes to the post-processing are working, but your local testing makes me confident that this is at least close.

IMO this diff didn't have to be this large.

Any of these would have been quick approvals, could have been merged independently, and would have shrunk the diff here:

  • deleting unused files like _drafts and _includes/gpu-labels-table*
  • moving _notices/* to notices/
  • adding pyproject.toml with ruff rules and reformatting existing files based on those rules
  • updates to copyright dates on otherwise-unchanged files
  • minor formatting changes like removing the unnecessary ** in section headers in install/index.md

But we're here now and I've reviewed them, so fine to just leave them all in.

Comment thread pyproject.toml Outdated
Comment thread pyproject.toml
"pre-commit>=4.2.0",
"pytest>=8.4.0",
"ruff>=0.12.0",
]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
]

As far as I can tell, this dev group has no purpose. I don't see it used anywhere. Let's remove it and the need to ever think about updating it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I checked on this. uv sync --locked installs the default dev group unless --no-dev is supplied. This is used by PR & deployment workflows.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

huh ok.

Comment thread pyproject.toml Outdated
Comment thread README.md Outdated
Comment on lines +49 to +50
- Portal content, data, includes, and assets retain their established paths at
the repository root.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
- Portal content, data, includes, and assets retain their established paths at
the repository root.

This is the type of thing an LLM likes to write at the end of making a change for you but has no place in these docs. If I just git clone'd this repo to work on it, what does it even mean to me that these directories "retain their established paths"?

Remove this, and please do a pass of review yourself for similar LLM artifacts, if you haven't already.

Comment thread README.md Outdated
- Portal content, data, includes, and assets retain their established paths at
the repository root.
- `sphinx/` contains the Sphinx configuration, templates, and theme overrides.
- `extensions/` contains the portal's data-rendering and publication extension.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
- `extensions/` contains the portal's data-rendering and publication extension.
- `extensions/` contain custom code extending Sphinx in this-project-specific ways

This statement as written doesn't really make sense to me (e.g. what is the "publication" extension? We're using the third-party Netlify service to publish.) and anyway is likely to become outdated as code in extensions/ changes. Recommending a more future-proof description here.

Comment thread ci/customization/customize_doc.py
Comment thread ci/post-process.sh
Comment thread scripts/migrate_from_jekyll.py Outdated
Comment thread sphinx/conf.py Outdated
Comment thread .gitignore
@bdice

bdice commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

From discussion with the team today, I will try to make the install selector have a flexible / flexbox layout, so it fits on smaller screens better. This can be a follow-up.

@ncclementi

Copy link
Copy Markdown
Contributor

From discussion with the team today, I will try to make the install selector have a flexible / flexbox layout, so it fits on smaller screens better. This can be a follow-up.

I think the flexible is good, but we have some missed used real state on the laft nav. This space seems to be fixed, so in smaller screens this affects the flex box of the installer.

Screenshot 2026-07-21 at 10 45 21 AM

@jayavenkatesh19

Copy link
Copy Markdown

Also looking at the ReadTheDocs build, the link in the left navigation pane to the Deployment Docs seems to have disappeared.

Here's the preview build:
image

And here's the current docs homepage:
image

The Deployment Guides link needs to be added back to the navigation pane

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking feature request New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants