Skip to content

Docs #106/15: ADR-0038 — Record pivot from MkDocs to Sphinx + PyData Sphinx Theme #255

Description

@DEVunderdog

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.ymldocs/conf.py, mkdocstrings ::: directives → Sphinx autoclass/autofunction directives, mkdocs servesphinx-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

  • docs/adr/0038-sphinx-pydata-theme-replaces-mkdocs.md exists with decision, rationale, and scope of change
  • ADR-0034 has a "Superseded by ADR-0038 (toolchain only)" note at the top
  • ADR-0038 explicitly states numpy-style docstring format and scope rules are unchanged

Blocked by

None — can start immediately

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions