22. Contributing

Up to date information about the development of ESPResSo can be found in the ESPResSo wiki:

  • proceedings of the ESPResSo meetings

  • list of planned releases

  • developer’s guide

The official website at https://espressomd.org provides additional information:

  • Latest stable release of ESPResSo and older releases

  • Obtaining development version of ESPResSo

  • Archives of both developers’ and users’ mailing lists

  • Registering to mailing lists

22.1. Contributing your own code

If you are planning to make an extension to or already have a piece of your own code which could be useful to others, you are very welcome to contribute it to the community. Before you start making any changes to the code, you should fork the espressomd/espresso repository and work in a new branch.

It is also generally a good idea to contact the developers on the mailing lists before you start major coding projects. It might be that someone else is already working on the problem or has a solution at hand.

You will find more detailed information on our development processes in Contributing to ESPResSo. Please also refer to our developer’s guide in the ESPResSo wiki.

22.1.1. Required Development Tools

  • First of all, please install the dependencies for compiling ESPResSo. See the section Installation.

  • To be able to access the development version of ESPResSo, you will need the distributed versioning control system git and a GitHub account to fork the espressomd/espresso repository

  • To build the user documentation, you will need Sphinx.

  • To build the tutorials, you will need Jupyter.

  • To build the core documentation, you will need Doxygen.

All of these tools should be easy to install on most Unix operating systems.

You can find all Python dependencies of ESPResSo in requirements.txt in the top-level source directory. Several optional packages for graphics, external devices and continuous integration (CI) are not strictly essential and can be safely removed if you’re planning on installing dependencies via pip:

pip3 install --upgrade --user -r requirements.txt

Note that some distributions now use pip3 for Python3 and pip2 for Python2.

22.2. Building the User’s guide

If, while reading this documentation, you notice any mistakes or undocumented features, you are very welcome to contribute to the guide and have others benefit from your knowledge.

For this, you should clone the development version at espressomd/espresso. Next build the software as shown in Installation and then the documentation with make sphinx.