Thank you for your interest in contributing to ESPResSo! There are many ways to contribute and we appreciate all of them. This document is a quite lengthy, so here is a list of links to the major sections:
If you have questions, please make a post on the developers mailing list.
If you plan to create a new feature for ESPResSo, it is absolutely essential that you first post your plan on the developers mailing list. This way we can give you useful tips how to go about a successful integration and can point out possibly reusable code. Maybe your feature even exists already and you just didn't notice it, so we want to save you the effort.
We cannot fix bugs we don't know about, so please report liberally. If you are unsure whether something is a bug or not, feel free to file a bug anyway.
To fix your problem quickly it is essential that we have an easy
way to reproduce your bug. Therefore you should include in your
report the desired behavior, a specific problem or error and
the shortest script necessary to reproduce it. Ideally you
also include the affected version and list of features activated
in myconfig.hpp
.
Pull requests are the primary mechanism we use to change ESPResSo. GitHub itself has some great documentation on using the Pull Request feature. We use the "fork and pull" model described here, where contributors push changes to their personal fork and create pull requests to bring those changes into the source repository.
Please make pull requests against the python
branch.
We have a continuous integration system for automated testing,
which runs on all pull requests to see whether new additions play
nicely with the existing code. Because it takes a long time for
all the tests to be completed, you might want to run make check
with the settings from maintainer/configs/maxset.hpp
locally
first.
All pull requests are reviewed by one or more of the ESPResSo core team members.
Documentation improvements are very welcome. The source of it is
located in doc/sphinx
in the tree, and standard API documentation
is generated from the source code itself.
To find documentation-related issues, filter using the Documentation label.