Skip to content

Move documentation to lbuild.modm.dev - #91

Merged
salkinium merged 3 commits into
modm-io:developfrom
salkinium:feature/docs
Oct 19, 2026
Merged

salkinium merged 3 commits into
modm-io:developfrom
salkinium:feature/docs

Conversation

@salkinium

@salkinium salkinium commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

The README got a little long (1200 lines, lol), so this moves all the docs into an MkDocs site with the same Material setup as modm, to be hosted at lbuild.modm.dev. The README is now just the intro and a link.

  • Split README into Guide (installation, CLI, configuration) and Reference (files, repositories, modules, environment, options, queries, collectors, aliases, Jinja2, name resolution, execution order) pages
  • Include the new "Patching Generated Files" section from Patch generated files and replace GitPython with pygit2 #90 on the Environment page
  • First commit only moves the text, the second one fixes and completes the docs, checked against facade.py and how modm actually uses it:
    • examples that crash with the current API (options without description, generated modules returning None from prepare(), archive folders without trailing /, env.collector() returning None)
    • deprecated APIs in examples (env.query(default=...), env.get_generated_local_files(), repo.find_modules_recursive())
    • missing docs for module.order, the env.relcwdoutpath() & co path helpers, all CLI commands, remote Git repositories and the real execution order
  • make docs builds with mkdocs build --strict, make docs-serve for local preview
  • PRs build the homepage and upload it as build-homepage-test artifact
  • Pushes to develop/develop-** deploy to GitHub Pages

Missing: Pages needs to be enabled with source "GitHub Actions" and the custom domain set in the repo settings. MkDocs is pinned to <2, since Material doesn't support MkDocs 2.0.

I also looked at pdoc for API docs of the facade classes, but they have zero docstrings and pdoc would show internal names like ModuleInitFacade, so meh, maybe later with docstrings + mkdocstrings.

Split the README into separate pages under docs/ using the same MkDocs
Material setup as modm, and keep the README short with a link to
lbuild.modm.dev. The content is moved unchanged, except for headings,
links between the pages and short introductions where a section was
split.
Fix examples that do not work with the current API:
- Options require a description argument.
- Generated module classes must return True from prepare().
- Archive folders in env.extract() must end with a slash.
- env.collector() raises instead of returning None.
- Fix syntax errors and renamed functions in the examples.
- Replace deprecated APIs: env.query(default=...),
  env.get_generated_local_files() and repo.find_modules_recursive().

Document missing features used by modm: module.order, the path helpers
like env.relcwdoutpath(), set option defaults, enum.Enum enumerations,
collector_values() defaults, the Jinja2 collector_values global and relative
includes, all CLI commands and arguments, remote Git repositories and the
actual module execution order.
Pull requests upload the built homepage as an artifact, pushes to
develop and develop-** branches deploy it to GitHub Pages.
@salkinium
salkinium merged commit 55af883 into modm-io:develop Oct 19, 2026
6 checks passed
@salkinium
salkinium deleted the feature/docs branch October 19, 2026 23:13

This branch was successfully deployed

1 active deployment
github-pages — 55af883e Deployed Oct 19, 2026 by salkinium via deploy #4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant