.. _developer_guide: =============== Developer Guide =============== CHAI shares its Uberenv workflow with other projects. The documentation is therefore `shared`_. .. shared: /.cmake .. $ cmake --build -j . $ ctest --output-on-failure -T test It is also possible to use this configuration with the CI script outside of CI: .. code-block:: bash $ HOST_CONFIG=/.cmake scripts/gitlab/build_and_test.sh Testing new dependencies versions --------------------------------- CHAI depends on Umpire, and optionally CHAI. Testing with newer versions of both is made straightforward with Uberenv and Spack: * ``$ python scripts/uberenv/uberenv.py --spec=%clang@9.0.0 ^umpire@develop`` * ``$ python scripts/uberenv/uberenv.py --spec=%clang@9.0.0+raja ^raja@develop`` Those commands will install respectively `umpire@develop` and `raja@develop` locally, and generate host-config files with the corresponding paths. Again, the CI script can be used directly to install, build and test in one command: .. code-block:: bash $ SPEC="%clang@9.0.0 ^umpire@develop" scripts/gitlab/build_and_test.sh