summaryrefslogtreecommitdiff
path: root/lib/spack/docs/config_yaml.rst
AgeCommit message (Collapse)AuthorFilesLines
2024-01-02Update copyright year to 2024 (#41919)Todd Gamblin1-1/+1
It was time to run `spack license update-copyright-year` again.
2023-11-06Add support for aliases (#17229)Michael Kuhn1-0/+14
Add a new config section: `config:aliases`, which is a dictionary mapping aliases to commands. For instance: ```yaml config: aliases: sp: spec -I ``` will define a new command `sp` that will execute `spec` with the `-I` argument. Aliases cannot override existing commands, and this is ensured with a test. We cannot currently alias subcommands. Spack will warn about any aliases containing a space, but will not error, which leaves room for subcommand aliases in the future. --------- Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2023-07-12installer: Improve status reporting (#37903)Michael Kuhn1-4/+5
Refactor `TermTitle` into `InstallStatus` and use it to show progress information both in the terminal title as well as inline. This also turns on the terminal title status by default. The inline output will look like the following after this change: ``` ==> Installing m4-1.4.19-w2fxrpuz64zdq63woprqfxxzc3tzu7p3 [4/4] ```
2023-02-20Fix broken links in docs (#35582)Adam J. Stewart1-1/+1
2023-01-18license year bump (#34921)Harmen Stoppels1-1/+1
* license bump year * fix black issues of modified files * mypy * fix 2021 -> 2023
2022-11-03Experimental binding of shared ELF libraries (#31948)Harmen Stoppels1-3/+49
Adds another post install hook that loops over the install prefix, looking for shared libraries type of ELF files, and sets the soname to their own absolute paths. The idea being, whenever somebody links against those libraries, the linker copies the soname (which is the absolute path to the library) as a "needed" library, so that at runtime the dynamic loader realizes the needed library is a path which should be loaded directly without searching. As a result: 1. rpaths are not used for the fixed/static list of needed libraries in the dynamic section (only for _actually_ dynamically loaded libraries through `dlopen`), which largely solves the issue that Spack's rpaths are a heuristic (`<prefix>/lib` and `<prefix>/lib64` might not be where libraries really are...) 2. improved startup times (no library search required)
2022-10-06docs: fix deprecated use of install_tree (#33004)Harmen Stoppels1-3/+3
2022-04-20docs: add (config.yaml) to sections for faster lookup by config file (#30157)Harmen Stoppels1-3/+3
2022-04-08Deprecate top-level module config (#28659)Harmen Stoppels1-15/+0
* Ignore top-level module config; add auto-update In Spack 0.17 we got module sets (modules:[name]:[prop]), and for backwards compat modules:[prop] was short for modules:default:[prop]. But this makes it awkward to define default config for the "default" module set. Since 0.17 is branched off, we can now deprecate top-level module config (that is, just ignore it with a warning). This PR does that, and it implements `spack config update modules` to make upgrading easy (we should have added that to 0.17 already...) It also removes references to `dotkit` stuff which was already deprecated in 0.13 and could have been removed in 0.14. Prefix inspections are the only exception, since the top-level prefix inspections used for `spack load` and `spack env activate`.
2022-01-14Update copyright year to 2022Todd Gamblin1-1/+1
2021-10-11installer: Support showing status information in terminal title (#16259)Michael Kuhn1-0/+13
Installing packages with a lot of dependencies does not have an easy way of judging the current progress (apart from running `spack spec -I pkg` in another terminal). This change allows Spack to update the terminal's title with status information, including its current progress as well as information about the current and total number of packages.
2021-03-30Make -j flag less exceptional (#22360)Harmen Stoppels1-7/+9
* Make -j flag less exceptional The -j flag in spack behaves differently from make, ctest, ninja, etc, because it caps the number of jobs to an arbitrary number 16. Spack will behave like other tools if `spack install` uses a reasonable default, and `spack install -j <num>` *overrides* that default. This will be particularly useful for Spack usage outside of a traditional HPC context and for HPC centers that encourage users to compile on login nodes with many cores instead of on compute nodes, which has become increasingly common as individual nodes have more cores. This maintains the existing default value of min(num_cpus, 16). However, as it is right now, Spack does a poor job at determining the number of cpus on linux, since it doesn't take cgroups into account. This is particularly problematic when using distributed builds with slurm. This PR also introduces `spack.util.cpus.cpus_available()` to consolidate knowledge on determining the number of available cores, and improves core detection for linux. This should also improve core detection for Docker/ Kubernetes, which also use cgroups.
2021-01-02copyrights: update all files with license headers for 2021Todd Gamblin1-1/+1
- [x] add `concretize.lp`, `spack.yaml`, etc. to licensed files - [x] update all licensed files to say 2013-2021 using `spack license update-copyright-year` - [x] appease mypy with some additions to package.py that needed for oneapi.py
2020-09-01Deprecate spack setup (#18240)Adam J. Stewart1-2/+2
2020-01-28Note about Intel compiler segfault with long paths (#14652)Glenn Johnson1-5/+15
This PR adds a note about segfaults with the Intel compiler when the install paths are long and the dependencies many.
2019-12-30copyright: update copyright dates for 2020 (#14328)Todd Gamblin1-1/+1
2019-10-23Users can configure use of RPATH or RUNPATH (#9168)Massimiliano Culpo1-0/+21
Add a new entry in `config.yaml`: config: shared_linking: 'rpath' If this variable is set to `rpath` (the default) Spack will set RPATH in ELF binaries. If set to `runpath` it will set RUNPATH. Details: * Spack cc wrapper explicitly adds `--disable-new-dtags` when linking * cc wrapper also strips `--enable-new-dtags` from the compile line when disabling (and vice versa) * We specifically do *not* add any dtags flags on macOS, which uses Mach-O binaries, not ELF, so there's no RUNPATH)
2019-10-16Bugfix: stage directory permissions and cleaning (#12733)Tamara Dahlgren1-3/+4
* This updates stage names to use "spack-stage-" as a prefix. This avoids removing non-Spack directories in "spack clean" as c141e99 did (in this case so long as they don't contain the prefix "spack-stage-"), and also addresses a follow-up issue where Spack stage directories were not removed. * Spack now does more-stringent checking of expected permissions for staging directories. For a given stage root that includes a user component, all directories before the user component that are created by Spack are expected to match the permissions of their parent; the user component and all deeper directories are expected to be accessible to the user (read/write/execute).
2019-10-02Remove support for generating dotkit files (#11986)Massimiliano Culpo1-1/+0
Dotkit is being used only at a few sites and has been deprecated on new machines. This commit removes all the code that provide support for the generation of dotkit module files. A new validator named "deprecatedProperties" has been added to the jsonschema validators. It permits to prompt a warning message or exit with an error if a property that has been marked as deprecated is encountered. * Removed references to dotkit in the docs * Removed references to dotkit in setup-env-test.sh * Added a unit test for the 'deprecatedProperties' schema validator
2019-09-03Use spack/user-specific stage root by default; stage cleaning (#12516)Tamara Dahlgren1-6/+12
* When cleaning the stage root, only remove directories that appear to be used for staging Spack packages. Previously Spack was clearing all directories in the stage root, which could remove content not related to Spack if the user chose a staging root which contains files/directories not managed by Spack. * The documentation is updated with warnings about choosing a stage directory that is only managed by Spack (although generally the check added in this PR for "spack clean" should avoid removing content that was not created by Spack) * The default stage directory (in config.yaml) is now $tempdir/$user/spack-stage and the logic is updated to omit the $user portion of this path if $tempdir already contains a $user directory. * When creating stage root assign user read/write permissions to all directories in the path under $user. Previously Spack was assigning the permissions of the first existing parent directory
2019-09-02docs: add docs for `spack find --format` and `spack find --json`Todd Gamblin1-6/+5
- add docs for `spack find --format` - add docs for `spack find --json` - update references to Spec.format() docs and add links
2019-08-19features: Remove stage symlinks (#12072)Tamara Dahlgren1-15/+16
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.
2019-05-28Cap the maximum number of build jobs (#11373)Massimiliano Culpo1-4/+11
* config:build_jobs now controls the number of parallel jobs to spawn during builds, but cannot ever exceed the number of cores on the machine. * The default is set to 16 or the number of available cores, whatever is lowest. * Updated docs to reflect the changes done to limit parallel builds
2019-05-26docs: make docs build relocatable for localized buildsTodd Gamblin1-1/+1
- make all Spack paths relative to a `_spack_root` symlink, so that we can easily relocate the docs build *outside* lib/spack/docs - set some useful defaults for gettext translation variables in conf.py - update `relativeinclude` and other references to the spack root in the RST files to use _spack_root
2019-04-17Features: Improve Spec format strings (#10556)Greg Becker1-2/+2
* Update spec format to simpler syntax, maintain backwards compatibility * Switch to new spec.format method throughout internals * update package files for new format strings * documentation and minor code cleanup. removed nonsensical variant sigils
2019-01-01copyright: update license headers for 2013-2019 copyright.Todd Gamblin1-1/+1
2018-12-21Remove /nfs/tmp2 from default build_stage locations (#10170)Elsa Gonsiorowski, PhD1-6/+4
* Remove /nfs/tmp2 from default configuration * /nfs/tmp2 is going away from LC... and doesn’t exist for the rest of the world. * update documentation to remove /nfs/tmp2 as well
2018-11-11Minor changes to Basic Settings docs for SC18 (#9809)Adam J. Stewart1-13/+13
Grammar/spelling issues
2018-10-17relicense: replace LGPL headers with Apache-2.0/MIT SPDX headersTodd Gamblin1-0/+5
- remove the old LGPL license headers from all files in Spack - add SPDX headers to all files - core and most packages are (Apache-2.0 OR MIT) - a very small number of remaining packages are LGPL-2.1-only
2018-07-09Add ccache support (#3761)Christoph Junghans1-0/+19
If the user sets "ccache: true" in spack's config.yaml, Spack will use an available ccache executable when compiling c/c++ code. This feature is disabled by default (i.e. "ccache: false") and the documentation is updated with how to enable ccache support
2018-05-18locks: add configuration and command-line options to enable/disable locks ↵Todd Gamblin1-0/+11
(#7692) - spack.util.lock behaves the same as llnl.util.lock, but Lock._lock and Lock._unlock do nothing. - can be disabled with a control variable. - configuration options can enable/disable locking: - `locks` option in spack configuration controls whether Spack will use filesystem locks or not. - `-l` and `-L` command-line options can force-disable or force-enable locking. - Spack will check for group- and world-writability before disabling locks, and it will not allow a group- or world-writable instance to have locks disabled. - update documentation
2017-08-21Add environment variables to path substitutionMatthew Scott Krafczyk1-21/+0
Update documentation on config file variable substitutions and add expansion of environment variables in config files.
2017-08-09Merged 'purge' command with 'clean' and deleted 'purge' (#4970)Massimiliano Culpo1-5/+5
* Merged 'purge' command with 'clean'. Deleted 'purge'. fixes #2942 'spack purge' has been merged with 'spack clean'. Documentation has been updated accordingly. The 'clean' and 'purge' behavior are not mutually exclusive, and they log brief information to tty while they go. * Fixed a wrong reference to spack clean in the docs * Added tests for 'spack clean'. Updated bash completion.
2017-04-15Allow users to set parallel jobs in config.yaml (#3812)Adam J. Stewart1-4/+21
* Allow users to set parallel jobs in config.yaml * Undo change from endash to emdash * Remove parallel config, rename jobs to build_jobs
2017-04-05Allow installation directory layout to be configured using either hashPaul Hopkins1-0/+37
length parameter or spec formatting.
2016-12-12Add documentation for repositories and namespaces. (#2474)Todd Gamblin1-1/+1
* Add documentation for repositories and namespaces. * Update and extend repository documentation per review. - Also add `-N` argument for `spack spec`
2016-10-30Documentation for configurationTodd Gamblin1-0/+149