Contributing
Contributions are welcome and appreciated. This page covers how to get set up and what to keep in mind before opening a pull request.
Getting Started
Fork the repository on GitHub.
Clone your fork and create a new branch:
git clone https://github.com/<your-username>/skeval.git cd skeval git checkout -b my-feature
Install the package in editable mode with dev dependencies:
pip install -e ".[dev]"
(Optional) install pre-commit hooks:
pre-commit install
Running Tests
pytest
For a coverage report:
pytest --cov=src/skeval --cov-report=term-missing
All tests must pass before a pull request can be merged.
Code Style
This project uses:
black for formatting (line length 88)
isort for import ordering
flake8 for linting
mypy for type checking
Run them all at once:
black src/ tests/
isort src/ tests/
flake8 src/ tests/
mypy src/
Building the Docs Locally
pip install -e ".[docs]"
sphinx-build -b html docs/ docs/build/
The built site is written to docs/build/. Open index.html in a browser to preview.
Submitting a Pull Request
Keep pull requests focused — one feature or fix per PR.
Add tests for any new behaviour.
Update
CHANGELOG.mdwith a brief entry under the[Unreleased]heading.Make sure
pytest,black --check, andflake8all pass locally before pushing.A maintainer will comment
/run-cion your PR to trigger the CI checks.
If you are unsure whether your change fits the project direction, open an issue first to discuss it.
Code of Conduct
This project follows the Contributor Covenant Code of Conduct. By participating you agree to uphold a respectful and inclusive environment for everyone.