summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2018-12-16mirrors: patches are now properly added to mirrors (#8993)Peter Scheibel6-59/+107
* This fixes a number of bugs: * Patches were not properly downloaded and added to mirrors. * Mirror create didn't respect `list_url` in packages * Update the `spack mirror` command to add all packages in the concretized DAG (where originally it only added the package specified by the user). This is required in order to collect patches that are specified by dependents. Example: * if X->Y and X requires a patch on Y called Pxy, then Pxy will only be discovered if you create a mirror with X. * replace confusing --one-version-per-spec option for `spack mirror create` with --versions-per-spec; support retrieving multiple versions for concrete specs * Implementation details: * `spack mirror create` now uses regular staging logic to download files into a mirror, instead of reimplementing it in `add_single_spec`. * use a separate resource caching object to keep track of new resources and already-existing resources; also accepts storing resources retrieved from a cache (unlike the local cache) * mirror cache object now stores resources that are considered non-cachable, like (e.g. the tip of a branch); * the 'create' function of the mirror module no longer traverses dependencies since this was already handled by the 'mirror' command; * Change handling of `--no-checksum`: * now that 'mirror create' uses stages, the mirror tests disable checksums when creating the mirror * remove `no_checksum` argument from library functions - this is now handled at the Spack-command-level (like for 'spack install')
2018-12-15spack pkg add: add help message (#10116)Adam J. Stewart1-0/+1
2018-12-14Fix spack package inheritance for module variables (#10097)Greg Becker3-25/+37
* we weren't properly setting module variables for the root package in a DAG -- just for transitive dependencies.
2018-12-10Make downloads from list_url deterministic (#10047)Adam J. Stewart1-1/+1
2018-12-06multimethod: slight refactoring, documentation for code reviewGregory Becker3-39/+44
2018-12-06fix MRO for multimethod.__call__ using iterative algorithm.Gregory Becker2-9/+59
Add tests MRO for inherited multimethods with multiple inheritance Add tests for inherited and overridden multimethods
2018-12-06tests: fully parametrize multimethod testTodd Gamblin1-37/+47
- all multimethod tests are now run for both `multimethod` and `multimethod-inheritor` - do this with a parameterized fixture (pkg_name) that runs the same tests on both
2018-12-06multimethod uses Spec() instead of parse_anonymous_spec()Todd Gamblin2-21/+11
- simplify logic in multimethod - remove the requirement of multimethod invocations to walk up the stack.
2018-12-06spec: refactor and clean up Spec initializationTodd Gamblin2-206/+248
- Since early Spack versions, the SpecParser has (weirdly) been responsible for initializing Spec fields. - This refactors initialization to take place in Spec.__init__, as it probably should have originally. - This makes the code easier to read, the parser easier to understand, and removes the use of __new__ in the parser to initialize the Spec. - This also makes it possible to make a completely empty Spec with `Spec()` -- this is an abstract Spec that will match anything.
2018-12-06Added test for multimethod inheritanceGregory Becker1-0/+4
2018-12-04improved constraint conflict error message (#9975)Peter Scheibel1-2/+8
2018-11-28Injected flags have a consistent order (#9960)Massimiliano Culpo4-16/+30
Fixes #9908 Spack was assembling flags in a manner that could in different orderings for repeated concretizations of the same spec and config
2018-11-27Expose option to save all dependencies when writing spec.yaml (#9965)Scott Wittenburg1-2/+2
2018-11-16intel-mkl: fix usage of openmp_libs and tbb_libs (#9863)Denis Davydov1-3/+3
* intel-mkl: fix usage of openmp_libs and tbb_libs * intel-mkl: remove trailing whitespace from openmp lib
2018-11-13Fix bugs in Modules Tutorial (#9821)Adam J. Stewart1-3/+3
Found a couple bugs while trying to copy and paste the exact tutorial content.
2018-11-12Fix typos in Build Systems Tutorial (#9822)Adam J. Stewart1-4/+4
2018-11-12docs: update tutorial slide link for SC18Todd Gamblin1-8/+8
2018-11-12version bump: v0.12.0Todd Gamblin1-1/+1
2018-11-12docs: add environments tutorialTodd Gamblin2-4/+821
- tutorial goes through three sections: - installing and uninstalling environments - dealing with many specs - spack.yaml and spack.lock and workflows
2018-11-11Updates to Configuration Tutorial for SC18 (#9811)Adam J. Stewart1-176/+242
* Updates to Configuration Tutorial for SC18 * Suggested rewording
2018-11-11Consistent capitalization of Build Caches docs for SC18 (#9810)Adam J. Stewart1-1/+1
2018-11-11Minor changes to Build Settings docs (#9808)Adam J. Stewart1-25/+27
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