Skip to content

Configuration Files And Templates

Dom Heinzeller edited this page Dec 23, 2025 · 12 revisions

Overview

Configuration files and templates are split into common configuration files, container recipes, site configurations, and templates.

Common configuration files

Several configuration files in YAML format are stored under configs/common:

  • config.yaml: basic settings like number of parallel build processes, location of spack cache
  • modules*.yaml: generic module configuration, and settings for Tcl/Tk environment modules and Lua/Lmod modules
  • packages.yaml: generic package configuration (providers, versions, build variants)
  • packages_*.yaml: compiler-specific package configuration that overrides the generic package configuration; currently, spack-stack does not support version-specific compiler configuration files in configs/common (unlike for site configurations)

Container recipes

Currently unused. Will be removed or updated later.

Site configurations

Site configurations are split into fully supported tier-1 sites (preconfigured sites) and tier-2 sites (configurable sites). The latter include default site configurations for Linux and macOS that serve as starting points for new site configurations and user systems.

Site configurations and common configurations are merged when creating new environments with spack-stack. Conflicts are resolved by overriding the common configuration with the site-specific configuration, where possible, or an error is generated.

For each site, the following configuration files can be present:

  • config.yaml: basic settings
  • mirrors.yaml: definition of source cache and build cache mirrors
  • modules.yaml: defines whether tcl and lmod modules are used, additional modules to be included (generated) or excluded by spack
  • packages.yaml: compiler-independent package settings for this site
  • packages_*.yaml: compiler-specific package settings; these can include specific versions, for example packages_gcc-12.2.0.yaml and packages_gcc-13.4.0.yaml
  • README.md: additional information_ for this site

The site configuration for each site must provide information on the compiler and MPI provider (packages.yaml, packages_*.yaml) and which modules to generate (modules.yaml`).

Clone this wiki locally