Developers

To contribute to OpenMS:

For any questions, please contact us.

Technical documentation

Note

Untested installers and containers are known as the nightly snapshot, are released every night. They generally pass automated continuous integration tests but no manual tests.

View the documentation for the nightly snapshot of OpenMS develop branch at the build archive.

See the documentation for the latest release.

Contribution guidelines

Before contributing to OpenMS, read information on the development model and conventions followed to maintain a coherent code base.

Development model

OpenMS follows the Gitflow development workflow.

Every contributor is encouraged to create their own fork (even if they are eligible to push directly to OpenMS). To create a fork:

  1. Follow the documentation on forking.

  2. Keep your fork up-to-date.

  3. Create a pull request. Before opening the pull request, please view the pull request guidelines.

Coding conventions

See the manual for coding style recommended by OpenMS: Coding conventions.

See also

C++ Guide.

OpenMS automatically tests for common coding convention violations using a modified version of cpplint. Style testing can be enabled using cmake options. clang-format is used for formatting the cpp code.

Commit messages

View the guidelines for commit messages: How to write commit messages.

Automated unit tests

Nightly tests run on different platforms. It is recommended to test on different platforms.

Tip

This saves time and increases productivity during continuous integration tests.

Nightly tests: CDASH.

Further contributor resources

Consider the following resources for further information:

  • Guidelines for adding new dependency libraries: View the guidelines for adding new dependency libraries.

  • Experimental installers: We automatically build installers for different platforms. These usually contain unstable or partially untested code. The nightly (unstable) installers are available at the build archive.

  • Developer FAQ: Visit the Developer FAQ to get answers to frequently asked questions.