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.txtfor 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
manimby installingrequirements-dev.txt.QA is standardized via
make qaand enforced pre-commit hooks.Documentation builds and deploys from the main branch.