[feat] Additional Spack build system options #2919
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Add support for user-defined
spack env createoptionsReFrame, unless targeting a user-specified existing Spack environment, automatically passes the
-d rfm_spack_envoption to create an ephemeral environment. This is a small addition that allows users to define extraspack env createoptions (link to Spack docs for list of options).With the changes proposed here, a user could define the following:
which produces following in the build job script:
While technically this allows for any
spack env createoptions, my motivation for this feature is use of--without-view. ReFrame's use of temporary Spack environments leaves little use for a filesystem view, and disabling it can reduce the possibility ofspack load-time spec collisions.2. Add support for inserting commands between Spack environment creation and environment installation
Under certain circumstances it may be necessary to run complex custom commands to prepare a Spack environment. This needs to happen post-creation, but pre-installation. This capability is added to the Spack build system via
build_system.preinstall_cmds.