0001: QA Split, CI, and Docs
Context
CI failed due to
manim
’s system dependency (pangocairo
) when installed fromrequirements.txt
. We also wanted a robust QA pipeline and auto-published docs.
Decision
Keep runtime dependencies lean in
requirements.txt
(nomanim
).Add QA-only dependencies to
requirements-qa.txt
(ruff, mypy, pytest-cov, bandit, interrogate, pyupgrade, sphinx, myst-parser, RTD theme, pre-commit).Keep dev extras (including
manim
) inrequirements-dev.txt
for local usage.Make Vulture optional (not in default audit) to avoid false positives early in the project.
Add pre-commit with ruff+black hooks and run as part of
make audit
.Add Sphinx docs and a GitHub Actions workflow to publish on GitHub Pages.
Consequences
CI is reliable across environments without needing system packages for manim.
Developers can opt-in locally to
manim
by installingrequirements-dev.txt
.QA is standardized via
make qa
and enforced pre-commit hooks.Documentation builds and deploys from the main branch.