Parent
#106
What to build
Write docs/adr/0038-sphinx-pydata-theme-replaces-mkdocs.md recording the decision to replace MkDocs 1.x + mkdocstrings with Sphinx + PyData Sphinx Theme + sphinx.ext.napoleon.
The ADR must capture:
- Decision: migrate the docs build toolchain from MkDocs + mkdocstrings to Sphinx + PyData Sphinx Theme + MyST-Parser +
sphinx.ext.napoleon
- Rationale: MkDocs 1.x is abandoned upstream; MkDocs 2.0 removes the plugin system entirely, breaking mkdocstrings and mkdocs-material with no migration path; Sphinx is the Python ecosystem standard governed by NumFOCUS and used by NumPy, pandas, and scikit-learn — the same ecosystem DataForgeML targets
- What stays the same: numpy-style docstring format and scope rules from ADR-0034 remain fully in force —
sphinx.ext.napoleon reads numpy-style docstrings natively, so no docstring rewrites are required
- What changes: build toolchain only —
mkdocs.yml → docs/conf.py, mkdocstrings ::: directives → Sphinx autoclass/autofunction directives, mkdocs serve → sphinx-autobuild
Also add a one-line "Superseded by ADR-0038 (toolchain only — docstring rules unchanged)" note to docs/adr/0034-documentation-strategy-docstrings-mkdocs.md.
Acceptance criteria
Blocked by
None — can start immediately
Parent
#106
What to build
Write
docs/adr/0038-sphinx-pydata-theme-replaces-mkdocs.mdrecording the decision to replace MkDocs 1.x + mkdocstrings with Sphinx + PyData Sphinx Theme +sphinx.ext.napoleon.The ADR must capture:
sphinx.ext.napoleonsphinx.ext.napoleonreads numpy-style docstrings natively, so no docstring rewrites are requiredmkdocs.yml→docs/conf.py,mkdocstrings :::directives → Sphinxautoclass/autofunctiondirectives,mkdocs serve→sphinx-autobuildAlso add a one-line "Superseded by ADR-0038 (toolchain only — docstring rules unchanged)" note to
docs/adr/0034-documentation-strategy-docstrings-mkdocs.md.Acceptance criteria
docs/adr/0038-sphinx-pydata-theme-replaces-mkdocs.mdexists with decision, rationale, and scope of changeBlocked by
None — can start immediately