How to contribute

1. Clone the repository

Clone the DynamicaLab. repository. Do your modifications in the code on a separate branch.

We suggest the PEP8 style guide for Python code. Even though it won’t be enforced, we suggest implementing test functions for each method.

3. Add documentation page

For each new function or modification, we require an up-to-date documentation. The documentation should be included into the source code. We use Sphinx. to automatically generate documentation, so you should use rst format. To add images, please place them in docs/source/_static/assets/.

After documenting your code, you need to link the methods or modules into Sphinx generator. To do so, locate the directory doc/source/reference. Then, select the appropriate index.rst, and add your new method below .. autosummary:: . For example:

.. autosummary::
   :toctree: generated/

   method_1
   method_2
   new_method

Install Sphinx version 1.7.9. Compile the documentation by doing:

make html

You can verify the documentation by opening /docs/index.html in your web browser.

Warning

If the build does not work, do not try to do a pull request. Invalid documentation will be rejected. Fix it beforehand.

Warning

It is critical that you use Sphinx 1.7.9. The painless way to do it is by using conda: conda install sphinx=1.7.9.

4. Create a new pull request

When everything is tested and cleaned, create a new pull request on the master branch of the repo (See Github instructions). Your pull request will be reviewed. If everything goes well, your modification will be merged on the master branch.