Developer Guide

Coding style

Please follow the project naming conventions used throughout the codebase:

  • class members commonly use leading underscore (for example _foo)

  • methods use upper camel case (for example GetSettings())

  • compound names use camel case (for example GetAllCellsAdjacentTo)

Format code with the repository style file:

  • .clang-format

Build and test workflow

A typical local developer workflow is:

cmake -S . -B build_dev -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON
cmake --build build_dev -j
./build_dev/unit_tests
ctest --test-dir build_dev --output-on-failure

Documentation build

A local Doxygen/Sphinx build uses the active CMake build directory for generated Doxygen XML:

python -m pip install -r doc/requirements.txt
cmake -S . -B build_doc -DCMAKE_BUILD_TYPE=Release -DBUILD_DOC=ON -DBUILD_MPI=OFF -DBUILD_CUDA_HPC=OFF -DBUILD_HIP_HPC=OFF -DBUILD_ML=OFF
cmake --build build_doc -j

Open build_doc/docs/sphinx/index.html to inspect the generated docs.

CI

The repository uses GitHub Actions for build and test checks. Before opening a PR, run local builds/tests and verify that new dependencies are reflected in the build configuration and container setups used by CI.