feat(docs): versioned Sphinx docs with sphinx-multiversion#89
Open
rederik76 wants to merge 5 commits into
Open
feat(docs): versioned Sphinx docs with sphinx-multiversion#89rederik76 wants to merge 5 commits into
rederik76 wants to merge 5 commits into
Conversation
- Add sphinx-multiversion to requirements-docs.txt; fix sphinx-autoapi package name (was gitsphinx-autoapi — typo) - docs/conf.py: read release from VERSION file instead of hard-coded string; add sphinx_multiversion extension with SMV_TAG_WHITELIST env-var-driven tag filter; inject versions.html into RTD sidebar via html_sidebars - docs/select_versions.py: CI helper that selects tags to build — latest patch of each major version + last 5 minor series; writes SMV_TAG_WHITELIST to $GITHUB_ENV - docs/_templates/versions.html: RTD-styled version dropdown template using sphinx-multiversion's versions / current_version context - main-docs.yml: trigger on tag pushes; fetch full history and tags; run select_versions.py before build; replace make html with sphinx-multiversion; add root index.html redirect to main/
1 task
- drop sphinx-multiversion integration and Sphinx extension wiring - add shared local/CI versioned docs builder (build_versioned_docs.sh + build_versioned_docs.py) with clean rebuild + worktree pruning - keep version selection rules via select_versions.py and output descending releases - publish main as current, generate versions.json, and update sidebar switcher/template to use explicit index.html links - update docs workflow to use the new script path and remove SMV-specific dependencies/patching - add docs README guidance for make targets and local build/testing workflow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a new script-driven versioned docs build path after we found that a direct
sphinx-multiversionapproach did not work reliably in our environment.Rather than depending on
sphinx-multiversion, this change provides an explicit local/CI flow that preserves the versioning behavior we wanted (version selector, curated release set, preview support, GitHub Pages publish shape).What changed
docs/build_versioned_docs.shdocs/build_versioned_docs.pydocs/select_versions.py:mainis published ascurrentversions.jsondrives sidebar optionsindex.htmldirectly (avoids directory listing behavior in local file browsing).github/workflows/main-docs.yml) to use the script-based version build path.docs/Makefilewith:html-multiversionhtml-multiversion-previewdocs/README.mddocumenting docs commands, local workflow, and versioning behavior..gitignorefor local docs virtualenv patterns.Context
We attempted a
sphinx-multiversionimplementation first, but it proved brittle for our setup (compatibility/path behavior issues). This PR captures the stable alternative and keeps the intended docs-versioning UX.Test plan
make -C docs htmlmake -C docs html-multiversiondocs/build/html/index.htmlredirects tocurrent/index.htmlcurrentfirst<version>/index.htmlwithout directory listing behaviorbash docs/build_versioned_docs.sh