summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2016-07-19 17:10:17 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2016-07-19 17:10:17 -0700
commit26480f14f901da087efbac263835c8767eaea23a (patch)
tree7f48f8c0a7289f03d6b80d0245bd1f93f8bead67
parenta64a2e72cf361923b8a2e00a5b3ed87cb5d59bd2 (diff)
downloadspack-26480f14f901da087efbac263835c8767eaea23a.tar.gz
spack-26480f14f901da087efbac263835c8767eaea23a.tar.bz2
spack-26480f14f901da087efbac263835c8767eaea23a.tar.xz
spack-26480f14f901da087efbac263835c8767eaea23a.zip
Add "default" configuration scope.
- Default scope is versioned with spack and can be overridden by site or user config. - Default scope provides sensible default concretization preferences for all of Spack. - per-platform concretization scope can be added later (to force a particular MPI on, e.g., Cray systems)
-rw-r--r--.gitignore2
-rw-r--r--etc/spack/defaults/modules.yaml (renamed from etc/spack/modules.yaml)15
-rw-r--r--etc/spack/defaults/packages.yaml21
-rw-r--r--etc/spack/defaults/repos.yaml14
-rw-r--r--etc/spack/repos.yaml8
-rw-r--r--lib/spack/spack/config.py9
6 files changed, 56 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index bfc6172a4e..1d4d24aa52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,7 @@
*~
.DS_Store
.idea
-/etc/spack/*
+/etc/spack/*.yaml
/etc/spackconfig
/share/spack/dotkit
/share/spack/modules
diff --git a/etc/spack/modules.yaml b/etc/spack/defaults/modules.yaml
index 9ae54a2d09..8864a76547 100644
--- a/etc/spack/modules.yaml
+++ b/etc/spack/defaults/modules.yaml
@@ -1,8 +1,17 @@
# -------------------------------------------------------------------------
-# This is the default spack module files generation configuration.
+# This is the default configuration for Spack's module file generation.
#
-# Changes to this file will affect all users of this spack install,
-# although users can override these settings in their ~/.spack/modules.yaml.
+# Settings here are versioned with Spack and are intended to provide
+# sensible defaults out of the box. Spack maintainers should edit this
+# file to keep it current.
+#
+# Users can override these settings by editing the following files.
+#
+# Per-spack-instance settings (overrides defaults):
+# $SPACK_ROOT/etc/spack/modules.yaml
+#
+# Per-user settings (overrides default and site settings):
+# ~/.spack/modules.yaml
# -------------------------------------------------------------------------
modules:
enable:
diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml
new file mode 100644
index 0000000000..83f9eb7ece
--- /dev/null
+++ b/etc/spack/defaults/packages.yaml
@@ -0,0 +1,21 @@
+# -------------------------------------------------------------------------
+# This file controls default concretization preferences for Spack.
+#
+# Settings here are versioned with Spack and are intended to provide
+# sensible defaults out of the box. Spack maintainers should edit this
+# file to keep it current.
+#
+# Users can override these settings by editing the following files.
+#
+# Per-spack-instance settings (overrides defaults):
+# $SPACK_ROOT/etc/spack/packages.yaml
+#
+# Per-user settings (overrides default and site settings):
+# ~/.spack/packages.yaml
+# -------------------------------------------------------------------------
+packages:
+ all:
+ providers:
+ mpi: [openmpi, mpich]
+ blas: [openblas]
+ lapack: [openblas]
diff --git a/etc/spack/defaults/repos.yaml b/etc/spack/defaults/repos.yaml
new file mode 100644
index 0000000000..f3e00653eb
--- /dev/null
+++ b/etc/spack/defaults/repos.yaml
@@ -0,0 +1,14 @@
+# -------------------------------------------------------------------------
+# This is the default spack repository configuration. It includes the
+# builtin spack package repository.
+#
+# Users can override these settings by editing the following files.
+#
+# Per-spack-instance settings (overrides defaults):
+# $SPACK_ROOT/etc/spack/repos.yaml
+#
+# Per-user settings (overrides default and site settings):
+# ~/.spack/repos.yaml
+# -------------------------------------------------------------------------
+repos:
+ - $spack/var/spack/repos/builtin
diff --git a/etc/spack/repos.yaml b/etc/spack/repos.yaml
deleted file mode 100644
index 2d4ff54ce6..0000000000
--- a/etc/spack/repos.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# -------------------------------------------------------------------------
-# This is the default spack repository configuration.
-#
-# Changes to this file will affect all users of this spack install,
-# although users can override these settings in their ~/.spack/repos.yaml.
-# -------------------------------------------------------------------------
-repos:
- - $spack/var/spack/repos/builtin
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 3a66e9f2a6..8b5e96f97d 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -497,8 +497,15 @@ class ConfigScope(object):
"""Empty cached config information."""
self.sections = {}
+"""Default configuration scope is the lowest-level scope. These are
+ versioned with Spack and can be overridden by sites or users."""
+ConfigScope('defaults', os.path.join(spack.etc_path, 'spack', 'defaults'))
-ConfigScope('site', os.path.join(spack.etc_path, 'spack')),
+"""Site configuration is per spack instance, for sites or projects.
+ No site-level configs should be checked into spack by default."""
+ConfigScope('site', os.path.join(spack.etc_path, 'spack'))
+
+"""User configuration can override both spack defaults and site config."""
ConfigScope('user', os.path.expanduser('~/.spack'))