Contributing
============

We welcome contributions to easyCHEM! Below we describe two ways of how you may contribute to our code.

Suggestions and reporting issues
--------------------------------

We always aim to enhance easyCHEM, so do not hesitate to report bugs, propose new features or other suggestions. The preferred way in both cases is to create a new issue on the `easyCHEM gitlab page <https://gitlab.com/EliseLei/easychem/-/issues>`_. In that case, please take the time to read the guidelines below.

Guidelines to report an issue
-----------------------------
- Ensure that the issue is easyCHEM-related (see below).
- Use a clear title for the issue.
- Add a few sentences to describe your issue in more details if necessary.
- Add relevant information (OS, pRT version, Python version, use of ``venv`` or ``conda``, etc.).
- Add some key-points: steps to reproduce, expected results and actual results.
- Always include an example that can be used by the developers to reproduce your issue.
- For large scripts or console outputs (more than ~20 lines), please use attached files.
- You may also add how severe you estimate the issue is.

You can check `this example <https://gitlab.com/mauricemolli/petitRADTRANS/-/issues/88>`_ to help you structure your issue.

.. important:: If your issue is resolved (by yourself or a developer), **please report it**, especially if you solved the issue yourself: this can help other people and also the developer team.

While we are happy to help everyone in need, please only report direct easyCHEM-related issues. Most of the time issues from, for example, setups (Mac, Conda, compilers, ...) are not related to and cannot be fixed by easyCHEM. For these issues we recommend Q&A platforms such as `stackoverflow <https://stackoverflow.co/>`_. If you still encounter difficulties, contact the easyCHEM team and we will do our best to help you.

Contributing code
-----------------

If you plan for a large addition that takes a lot of time to develop, please inform the development team early. This is to ensure that we are aware of your project and can gauge whether it should be incorporated into easyCHEM. Please note that we cannot guarantee that external developments will be merged into the package before this vetting process. If we believe that easyCHEM will benefit from your addition, we may even suggest to integrate you into the development team for a better coordination of development efforts. To initiate contact please write an email to `Paul Mollière <https://www2.mpia-hd.mpg.de/~molliere/>`_ (email address can be found by clicking the envelope icon on the linked website).