Contributing¶
Prerequisites¶
- Python 3.9+
- Poetry
- Git
Local setup¶
git clone https://github.com/mimickerhq/mimicker.git
cd mimicker
make install # install runtime + dev dependencies
make pre-commit-install # install git hooks (do this once)
That's it — the pre-commit hooks run automatically on every git commit.
Running tests¶
make test # full suite with coverage
make test-fast # fast run, stops on first failure
make test LOGS=1 # full suite with live Mimicker logs
Open the coverage report after a run:
Pre-commit hooks¶
Every commit is checked automatically:
| Hook | What it does |
|---|---|
trailing-whitespace |
Strips trailing spaces |
end-of-file-fixer |
Ensures files end with a newline |
check-yaml |
Validates YAML syntax |
check-added-large-files |
Blocks accidentally large files |
lint |
Syntax-checks every changed .py file |
tests |
Runs the full test suite — commit is blocked if tests fail |
To run all hooks manually against every file:
First time slow
The first pre-commit-run downloads hook environments — subsequent runs are instant.
Docs¶
make install-docs # install mkdocs-material
make docs-serve # live preview at http://127.0.0.1:8000/mimicker/
make docs-build # build to site/ (strict — warnings are errors)
All available commands¶
Submitting a pull request¶
- Fork the repo and create a branch from
main - Make your changes
- Ensure
make testandmake pre-commit-runboth pass - Open a PR against
main— CI will run the full test suite