Skip to content

docs: migrate site to Zensical, fix broken examples, document all materializers - #54

Open
jvanbuel wants to merge 1 commit into
mainfrom
docs/zensical-migration
Open

docs: migrate site to Zensical, fix broken examples, document all materializers#54
jvanbuel wants to merge 1 commit into
mainfrom
docs/zensical-migration

Conversation

@jvanbuel

Copy link
Copy Markdown
Member

Summary

Migrates the documentation site from MkDocs Material to Zensical, and fixes a batch of documentation and packaging bugs found while proofreading.

The site keeps mkdocs.yml as its config. Zensical reads it natively, and upstream recommends against hand-writing zensical.toml while the format is still settling.

Site migration

  • Swap mkdocs + mkdocs-material for zensical in the docs dependency group, and change CI from mkdocs build --strict to zensical build --strict.
  • Move the seven internal design docs from docs/plans/ to plans/, outside docs_dir. Zensical does not implement exclude_docs (zensical/backlog#65), so those files were silently published. The published page set stays at 18.
  • Drop the now-dead exclude_docs key, which Zensical ignores.

Documentation bug fixes

These examples did not run before this change:

  • Every metric example was broken. Metric is a Pydantic model, so overriding name / description / unit needs a type annotation and executor needs ClassVar. The docs used bare assignments (name = "..."), which raise PydanticUserError at class definition. Now annotated to match the real plugin code.
  • Three fluent-chain examples were invalid Python. CheckHub() followed by an indented .with_metrics(...) raises IndentationError on paste. Wrapped in parens.
  • The homepage example crashed on macOS/Windows. CheckUp runs providers in a process pool, so scripts need if __name__ == "__main__":. Added, with a one-line note.

Packaging fix

  • Export MarkdownMaterializer from the top-level checkup package. It was registered as an entry point and exported from checkup.materializers, but the top-level re-export was missed in feat: Add MarkdownMaterializer #47, so from checkup import MarkdownMaterializer raised ImportError while its four siblings worked.

Content updates

  • Document MarkdownMaterializer and SQLAlchemyMaterializer. The docs claimed three materializers; there are five. Both new sections were verified by running them.
  • Point repo URLs at datamindedbe/checkup after the rename from incubator-checkup.
  • Document uv rather than pip throughout.
  • Replace the horseshoe logo and favicon with a mark cropped from the new banner.

Verification

  • uv run zensical build --strict passes with no issues; 18 published pages, no plans/ leak.
  • uv run pytest: 210 passed, 1 skipped.
  • The Markdown and SQLAlchemy materializer output shown in the docs is real output, not inferred.

Note for reviewers

docs/api/core.md contains signature snippets in ```python fences that are not valid Python (e.g. CheckHub(config_path: Path | None = None)). Left as-is, since that is a normal API-reference convention, but happy to change the fences if you prefer.

🤖 Generated with Claude Code

…erializers

Switch the docs site from MkDocs Material to Zensical, keeping mkdocs.yml as the
config since Zensical reads it natively and upstream recommends against hand-writing
zensical.toml while the format settles.

Zensical does not implement exclude_docs (zensical/backlog#65), which silently
published the seven internal design docs under docs/plans/. Move them to plans/,
outside docs_dir, to keep the published page set at 18.

Fix the metric examples, none of which could run. Metric is a Pydantic model, so
overriding name/description/unit requires type annotations and executor requires
ClassVar; the docs used bare assignments that raise PydanticUserError at class
definition. Wrap three fluent-chain examples in parens, since the indented
continuations raise IndentationError on paste. Add the __main__ guard the process
pool needs on spawn platforms.

Export MarkdownMaterializer from the top-level package. It was registered as an
entry point and exported from checkup.materializers, but the top-level re-export
was missed, so 'from checkup import MarkdownMaterializer' raised ImportError while
its four siblings worked. Document it and SQLAlchemyMaterializer, both previously
absent while the docs claimed three materializers exist.

Point the repo URLs at datamindedbe/checkup after the rename from
incubator-checkup, document uv rather than pip, and replace the horseshoe logo
with a mark cropped from the new banner.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jvanbuel
jvanbuel requested a review from CasperTeirlinck July 17, 2026 15:01
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