summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2018-11-11Minor changes to Basic Settings docs for SC18 (#9809)Adam J. Stewart1-13/+13
Grammar/spelling issues
2018-11-11Update basic usage and modules tutorial (#9807)Greg Becker3-1148/+1149
* "spack install" now uses cache by default, update examples accordingly * Replace some example packages with others * Packing tutorial reference to "spack env" replaced with "spack build-env" * Command line prompts in examples are shortened * Example output (including paths) are updated to be more relevant to training environment
2018-11-11Advanced packaging tutorial: reorganize for binary caches (#9804)Peter Scheibel1-145/+157
Update all examples that need an MPI provider to build with MPICH; reorganize so that fixing MPICH (as part of environment section) comes first in the tutorial (most examples in the tutorial use an MPI provider).
2018-11-11env: uninstall just removes specs that are still needed by other envsTodd Gamblin1-51/+107
- previously, uninstall would complain if a spec was needed by an environment. - Now, we analyze dependents and dependent environments and simply remove (not uninstall) specs that are needed by environments
2018-11-11bugfix: preserve abstract specs when installing an environmentTodd Gamblin2-9/+9
- `spack install` was setting the root to be the concrete spec - abstract spec is now preserved
2018-11-11env: fix display of concretized specs in `spack find`Todd Gamblin1-5/+3
- fix highlighting of roots in concretized specs in `spack find` - tighten up the `spack find` output in environments
2018-11-11env: make `spack config edit` and `spack config get` environment-awareTodd Gamblin5-27/+183
- with no arguments, these commands will now edit or dump the environment's `spack.yaml` file. - users may not know where named environments live - this makes it convenient for users to get to the spack.yaml configuration file for their named environment.
2018-11-11bugfix: make defaults consistent --use-cache and --no-cache (#9803)Todd Gamblin1-3/+3
2018-11-11Update buildsystem tut (#9795)Mario Melara2-45/+54
* Update Makefile to use property methods ("build_targets"/"install_targets") to demonstrate their usage * Fix highlighting * Change cbench example to ESMF: CBench package file was changed and no longer uses the example shown in the old docs
2018-11-11Updates to Configuration Files docs for SC18 (#9801)Adam J. Stewart2-139/+138
Scopes added with -C are now referred to as "custom scopes" rather than "command line scopes". "command line scope" now refers to specific config options that are set on the command line (like "--insecure")
2018-11-09install: add --use-cache back so that existing tooling does not break (#9797)Todd Gamblin1-2/+8
- default is still to use the cache, but we've added back the `--use-cache` argument so that scripts that used it are still correct. - `--no-cache` is stil present and is mutually exclusive with `--use-cache`
2018-11-09Introduce fftw-api virtual package for Intel-MKL and FFTW (#9618)Nichols A. Romero1-2/+5
* Introduce FFTW2 and FFT3 providers for Intel-MKL and FFTW Spack packages. * make fftw default package for fftw-api virtual package * virtual package test assertion now provides location of default virtual packages. * Change name of virtual package to fftw-api and used versioned interface.
2018-11-09buildcache: update `spack install` to use build cache by default (#9772)Greg Becker4-7/+11
2018-11-09env: clean up command access to the active environmentTodd Gamblin5-40/+51
- all commands (except `spack find`, through `ConstraintAction`) now go through get_env() to get the active environment - ev.active was hard to read -- and the name wasn't descriptive. - rename it to _active_environment to be more descriptive and to strongly indicate that spack.environment manages it
2018-11-09env: only add `concrete` attribute to abstract specsTodd Gamblin1-3/+4
- to aovid changing spec hashes drastically, only add this attribute to differentiated abstract specs. - othherwise assume that read-in specs are concrete
2018-11-09env: make environment search more consistent; simplify codeTodd Gamblin4-105/+105
- spack.yaml files in the current directory were picked up inconsistently -- make this a sure thing by moving that logic into find_environment() and moving find_environment() to main() - simplify arguments to Spack command: - remove short args for infrequently used commands (--pdb/-D, -P, -s) - `spack -D` now forces an env with a directory
2018-11-09externals: bugfix in ruamel for ordereddict in Python 2.6Todd Gamblin1-2/+2
- args weren't being delegated properly from CommentedMap to OrderedDict
2018-11-09env: rename EnvError to SpackEnvironmentErrorTodd Gamblin2-13/+10
2018-11-09bugfix: preserve patch ordering when specs are copiedTodd Gamblin1-0/+9
- The `Spec` class maintains a special `_patches_in_order_of_appearance` attribute on patch variants, but it is was preserved when specs are copied. - This caused issues for some builds - Add special logic to `Spec` to preserve this variant on copy - TODO: in the long term we should get rid of the special variant and make it the responsibility of one of the variant classes.
2018-11-09fix bad regular expressions and docstrings with '\'Todd Gamblin2-4/+4
2018-11-09commands: rework command categories and argumentsTodd Gamblin14-22/+27
- split 'environment' section into 'environments' and 'modules' - move location to 'query packages' section - move cd to developer section - --env-dir no longer has a short optino (was -E) - -E now means "run without an environment" (no longer same as --env-dir) - -D now means "run with this directory environment" - remove short options for may infrequently used top-level commands
2018-11-09env: consolidate most of `spack env status` into `spack find`Todd Gamblin7-148/+259
- `spack env status` used to show install status; consolidate that into `spack find`. - `spack env status` will still print out whether there is an active environment
2018-11-09env: move `env uninstall` into `spack uninstall`Todd Gamblin6-72/+191
- uninstall now: - restricts its spec search to the current environment - removes uninstalled specs from the current environment - reports envs that still need specs you're trying to uninstall - removed spack env uninstall command - updated tests
2018-11-09env: move `spack env stage` into `spack stage` commandTodd Gamblin4-27/+15
2018-11-09env: `spack env destroy` is now `spack env remove`Todd Gamblin2-20/+23
2018-11-09env: move add, remove, and concretize to top-level commandsTodd Gamblin7-104/+155
2018-11-09env: moved all `spack env install` functionality into `spack install`Todd Gamblin4-124/+110
- moved get_env from cmd/env.py to environment.py - spack install will now install into the active environment when no arguments are provided. It looks: 1. at the command line 2. for a local spack.yaml file 3. for any currently activated environment
2018-11-09env: remove all -e arguments on subcommandsTodd Gamblin2-18/+25
- add and remove now require an active environment - update tests to use with <ENV> instead of -e
2018-11-09env: currently activated environment cannot be destroyedTodd Gamblin3-22/+42
2018-11-09env: prevent any active environments from interfering with testsTodd Gamblin1-0/+22
- ensure that `SPACK_ENV` is unset before tests - ensure that `spack.environment.active` is deactivated if set
2018-11-09env: remove upgrade() and relocate() for nowTodd Gamblin3-140/+1
- these won't be in the first release of environments - they'll be added back in later
2018-11-09env: add test to ensure config precedence is high-to-lowTodd Gamblin2-3/+46
2018-11-09env: make install_status output more conciseTodd Gamblin3-14/+46
2018-11-09env: environments can be named or created in directoriesTodd Gamblin6-278/+451
- `spack env create <name>` works as before - `spack env create <path>` now works as well -- environments can be created in their own directories outside of Spack. - `spack install` will look for a `spack.yaml` file in the current directory, and will install the entire project from the environment - The Environment class has been refactored so that it does not depend on the internal Spack environment root; it just takes a path and operates on an environment in that path (so internal and external envs are handled the same) - The named environment interface has been hoisted to the spack.environment module level. - env.yaml is now spack.yaml in all places. It was easier to go with one name for these files than to try to handle logic for both env.yaml and spack.yaml.
2018-11-09env: `spack install SPEC` installs into currently active environment.Todd Gamblin4-9/+100
- install will now add (if necessary), concretize, and install a single spec into the active environment.
2018-11-09env: `spack env install` automatically concretizes specsTodd Gamblin2-6/+16
2018-11-09env: add spack env activate/deactivate and shell supportTodd Gamblin6-64/+200
- `spack env activate foo`: sets SPACK_ENV to the current active env name - `spack env deactivate`: unsets SPACK_ENV, deactivates the environment - added support to setup_env.sh and setup_env.csh - other env commands work properly with SPACK_ENV, as with an environment arguments. - command-line --env arguments take precedence over the active environment, if given.
2018-11-09env: bugfix: spack env list won't fail if var/spack/environments doesn't existTodd Gamblin1-1/+6
2018-11-09env: rework environmentsTodd Gamblin8-531/+1160
- env.yaml is now meaningful; it contains authoritative user specs - concretize diffs user specs in env.yaml and env.json to allow user to add/remove by simply updating env.yaml - comments are preserved when env.yaml is updated by add/unadd - env.yaml can contain configuration and include external configuration either from merged files or from config scopes - there is only one file format to remember (env.yaml, no separate init format) - env.json is now env.lock, and it stores the *last* user specs to be concretized, along with full provenance. - internal structure was modified slightly for readability - env.lock contains a _meta section with metadata, in case needed - added more tests for environments - env commands follow Spack conventions; no more `spack env foo install`
2018-11-09config: allow env.yaml to contain configuration in a single fileTodd Gamblin8-81/+271
- add `SingleFileScope` to configuration, which allows us to pull config sections from a single file. - update `env.yaml` and tests to ensure that the env.yaml schema works when pulling configurtion from the env file.
2018-11-09env: rename `spack env list` to `spack env status`Todd Gamblin1-5/+5
2018-11-09schemas: rework schemas so that they can be included from other filesTodd Gamblin11-400/+496
- Each schema now has a top-level `properties` and `schema` attribute. - The `properties` is a fragment that can be included in other jsonschemas, via Python, not via '$ref' - Th `schema` is a complete `jsonschema` with `title` and `$schema` properties.
2018-11-09bugfix: Avoid `KeyError` in compilers.yaml version checkTodd Gamblin1-2/+2
2018-11-09env: add -e as global spack argument, make `spack -e <env> spec` workTodd Gamblin6-40/+64
- add -E/--exact-env instead of --use-env-repo - simplify env handling in `spack find`
2018-11-09env: add `--env` argument to `spack location`Todd Gamblin2-11/+12
2018-11-09env: add --env argument to `spack find`Todd Gamblin5-9/+52
- add a common argument for `-e/--env` - modify the database to support queries on subsets of hashes - allow `spack find` to be filtered by hashes in an environment
2018-11-09bugfix: identical specs with different DAG hashes don't shadow each otherTodd Gamblin1-3/+5
- logic used in `spack find` was hiding duplicate installations if their hashes were different - short hash doesn't work in this scenario, since specs are structurally identical - ConstraintAction always works on a DB query, so use the DAG hash to ensure uniqueness
2018-11-09env: move main Environment class and logic to `spack.environment`Todd Gamblin5-601/+629
- `spack.environment` is now the home for most of the infrastructure around Spack environments - refactor `cmd/env.py` to use everything from spack.environment - refactor the cmd/env test to use pytest and fixtures
2018-11-09utils: merge spack.environment into spack.util.environmentTodd Gamblin6-634/+628
- `spack.util.environment` is the new home for routines that modify environment variables. - This is to make room for `spack.environment` to contain new routines for dealing with spack environments
2018-11-09env: refactor imports in cmd/env.py and testsTodd Gamblin2-16/+11