summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
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
2020-08-10Removed references to BlueGene/Q in core SpackMassimiliano Culpo7-71/+3
2020-08-10Simplify the detection protocol for packagesMassimiliano Culpo7-80/+453
Packages can implement “detect_version” to support detection of external instances of a package. This is generally easier than implementing “determine_spec_details”. The API for determine_version is similar: for example you can return “None” to indicate that an executable is not an instance of a package. Users may implement a “determine_variants” method for a package. When doing external detection, executables are grouped by version and each group results in a single invocation of “determine_variants” for the associated spec. The method returns a string specifying the variants for the package. The method may additionally return a dictionary representing extra attributes for the package. These will be stored in the spec yaml and can be retrieved from self.spec.extra_attributes The Spack GCC package has been updated with an implementation of “determine_variants” which adds the following extra attributes to the package: c, cxx, fortran
2020-08-10Update packages.yaml format and support configuration updatesMassimiliano Culpo29-215/+1063
The YAML config for paths and modules of external packages has changed: the new format allows a single spec to load multiple modules. Spack will automatically convert from the old format when reading the configs (the updates do not add new essential properties, so this change in Spack is backwards-compatible). With this update, Spack cannot modify existing configs/environments without updating them (e.g. “spack config add” will fail if the configuration is in a format that predates this PR). The user is prompted to do this explicitly and commands are provided. All config scopes can be updated at once. Each environment must be updated one at a time.
2020-08-10Hotfix for config singleton initialization (#17263)Michael Kuhn1-0/+4
Fixes #17262
2020-08-09deptypes: move deptype formatting code from Spec.format to dependency.py ↵Todd Gamblin2-10/+31
(#17843) - This simplifies Spec.format somewhat - Makes code to generate deptype strings (e.g., '[blrt]') reusable
2020-08-07Fujitsu compiler: Accept alphabet as version. (#17890)Tomoki, Karatsu2-7/+7
* Fujitsu compiler: Accept alphabet as version. * Fujitsu copiler: Updated test pattern.
2020-08-05bugfix: 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`