-
Notifications
You must be signed in to change notification settings - Fork 65
Developer Guide
Folks interested in contributing should check out the Issues page. There you should find some easy fixes for anyone with some C/C++ experience. Before making changes take a look at the style guide.
Additional guidelines:
- Don't break the build
- If in doubt, make a branch
- Run the ctest suite - everything must pass
- Don't try to force push to
masterordevelop; it is disabled
Developers should refer to this document discussing the APIs and their organization.
The software repository setup is as follows:
- Each repository has exactly two branches:
masteranddevelop. - All developers can modify the
developbranch at will, without restriction. - No developer may directly modify the
masterbranch. - Every day, an automated process will perform regression tests on both branches, and post the results online here.
- Every day, an automated process will merge all changes
from the
developbranch to themasterbranch if and only if the resultingmasterregression tests pass. - A select group of Owners may modify
masterfor the limited purposes of repairing the automated system.
The above text was taken from the Automation page.
We use CMake. First, read this page on the CMake build-system. Then, take a look at bob.cmake and one of the CMakeLists.txt files in sub-directory.
We use SimModSuite mostly for the interface to geometric modeling kernels. In some cases apf-sim is used and there is a much stronger dependency (mesh, fields, etc.).
- increase the max version # here: https://github.com/SCOREC/core/blob/ea65d5fb9e9c7915da289c9106d7b9f7b8c26727/cmake/FindSimModSuite.cmake#L77
- run make and ensure that there are no additional warnings/errors
- run ctest to ensure nothing is broken
- push the max version # change
Using https://github.com/SCOREC/core/blob/master/Doxyfile_internal.in more documentation on both internal and external APIs will be generated.
- Install Doxygen
- on SCOREC RHEL9 systems the following modules will provide it:
module use /opt/scorec/spack/rhel9/v0201_4/lmod/linux-rhel9-x86_64/Core/
module load gcc/12.3.0-iil3lno mpich/4.1.1-xpoyz4t
module load doxygen/1.9.6-5ppxahb
- Run CMake
- Build documentation:
cmake --build /path/to/build/dir --target docInternalorcd /path/to/build/dir; make docInternal