summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorTamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>2019-08-19 10:31:24 -0700
committerGitHub <noreply@github.com>2019-08-19 10:31:24 -0700
commit0ea6e0f8176db1ec28f1d65aa26c932f1ed055e7 (patch)
tree20ec3d4d77dd0dea48b517e49aa2ba79e26bf6cc /etc
parent64de824cf67993c689adff83d714b84790b1d955 (diff)
downloadspack-0ea6e0f8176db1ec28f1d65aa26c932f1ed055e7.tar.gz
spack-0ea6e0f8176db1ec28f1d65aa26c932f1ed055e7.tar.bz2
spack-0ea6e0f8176db1ec28f1d65aa26c932f1ed055e7.tar.xz
spack-0ea6e0f8176db1ec28f1d65aa26c932f1ed055e7.zip
features: Remove stage symlinks (#12072)
Fixes #11163 The goal of this work is to simplify stage directory structures by eliminating use of symbolic links. This means, among other things, that` $spack/var/spack/stage` will no longer be the core staging directory. Instead, the first accessible `config:build_stage` path will be used. Spack will no longer automatically append `spack-stage` (or the like) to configured build stage directories so the onus of distinguishing the directory from other work -- so the other work is not automatically removed with a `spack clean` operation -- falls on the user.
Diffstat (limited to 'etc')
-rw-r--r--etc/spack/defaults/config.yaml26
1 files changed, 18 insertions, 8 deletions
diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml
index 37db99f4c9..33a37bbdfa 100644
--- a/etc/spack/defaults/config.yaml
+++ b/etc/spack/defaults/config.yaml
@@ -37,18 +37,28 @@ config:
# Temporary locations Spack can try to use for builds.
#
- # Spack will use the first one it finds that exists and is writable.
- # You can use $tempdir to refer to the system default temp directory
- # (as returned by tempfile.gettempdir()).
+ # Recommended options are given below.
#
- # A value of $spack/var/spack/stage indicates that Spack should run
- # builds directly inside its install directory without staging them in
+ # Builds can be faster in temporary directories on some (e.g., HPC) systems.
+ # Specifying `$tempdir` will ensure use of the system default temporary
+ # directory (as returned by `tempfile.gettempdir()`). Spack will append
+ # `spack-stage` and, if the username is not already in the path, the value
+ # of `$user` to the path. The latter is used to avoid conflicts between
+ # users in shared temporary spaces.
+ #
+ # Another option that prevents conflicts and potential permission issues is
+ # to specify `~/.spack/stage`, which ensures each user builds in their home
+ # directory.
+ #
+ # A more traditional path uses the value of `$spack/var/spack/stage`, which
+ # builds directly inside Spack's instance without staging them in a
# temporary space.
#
- # The build stage can be purged with `spack clean --stage`.
+ # The build stage can be purged with `spack clean --stage` and
+ # `spack clean -a`, so it is important that the specified directory uniquely
+ # identifies Spack staging to avoid accidentally wiping out non-Spack work.
build_stage:
- - $tempdir
- - $spack/var/spack/stage
+ - $tempdir/spack-stage
# Cache directory for already downloaded source tarballs and archived