-
Notifications
You must be signed in to change notification settings - Fork 42
Developer guidelines
This page will be expanded and changed as necessary, and not least due to a users' and developers' feedback. As of now, the basic guidelines are:
-
The project uses CMake as its build system.
-
Contributed code should be structured as described in Repository structure.
-
Any new code should be accompanied by a unit test using Google Test.
-
The only allowed dependencies are Eigen3, header-only Boost, HDF5 and MPI.
-
Introducing dependencies on Boost libraries that are not header-only is not allowed.
-
The language is C++11 (if you really, really need to go beyond C++11, let's discuss).
However, the source must be compilable by at least C++14 compiler.
-
Make sure that your code compiles cleanly with warnings enabled ("
-Wall
" in many compilers). -
Consider compiling your code with g++ option "
-Weffc++
": some errors can be caught early this way. Unfortunately, both library headers and ALPSCore own headers generate warnings with this option: you may need to filter the compiler output.