Contributing
Contributions are more than welcome using the fork and pull request approach 🙂 (if you are not familiar with this approach, please visit GitHub Docs PRs for an extended documentation about collaborating with pull request; also, looking at previous merged pull requests helps to get familiar with this).
Ground Rules
We use Black code formatting
We use Pylint
We document our code
Contribute to the software
Work on your own fork of the main repo
In the main repo execute:
pip install -r dev-requirements.txt (this installs the dev-requirements.txt)
black src/ tests/ (this formats the code)
pylint src/ tests/ (this analyses the code, and might rise issues that need to be fixed before the pull request)
mypy –ignore-missing-imports src/ tests/ (this is a static checker, and might rise issues that need to be fixed before the pull request)
pytest –cov=pymm –cov-report term-missing tests/ (this runs locally the tests, and might rise issues that need to be fixed before the pull request)
pushd docs & make html (this generates the documentation, and might rise issues that need to be fixed before the pull request; if the build succeeds and if the contribution changes the documentation, then copy all content from the docs/_build/html/ folder and replace the files in the docs folder)
Squash your commits into a single commit (see this nice tutorial if you are not familiar with this)
Push your commit and make a pull request
The maintainers will review the pull request, and if the contribution is accepted, then it will be merge to the main repo
Reporting issues or problems
Issues or problems can be raised by creating a new issue in the repository GitHub page (if you are not familiar with this approach, please visit GitHub Docs Issues).
We will try to answer as soon as possible, but also any user is more than welcome to answer.
Seek support
The preferred approach to seek support is to raise an Issue as described in the previous lines.
We will try to answer as soon as possible, but also any user is more than welcome to answer.
An alternative approach is to send an email to any of the mantainers.