Skip to content

Developer guidelines

Alexander Gaenko edited this page Jul 9, 2018 · 6 revisions

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.