Contributing

Contributions are welcome, and they are greatly appreciated!

Every little bit helps, and credit will always be given.

For bug reports, feature requests, and feedback, simply create a new issue. Try to be as descriptive as possible.

Bug fixes, new features and documentation

This project is developed using poetry. Follow the recommended installation method:

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

Then follow these instructions:

  1. Fork the repository on github.com;

  2. Clone it on your machine;

  3. Go into the directory, and run poetry install to setup the development environment;

  4. Create a new branch with git checkout -b bug-fix-or-feature-name;

  5. Code!

  6. Write tests. Run them all. The commands to run the tests are:

    poetry run pytest  # to run all tests sequentially
    poetry run pytest -v  # to print one test per line
    poetry run pytest -n 4  # to run tests in parallel (4 workers)
    poetry run pytest tests/test_api.py  # to run tests in a specific file
    

    pytest provides the -k option to select tests based on their names:

    poetry run pytest -k "api and remove"
    poetry run pytest -k "utils or stats"
    

    See the documentation for the -k option for more examples.

    A Makefile is available for convenience: make test.

  7. When the tests pass, commit (make sure to have atomic commits and contextual commit messages! Check out this awesome blog post by Chris Beams for more information.)

  8. Push;

  9. …and finally, create a new pull/merge request! Make sure to follow the guidelines.