summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2020-09-08Modules: Deduplicate suffixes but don't sort them. (#18351)Rémi Lacroix4-5/+11
* Modules: Deduplicate suffixes but don't sort them. The suffixes' order is defined by the order in which they appear in the configuration file. * Modules: Modify tests to use spack_yaml.load_config. spack_yaml.load_config ensures that the configuration is stored in an ordered manner. Without this change, the behavior of the tests did not match Spack's. * Modules: Tweak the suffixes test to better catch ordering issues.
2020-09-07SpecList: remove mutable types from __init__ arguments (#18515)Massimiliano Culpo1-1/+5
fixes #18439
2020-09-05Make spack environment configurations writable from spack external and spack ↵Robert Blake7-56/+125
compiler find (#18165) * spack config: default modification scope can be an environment The previous model was that environments are the highest priority config scope for config reading operations, but were not considered for config writing operations. Now, the active environment is the highest priority config scope for both reading and writing operations. Now spack config add, spack external find and spack compiler set environment configuration in the environment by default if an environment is active. This is a change in default behavior for these routines, but better matches the mental model for an environment taking precedence over the user's default config file. * add scope argument to 'spack external find' to choose non-default scope * Increase testing for config modifications on environments Co-authored-by: Gregory Becker <becker33@llnl.gov>
2020-09-03depends_on cannot handle ^ sigil (#18220)Adam J. Stewart1-1/+28
* depends_on cannot handle ^ sigil * cardioid+mfem+cuda requires hypre+cuda * Document this limitation * Move warning message to Known Issues docs * Better handling of parmetis dep
2020-09-03Add new MavenPackage build system base class (#18185)Adam J. Stewart6-0/+155
* Add new MavenPackage build system base class * Fix flake8 and doc tests * More specific regex * Java 8 required for these packages
2020-09-03Hashing: force hash consistency for values read from config (#18446)Massimiliano Culpo2-3/+56
The 'external_modules' attribute on a Spec, when read from a YAML configuration file, may contain extra formatting that is lost when that Spec is written-to/read-from JSON format. This was resulting in a hashing instability (when the Spec was read back, it would report a different hash). This commit adds a function which removes the extra formatting from 'external_modules' as it is passed to the Spec in __init__ to ensure a consistent hash.
2020-09-03install/install_tree: glob support (#18376)Adam J. Stewart2-64/+200
* install/install_tree: glob support * Add unit tests * Update existing packages * Raise error if glob finds no files, document function raises
2020-09-03Bugfix: terminate if a spack.yaml include path does not exist (#18074)Tamara Dahlgren2-1/+32
2020-09-02Add new RubyPackage build system base class (#18199)Adam J. Stewart5-8/+275
* Add new RubyPackage build system base class * Ruby: add spack external find support * Add build tests for RubyPackage
2020-09-02PythonPackage: update documentation (#18181)Adam J. Stewart2-36/+195
2020-09-02spack test: no gpg signing for git commits (#18454)Adam J. Stewart2-7/+11
2020-09-02Document test dependency type (#18365)Adam J. Stewart1-10/+18
2020-09-02Mac OS: support Python >= 3.8 by using fork-based multiprocessing (#18124)Rui Xue6-8/+29
As detailed in https://bugs.python.org/issue33725, starting new processes with 'fork' on Mac OS is not guaranteed to work in general. As of Python 3.8 the default process spawning mechanism was changed to avoid this issue. Spack depends on the fork-based method to preserve file descriptors transparently, to preserve global state, and to avoid pickling some objects. An effort is underway to remove dependence on fork-based process spawning (see #18205). In the meantime, this allows Spack to run with Python 3.8 on Mac OS by explicitly choosing to use 'fork'. Co-authored-by: Peter Josef Scheibel <scheibel1@llnl.gov> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2020-09-01Deprecate spack setup (#18240)Adam J. Stewart6-526/+5
2020-09-01test/relocate.py: skip tests involving patchelf on macOS (#18451)Patrick Gartung1-0/+20
2020-08-31Remove unmatched triple quotes (#18272)Adam J. Stewart1-1/+1
2020-08-27docs: add `main` version to docs for develop-like versions (#18328)Greg Becker1-1/+1
2020-08-27docs: fix bugs in contribution, getting started guides (#18216)Richarda Butler2-7/+24
Co-authored-by: Greg Becker <becker33@llnl.gov> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-08-26release procedure: add step to activate the documentation on readthedocs ↵Massimiliano Culpo1-2/+7
(#18288)
2020-08-22Fix redundant reset of terminal in prompt example (#17698)George Hartzell1-3/+3
I know that it's just an example, but I was trying to figure out what was going on and it wasn't making sense.... `tput sgr0` resets the terminal state (http://linuxcommand.org/lc3_adv_tput.php) and I can't see any reason to do it twice. Deleting the second occurrence doesn't seem to break the fancy prompt effect.
2020-08-21Added the file path for running a specific test (#18214)Richarda Butler1-1/+1
2020-08-20docs: List tar and some compressors in prerequisites (#18169)Michael Kuhn1-0/+3
Fixes #18152
2020-08-20allow external packages that violate conflicts (#18183)Greg Becker2-0/+10
2020-08-20Test "is_extension" after a round trip to dict (#18188)Massimiliano Culpo1-0/+16
closes #3887 closes #3853
2020-08-19Compilers: use Compiler._real_version for flag version checks (#18179)Greg Becker10-43/+95
Compilers can have strange versions, as the version is provided by the user. We know the real version internally, (by querying the compiler) so expose it as a property and use it in places we don't trust the user. Eventually we'll refactor this with compilers as dependencies, but this is the best fix we've got for now. - [x] Make `real_version` a property and cache the version returned by the compiler - [x] Use `real_version` to make C++ language level flags work
2020-08-19Restore curl progress output (#18127)Tamara Dahlgren2-5/+36
Restores the fetching progress bar sans failure outputs; restores non-debug reporting of using fetch cache for installed packages; and adds a unit test. * Add status bar check to test and fetch output when already installed
2020-08-19microarchitectures: Fix icelake (#18151)Michael Kuhn3-6/+35
Some of the feature flags are named differently and clwb is missing on my i7-1065G7. cascadelake and cannonlake might have similar problems but I do not have access to those architectures to test.
2020-08-18'spack env update' can handle overrides (#18149)Massimiliano Culpo2-1/+21
fixes #18147 Before this commit the command erroneously reported "Additional properties not allowed" for keys with a double colon.
2020-08-17Binary Distribution: Relocate RPATH on Cray (#18110)eugeneswalker4-19/+27
* make_package_relative: relocate rpaths on cray * relocate_package: relocate rpaths on cray * platforms: add `binary_formats` property We need to know which binary formats are supported on a platform so we know which types of relocations to try. This adds a list of binary formats to the platform and removes a bunch of special cases from `binary_distribution.py`. Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2020-08-14spack config update (bugfix): packages.yaml with empty attributes (#18057)Massimiliano Culpo2-1/+30
Before this PR, packages.yaml files that contained an empty "paths" or "modules" attribute were not updated correctly, since the update function was not reporting them as changed after the update. This PR fixes that issue and adds a unit test to avoid regression.
2020-08-13Improve output of the external find command (#18017)Massimiliano Culpo2-6/+38
This commit adds output to the "spack external find" command to inform users of the result of the operation. It also fixes a bug introduced in #17804 due to the fact that a function was not updated to conform to the new packages.yaml format (_get_predefined_externals).
2020-08-13fix buildcache create for environments with uninstalled root specs (#17859)Harmen Stoppels1-13/+21
* Handle uninstalled rootspecs in buildcache - Do not parse specs / find matching specs when in an environment and no package string is provided - Error only when a spec.yaml or spec string are not installed. In an environment it is fine when the root spec does not exist. - When iterating through the matched specs, simply skip uninstalled packages
2020-08-13"spack config update" can handle comments in YAML files (#18045)Massimiliano Culpo2-1/+37
fixes #18031 With this fix "spack config update" can update YAML files that contain comments, while previously it couldn't.
2020-08-13Merge tag 'v0.15.4' into developTodd Gamblin3-6/+10
2020-08-13bump version number for 0.15.4Todd Gamblin3-6/+10
2020-08-13Move Python 2.6 unit tests to Github Actions (#17279)Massimiliano Culpo3-18/+38
* Run Python2.6 unit tests on Github Actions * Skip url tests on Python 2.6 to reduce waiting times * Skip foreground background tests on Python 2.6 to reduce waiting times * Removed references to Travis in the documentation * Deleted install_patchelf.sh (can be installed from repo on CentOS 6)
2020-08-13Buildcache: bindist test without invoking spack compiler wrappers. (#15687)Patrick Gartung2-0/+472
* Buildcache: * Try mocking an install of quux, corge and garply using prebuilt binaries * Put patchelf install after ccache restore * Add script to install patchelf from source so it can be used on Ubuntu:Trusty which does not have a patchelf pat package. The script will skip building on macOS * Remove mirror at end of bindist test * Add patchelf to Ubuntu build env * Revert mock patchelf package to allow other tests to run. * Remove depends_on('patchelf', type='build') relying instead on * Test fixture to ensure patchelf is available. * Call g++ command to build libraries directly during test build * Flake8 * Install patchelf in before_install stage using apt unless on Trusty where a build is done. * Add some symbolic links between packages * Flake8 * Flake8: * Update mock packages to write their own source files * Create the stage because spec search does not create it any longer * updates after change of list command arguments * cleanup after merge * flake8
2020-08-13docs: document releases and branches in SpackTodd Gamblin5-6/+384
- [x] Remove references to `master` branch - [x] Document how release branches are structured - [x] Document how to make a major release - [x] Document how to make a point release - [x] Document how to do work in our release projects
2020-08-13Remove references to `master` from CITodd Gamblin1-1/+1
- [x] remove master from github actions - [x] remove master from .travis.yml - [x] make `develop` the default branch for `spack ci`
2020-08-13Moved flake8, shell and documentation tests to Github Action (#17328)Massimiliano Culpo1-2/+0
* Move flake8 tests on Github Actions * Move shell test to Github Actions * Moved documentation build to Github Action * Don't run coverage on Python 2.6 Since we get connection errors consistently on Travis when trying to upload coverage results for Python 2.6, avoid computing coverage entirely to speed-up tests.
2020-08-12bugfix: fix spack -V with releases/latest and shallow clones (#17884)Todd Gamblin1-2/+2
`spack -V` stopped working when we added the `releases/latest` tag to track the most recent release. It started just reporting the version, even on a `develop` checkout. We need to tell it to *only* search for tags that start with `v`, so that it will ignore `releases/latest`. `spack -V` also would print out unwanted git eror output on a shallow clone. - [x] add `--match 'v*'` to `git describe` arguments - [x] route error output to `os.devnull`
2020-08-12Buildcache create: change NoOverwriteException back to a warning as in v0.14 ↵Patrick Gartung1-3/+6
(#17832) * Change buildcache create `NoOverwriteException` back to a warning.
2020-08-12bugfix: fix spack buildcache list --allarchTodd Gamblin3-17/+53
`spack buildcache list` was trying to construct an `Arch` object and compare it to `arch_for_spec(<spec>)`. for each spec in the buildcache. `Arch` objects are only intended to be constructed for the machine they describe. The `ArchSpec` object (part of the `Spec`) is the descriptor that lets us talk about architectures anywhere. - [x] Modify `spack buildcache list` and `spack buildcache install` to filter with `Spec` matching instead of using `Arch`.
2020-08-12architecture: make it easier to get a Spec for the default archTodd Gamblin1-2/+15
- [x] Make it easier to get a `Spec` with a proper `ArchSpec` from an `Arch` object via new `Arch.to_spec()` method. - [x] Pull `spack.architecture.default_arch()` out of `spack.architecture.sys_type()` so we can get an `Arch` instead of a string.
2020-08-12allow GNUPGHOME to come from SPACK_GNUPGHOME in env, if set (#17139)eugeneswalker1-1/+1
2020-08-12Axom + Conduit updates (#17863)Chris White1-1/+1
* Loosen Axom's variants, add shared variant for axom, fix clang/xlf rpath'ing problem on blueos * Fix flake8 * Add main branch to list of known git branches
2020-08-12Respect $PATH ordering when registering compilers (#17967)Harmen Stoppels2-3/+33
2020-08-11Fix loading of compiler modules on CRAY (#17984)Massimiliano Culpo2-1/+3
The modifications in 193e8333fa23a2e9b44d44a80e153d9a27033860 introduced a bug in the loading of compiler modules, since a function that was expecting a list of string was just getting a string. This commit fixes the bug and adds an assertion to verify the prerequisite of the function.
2020-08-11Fix typo in spack external debug msg (#17982)Adam J. Stewart2-3/+3
2020-08-10Removed references to BlueGene/Q in docs and commentsMassimiliano Culpo5-36/+37