Skip to content

chore: pin docs toolchain and modernize CI image#9

Merged
max-tet merged 2 commits into
mainfrom
worktree-mkdocs-pin-ci
Jul 25, 2026
Merged

chore: pin docs toolchain and modernize CI image#9
max-tet merged 2 commits into
mainfrom
worktree-mkdocs-pin-ci

Conversation

@ClaydeCode

@ClaydeCode ClaydeCode commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Why

MkDocs 2.0 is not an upgrade path for this site: it removes the plugin system, switches to TOML, and is incompatible with Material for MkDocs. Material itself has been in maintenance mode since 2025-11-06 (12 months of critical fixes). The likely successor is Zensical, by the same author.

I trial-built this repo with Zensical (uvx --with markdown-include zensical build): it reads our mkdocs.yml unchanged, respects site_dir: public, and builds in 1.7s. glightbox and markdown-include work. The blocker is the blog plugin (zensical/backlog#30, still open) — /blog/ renders with no post listing, and posts land at /blog/posts/<dir>/main/ instead of /blog/YYYY/MM/DD/slug/. So: stay put, but freeze the stack and clear the easy blockers.

Changes

  • requirements.txt — pin all four deps to the versions currently in use (mkdocs==1.6.1, mkdocs-material==9.7.6, markdown-include==0.8.1, mkdocs-glightbox==0.5.2). Previously unbounded (mkdocs>=1.1.2, mkdocs-material>=9.2.0b0). MkDocs 2.0 could not have slipped in (Material 9.7.5+ pins mkdocs<2), but there is no reason to float versions on an unmaintained toolchain.
  • .github/workflows/ci.ymlpython:3.8-busterpython:3.12-slim. 3.8 went EOL in October 2024; Zensical requires >=3.10, so this also unblocks the eventual migration.
  • docs/blog/posts/2023-09-16_app_integration_overhaul/main.md — broken anchor. The post linked developer_docs/overview.md#app-format; no such section exists. Retargeted to #the-apps-metadata. Found by the Zensical trial build, which reports missing anchors (MkDocs only logs these at INFO, so --strict never caught it).
  • .gitignore — add .claude/worktrees.
  • agents.md — deployment section said GitLab Pages; the site actually deploys to GitHub Pages via .github/workflows/ci.yml. Also records that the pins are deliberate, so future agents do not bump MkDocs.

Verification

  • uv pip install -r requirements.txt && uv run mkdocs build --strict → exit 0.
  • id="the-apps-metadata" present in public/developer_docs/overview/index.html, and the post's rendered link points at it.

Follow-up

Migrate to Zensical once zensical/backlog#30 closes. At that point: re-run the trial build, diff blog URLs against the current /blog/YYYY/MM/DD/slug/ scheme, add redirects if they differ, then swap requirements.txt and the CI build command. mkdocs.yml can stay as-is — Zensical reads it natively.

🤖 Generated with Claude Code

ClaydeCode and others added 2 commits July 25, 2026 11:46
MkDocs 1.x is unmaintained and MkDocs 2.0 drops the plugin system and
Material theme support entirely, so it is not an upgrade path for this
site. The likely successor is Zensical, but it does not support the blog
plugin yet, so we stay on the current stack for now.

Pin all four dependencies to the versions currently in use so an
upstream release cannot change what CI builds while the toolchain is
frozen.

Bump the CI container from python:3.8-buster (EOL October 2024) to
python:3.12-slim. Zensical requires Python >=3.10, so this also removes
a blocker for the eventual migration.

Fix a broken anchor in the 2023 app-integration post: the linked
#app-format section does not exist in developer_docs/overview.md; the
app format is described under "The App's metadata".

Also gitignore .claude/worktrees so agent worktrees are not swept into
commits.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The site deploys to GitHub Pages via .github/workflows/ci.yml, not
GitLab Pages. Also record that the toolchain is pinned deliberately, so
future agents do not "helpfully" bump MkDocs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@max-tet
max-tet merged commit b8aa88f into main Jul 25, 2026
4 checks passed
@max-tet
max-tet deleted the worktree-mkdocs-pin-ci branch July 25, 2026 14:45
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.

2 participants