Central management and maintenance solution for common files in Platform Engineering documentation sets.
This repository is a Copier template that provides a standardised Sphinx documentation scaffold for downstream Platform Engineering repositories. Downstream repositories use Copier to generate and later update their documentation tooling from this single source of truth.
Documentation is available in the docs/ directory,
organized around the Diátaxis framework.
| Area | Files | Type |
|---|---|---|
| Sphinx configuration | docs/conf.py |
Templated per project |
| URL domain configuration | docs/_static/js/overwrite_links.js |
Templated per project |
| Build tooling | docs/Makefile, docs/requirements.txt |
Static |
| Developer tooling | docs/_dev/ |
Static |
| HTML templates | docs/_templates/ (header, footer) |
Static |
| Read the Docs config | .readthedocs.yaml |
Static |
| Release note templates | docs/release-notes/template/ |
Static |
- Python 3.10+
- Git 2.27+
- Copier installed:
pipx install copieroruv tool install copier
From the root of your downstream repository:
copier copy gh:canonical/platform-engineering-documentation-files.git .Copier will prompt you with a series of questions about your project (name, URLs, license, etc.). Answer them to generate your documentation scaffold.
After generation, review the changes and commit.
To make changes to the template itself:
- Edit files under
template/— these are what get rendered into downstream repositories.- Files ending in
.jinjaare Jinja2 templates that use variables fromcopier.yml. - Files without
.jinjaare copied as-is.
- Files ending in
- If you add new variables, update
copier.ymlwith the corresponding questions. - Test your changes.
- Submit a pull request.
The repository includes an integration test that validates the template generates a
working Sphinx documentation project. It runs copier copy with two answer scenarios
and builds the output with make html, which is configured to fail on any warning.
The tests run locally and are required to pass on all pull requests.
- Full scenario (all fields populated):
bash tests/test_build.sh - Minimal scenario (only required fields):
bash tests/test_build.sh minimal
Requirements: Python 3.10+ with the venv module, Git 2.27+, GNU Make, and Copier (pipx install copier).