Contributing to the Documentation¶
Keep this manual task-oriented and factual. Use tutorials for first use, how-to guides for operational tasks, explanations for design decisions and reference pages for exact contracts. Update the corresponding examples and source/test references when behavior changes.
For implementation changes, see contributing to the middleware.
Build locally¶
From the repository root, create an isolated documentation environment and install the pinned requirements:
python3 -m venv documentation/.venv
documentation/.venv/bin/python -m pip install -r documentation/requirements.txt
documentation/.venv/bin/python -m mkdocs build -f documentation/mkdocs.yml --strict
For a local preview:
documentation/.venv/bin/python -m mkdocs serve -f documentation/mkdocs.yml
The build command renders the manual; it does not publish the site. Generated output and the virtual environment should not be committed as documentation sources.
Verify runnable examples¶
The checked examples and source-test provenance can be validated separately from rendering:
python3 documentation/tools/verify_examples.py
python3 documentation/tools/verify_examples.py --integration
python3 -m unittest discover -s documentation/tools/tests -p 'test_*.py'
The first command compiles and runs five adapted scenarios. --integration also reruns the unchanged managed queue/job/saga integration proofs identified by the example inventory. --check-only checks source provenance without a build; it is not an execution result. Use --offline only when the required Gradle artifacts are already cached.
Examples and diagrams¶
Base examples on current APIs and meaningful test scenarios. Recheck adapted code after editing; a passing original test does not automatically validate a modified snippet. Mark host-configuration fragments with the required supplied objects and distinguish them from complete runnable examples.
Use language-tagged fences for Java, JSON, YAML, shell and text. Every annotation needs an accurate usage example and its real consumer/limitation. Do not describe metadata-only declarations as automatic runtime enforcement.
Prefer diagrams that explain a concrete boundary, such as discovery versus invocation, logical outcome versus physical lifetime or the DB/outbox/queue commit sequence. Provide useful alternative text. Keep labels legible in both color schemes and on narrow screens; do not rely on color alone.
Review¶
Have an implementer verify API/configuration claims and an architect verify ownership/failure semantics. Review links, navigation, all annotation inventory entries, syntax highlighting, footer copyright and the rendered mobile/desktop result. A successful MkDocs build is necessary but does not establish factual correctness.
Preserve the license, acknowledgement and the exact copyright attribution when reusing project material.