Thank you for considering contributing to SUPERVAIZER! This document outlines the development process and guidelines.
This project uses just as a command runner. Here are the available commands:
just -l- Clone the repository
- Install uv:
pip install uv - Create and activate a virtual environment:
uv venv- Windows:
.venv\Scripts\activate - Unix/MacOS:
source .venv/bin/activate
- Install development dependencies:
just install-dev - Install Git hooks:
just install-hooks
pytestOr for specific test categories:
pytest -m "not slow" # Skip slow tests
pytest -m "current" # Run tests under developmentRunning tests without test coverage:
just test-no-covRerunning failed tests:
just test-failedRunning mypy directly:
mypy supervaizerRunning mypy for all (including tests):
mypy supervaizer testsRunning mypy via pre-commit:
just mypy- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run the tests to ensure they pass
- Update documentation as needed
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
We follow PEP 8 with a line length of 120 characters. The project uses the following tools for code quality:
- Ruff for code formatting, linting and import sorting
- Mypy for type checking
All of these are run as pre-commit hooks, so make sure you install them as mentioned above.
By submitting a contribution (code, documentation, or other content) to this project, you agree to license it under the terms of the Mozilla Public License 2.0 (MPL-2.0).
You retain the copyright to your contribution, but you grant the project maintainers and all users the right to use, modify, and distribute it as part of the project under the MPL-2.0 license.
This project uses the Developer Certificate of Origin (DCO) to ensure that contributions are made with clear rights. By submitting a contribution, you certify that:
“I certify that the contribution was created in whole or in part by me and I have the right to submit it under the MPL-2.0 license.”
You express this certification by signing off each commit using the -s flag in git commit:
Example:
git commit -s -m "Fix bug in data sync logic"Contributions without this sign-off may be rejected.
⸻