4.2. Contributing

4.2.1. How to contribute

If you’re willing to help, there are several ways to do it:

  • Use PyMoDAQ and report bug or issues using github issue tracker

  • Talk about PyMoDAQ to your colleagues

  • Cite PyMoDAQ in your papers

  • Add your instruments in plugins (see Instrument Plugins)

  • Work on new features, on solving bugs or issues

For the last point, here are some pointers:

you should fork and clone the up-to-date GitHub repo: https://github.com/PyMoDAQ using git command line or GitHub Desktop. Then create a dedicated branch name from the change you want to work on (using git).

Finally I advise to create a dedicated conda environment for this and install PyMoDAQ’s package as a developer:

  • conda create -n dev_env

  • conda activate dev_env

  • cd to the location of the folder where you downloaded or cloned the repository.

  • install the package as a developer using the command pip install -e ..

Then any change on the code will be seen by python interpreter so that you can see and test your modifications. Think about writing tests that will make sure your code is sound and that modification elsewhere doesn’t change the expected behavior.

When ready, you can create a pull request from your code into the main development branch.

4.2.2. Where to contribute

There are easy places where to contribute and some more obscure places… After a few years of code rewriting/enhancing, several places are available for easily adding functionalities. These places are implementing one form or another of the Factory Pattern. For other places, you’ll have to read the API documentation :-)

4.2.2.1. Factory Patterns (to be completed)

4.2.2.1.1. Data Exporting

New Exporting data format from the H5Browser is made easy see pymodaq/utils/h5modules/exporters

4.2.2.1.2. Math functions in ROI

4.2.2.1.3. Scanning modes

4.2.3. Contributors

Here is a list of the main contributors:

4.2.3.1. Main modules

4.2.3.1.1. Functionalities

  • Sébastien Weber, Research Engineer at CEMES/CNRS

  • David Bresteau, Research Engineer at Attolab facility, CEA Saclay

  • Nicolas Tappy, Engineer at Attolight (https://attolight.com/)

4.2.3.1.2. Cleaning

  • Sébastien Weber, Research Engineer at CEMES/CNRS

  • David Trémouilles, Researcher at LAAS/CNRS

4.2.3.2. Plugins

  • Sébastien Weber, Research Engineer at CEMES/CNRS

  • Sophie Meuret, Researcher at CEMES/CNRS

  • David Bresteau, Research Engineer at Attolab facility, CEA Saclay

  • and many others…

4.2.3.3. Extensions

  • Sébastien Weber, Research Engineer at CEMES/CNRS

  • Romain Geneaux, Researcher at CEA Saclay contributed to the PyMoDAQ-Femto extension

4.2.3.4. Documentation

  • Sébastien Weber, Research Engineer at CEMES/CNRS

  • Matthieu Cabos helped with this documentation

  • David Bresteau wrote the documentation of the PID extension and the tutorial: Story of an instrument plugin development

4.2.3.5. Testing

  • Sébastien Weber, Research Engineer at CEMES/CNRS

  • Pierre Jannot wrote tests with a total of 5000 lines of code tested during his internship at CEMES in 2021

Note

If you’re not in the list and contributed somehow, sorry for that and let us know at sebastien.weber@cemes.fr