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

  1. Work on your own fork of the main repo

  2. In the main repo execute:

    1. pip install -r dev-requirements.txt (this installs the dev-requirements.txt)

    2. black src/ tests/ (this formats the code)

    3. pylint src/ tests/ (this analyses the code, and might rise issues that need to be fixed before the pull request)

    4. mypy –ignore-missing-imports src/ tests/ (this is a static checker, and might rise issues that need to be fixed before the pull request)

    5. 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)

    6. 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)

    Tip

    See the CI.yml script and the Actions for installation of pymm, as well as the execution of the six previous steps in Ubuntu 24.10.

  3. Squash your commits into a single commit (see this nice tutorial if you are not familiar with this)

  4. Push your commit and make a pull request

  5. 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

  1. 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).

  2. We will try to answer as soon as possible, but also any user is more than welcome to answer.

Seek support

  1. The preferred approach to seek support is to raise an Issue as described in the previous lines.

  2. 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.