How to contribute

We welcome contributions and questions!

You can help by:

  • Reporting/fixing bugs

  • Suggesting new features

  • Adding features to the codebase

  • Expanding the testing suite

  • Improving the documentation

  • Asking a question.

How to Report Issues and Ask Questions

We use GitLab as a repository, so the best way to submit issues and questions is through the issues system.

When reporting issues or posting questions, please include as many of the following details as possible:

  • Which version of Ketos you are using

  • The source code that generated the problem (if applicable)

  • Which platform you are using (operating system and version)

  • A minimum example that reproduces the issue

  • What result you got

  • What you were expecting

Please choose the label(s) that best describe your issue (‘Question’, ‘Bug’, etc)

Workflow for Merge Requests

In order make a contribution to the repository, please fork from the master branch and make a clone of your fork on your local machine. Make your changes locally. When you are done, commit them to your fork and create a merge request detailing what you did, as well as the reasons why.

Similarly, your commit messages should briefly detail the changes you have made, for example:

git commit example.py -m "added an example to the docstring of the Spectrogram::plot method"

If you are writing a new feature, please ensure you write appropriate test cases and place them under ketos/tests/. There are numerous fixtures you can use in conftest.py and tes/assets contains files that can be used for tests. It is better to use what is already there before adding new fixtures and/or files.

If yours tests need to create temporary files, place them under “tests/assets/tmp”. This directory is cleaned by our continous integration setup after the tests are run.

Finally, please run all the tests and ensure that all the tests complete locally before submitting a merge request.

Thank you for your help!

Running the tests

Ketos includes a battery of tests. They are included in the /ketos/tests/ directory. We use pytest and doctests.

To run all tests go to the base of your directory

cd ketos-clone
ls

docker  docs  ketos  ketos.egg-info  LICENSE  requirements.txt  setup.py

and run:

pytest --doctest-modules

You can also specify a module:

pytest ketos/tests/audio/test_spectrogram.py