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)
This commit is contained in:
parent
a64a2e72cf
commit
26480f14f9
6 changed files with 56 additions and 13 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -5,7 +5,7 @@
|
||||||
*~
|
*~
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.idea
|
.idea
|
||||||
/etc/spack/*
|
/etc/spack/*.yaml
|
||||||
/etc/spackconfig
|
/etc/spackconfig
|
||||||
/share/spack/dotkit
|
/share/spack/dotkit
|
||||||
/share/spack/modules
|
/share/spack/modules
|
||||||
|
|
|
@ -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,
|
# Settings here are versioned with Spack and are intended to provide
|
||||||
# although users can override these settings in their ~/.spack/modules.yaml.
|
# 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:
|
modules:
|
||||||
enable:
|
enable:
|
21
etc/spack/defaults/packages.yaml
Normal file
21
etc/spack/defaults/packages.yaml
Normal file
|
@ -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]
|
14
etc/spack/defaults/repos.yaml
Normal file
14
etc/spack/defaults/repos.yaml
Normal file
|
@ -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
|
|
@ -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
|
|
|
@ -497,8 +497,15 @@ def clear(self):
|
||||||
"""Empty cached config information."""
|
"""Empty cached config information."""
|
||||||
self.sections = {}
|
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'))
|
ConfigScope('user', os.path.expanduser('~/.spack'))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue