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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.