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

generic badge Designates a mandatory point (policy).

generic badge 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.
  • Reference: Enforce WSC 1.1 and WSC 1.2

  • 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.
  • Reference: WSC 3.1

  • 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.
  • Reference: Smart Libraries practice 19