Thanks for keeping classrooms secure! Before submitting a contribution, please review these guidelines.
Be respectful. This project focuses on defensive security education—no offensive tooling.
- Fork the repository and create a feature branch (
git checkout -b feature/your-change). - Install dependencies:
pip install -r requirements.txt(andrequirements-optional.txtif needed). - Run the test suite and linters before committing.
- Follow PEP 8 and keep functions well-documented with docstrings and type hints.
- Prefer the Python standard library; optional defensive packages must be feature-flagged.
- Use pathlib for path manipulation and never execute untrusted content.
- Tests (
pytest) pass locally. - Linting (
ruff check .) passes. - Documentation updated (README, SAFETY, CHANGELOG as appropriate).
- New code includes logging where useful and avoids executing untrusted inputs.
Releases are tracked in CHANGELOG.md. Update the file and bump the version in scanner/__init__.py and pyproject.toml when preparing a release.