Skip to content

Developer Guide

william-dawson edited this page May 27, 2020 · 7 revisions

Developer Guide

In this Wiki page, we would like to provide information for developers willing to help contribute to this project.

Developer Work Flow

Clone the repository and start a branch for whatever work you are doing. If your project is well formulated, you can also raise it as an enhancement in the issues tab, and we can assign the work to you.

Coding Style

All public subroutines should be documented using Doxygen. Private routines can also optionally be documented this way.

All text that is written to the console should be written through the logging module (this makes it easier to parse the output).

The source code is beautified using emacs for Fortran, clang-format in the llvm style for C/C++, and flake8 for python. To beautify the code, you can type: bash UnitTests/lint.sh. If you don't want to install the beautifiers that is ok, just mention that you need someone to run a beautify script in your pull request.

If your code makes use of something from the literature, put a reference to it in the Citations.bib file.

For floating point values, please use the types in the DataTypesModule. This helps maintain C compatibility and makes it easier to change the precision.

Drafting New Releases

The following steps should be taken before pushing a new release:

  • Check for warnings when compiling.
  • Check compilation with Intel compilers.
  • Check compilation with Cray compilers.
  • Confirm test results on github-actions.
  • Confirm test results on a local machine.
  • Check the examples.
  • Read the documentation.
  • Run beautification on files.
  • Check 80 column limit on source files.
  • Add the new documentation to the gh-pages.