This site is currently under development for the RSE-ops community.
Build
Good build practices can make development easier for developers. We provide two mandatory points, and one
strongly recommended.
Legend
Designates a mandatory point (policy).
Designates a recommended point (guideline).
Rationale: Automating the build process prevents duplication of effort and allows others to build a copy of the code and to incorporate needed fixes in dependency tools and libraries. Spack is a package management tool that allows easy configuration with multiple dependency versions, configurations, platforms, and compilers.
Details: We suggest considering BLT (Build, Link and Test) which handles known CMake limitations and provides a set of templates to easily stand up a robust CMake-based build system.
Rationale: Consistent use of CMake and BLT will enable individual users, computing centers, and package managers (such as Spack) to install the package in a way that is compatible with other RADIUSS products on the same system.
Details: Development and production environments are different, and it makes sense to provide build options for both.
Rationale: Production versions should not be compiled with debug symbols and should include platform-specific optimizations so long as they pass all tests. Debug versions should be available for users who can self-assess bugs and thus provide more specific bug reports or fixes.