summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-01-22Use `spack commands --format=bash` to generate shell completion (#14393)Adam J. Stewart52-1080/+2155
This PR adds a `--format=bash` option to `spack commands` to auto-generate the Bash programmable tab completion script. It can be extended to work for other shells. Progress: - [x] Fix bug in superclass initialization in `ArgparseWriter` - [x] Refactor `ArgparseWriter` (see below) - [x] Ensure that output of old `--format` options remains the same - [x] Add `ArgparseCompletionWriter` and `BashCompletionWriter` - [x] Add `--aliases` option to add command aliases - [x] Standardize positional argument names - [x] Tests for `spack commands --format=bash` coverage - [x] Tests to make sure `spack-completion.bash` stays up-to-date - [x] Tests for `spack-completion.bash` coverage - [x] Speed up `spack-completion.bash` by caching subroutine calls This PR also necessitates a significant refactoring of `ArgparseWriter`. Previously, `ArgparseWriter` was mostly a single `_write` method which handled everything from extracting the information we care about from the parser to formatting the output. Now, `_write` only handles recursion, while the information extraction is split into a separate `parse` method, and the formatting is handled by `format`. This allows subclasses to completely redefine how the format will appear without overriding all of `_write`. Co-Authored-by: Todd Gamblin <tgamblin@llnl.gov>
2020-01-22bugfix: gpg2 is called 'gpg' on macOSTodd Gamblin3-13/+89
The gpg2 command isn't always around; it's sometimes called gpg. This is the case with the brew-installed version, and it's breaking our tests. - [x] Look for both 'gpg2' and 'gpg' when finding the command - [x] If we find 'gpg', ensure the version is 2 or higher - [x] Add tests for version detection.
2020-01-22openPMD-api: Default +adios1 (#14599)Axel Huebl1-1/+1
Enable the ADIOS1 backend by default.
2020-01-22tests: removed code duplication (#14596)Massimiliano Culpo6-83/+37
- [x] Factored to a common place the fixture `testing_gpg_directory`, renamed it as `mock_gnupghome` - [x] Removed altogether the function `has_gnupg2` For `has_gnupg2`, since we were not trying to parse the version from the output of: ```console $ gpg2 --version ``` this is effectively equivalent to check if `spack.util.gpg.GPG.gpg()` was found. If we need to ensure version is `^2.X` it's probably better to do it in `spack.util.gpg.GPG.gpg()` than in a separate function.
2020-01-22MPark.Variant: Patch NVCC C++14 Build 2 (#14434)Axel Huebl2-20/+33
Update the patch to fix builds with NVCC <= 10.2.89 with the accepted PR for upcoming releases of the library.
2020-01-22libquo: Update default version from 1.3 to 1.3.1. (#14585)Sam Gutiérrez1-1/+2
2020-01-21bugfix: hashes should use ordered dictionaries (#14390)Todd Gamblin3-8/+81
Despite trying very hard to keep dicts out of our hash algorithm, we seem to still accidentally add them in ways that the tests can't catch. This can cause errors when hashes are not computed deterministically. This fixes an error we saw with Python 3.5, where dictionary iteration order is random. In this instance, we saw a bug when reading Spack environment lockfiles -- The load would fail like this: ``` ... File "/sw/spack/lib/spack/spack/environment.py", line 1249, in concretized_specs yield (s, self.specs_by_hash[h]) KeyError: 'qcttqplkwgxzjlycbs4rfxxladnt423p' ``` This was because the hashes differed depending on whether we wrote `path` or `module` first when recomputing the build hash as part of reading a Spack lockfile. We can fix it by ensuring a determistic iteration order. - [x] Fix two places (one that caused an issue, and one that did not... yet) where our to_node_dict-like methods were using regular python dicts. - [x] Also add a check that statically analyzes our to_node_dict functions and flags any that use Python dicts. The test found the two errors fixed here, specifically: ``` E AssertionError: assert [] == ['Use syaml_dict instead of ...pack/spack/spec.py:1495:28'] E Right contains more items, first extra item: 'Use syaml_dict instead of dict at /Users/gamblin2/src/spack/lib/spack/spack/spec.py:1495:28' E Full diff: E - [] E + ['Use syaml_dict instead of dict at ' E + '/Users/gamblin2/src/spack/lib/spack/spack/spec.py:1495:28'] ``` and ``` E AssertionError: assert [] == ['Use syaml_dict instead of ...ack/architecture.py:359:15'] E Right contains more items, first extra item: 'Use syaml_dict instead of dict at /Users/gamblin2/src/spack/lib/spack/spack/architecture.py:359:15' E Full diff: E - [] E + ['Use syaml_dict instead of dict at ' E + '/Users/gamblin2/src/spack/lib/spack/spack/architecture.py:359:15'] ```
2020-01-21pipelines: `spack ci` command with env-based workflow (#12854)Scott Wittenburg16-778/+2166
Rework Spack's continuous integration workflow to be environment-based. - Add the `spack ci` command, which replaces the many scripts in `bin/` - `spack ci` decouples the CI workflow from the spack instance: - CI is defined in a spack environment - environment is in its own (single) git repository, separate from Spack - spack instance used to run the pipeline is up to the user - A new `gitlab-ci` section in environments allows users to configure how specs in the environment should be mapped to runners - Compilers can be bootstrapped in the new pipeline workflow - Add extensive documentation on pipelines (see `pipelines.rst` for further details) - Add extensive tests for pipeline code
2020-01-21python: add `debug` variant to enable pydebug (#14584)Todd Gamblin1-0/+10
2020-01-21Add py-scipy 1.2.3 (#14583)Adam J. Stewart1-0/+1
2020-01-21Update and fix samtools (#14507)Glenn Johnson1-12/+25
* Update and fix samtools This PR adds samtools-1.10 and sets the htlib directory so that the spack built htslib can be used. This PR also arranges the dependencies so that the htslib sequence is grouped on its own. Finally, the bzip2 dependency is removed and python and perl run dependencies are added. * Fix samtools when built with ncurses+termlib * The CI flake8 tests require lowercase variable Interestingly, this did not show up when I ran `spack flake8` locally.
2020-01-21Use util.url.join for URLs in GNU Mirrors / reorder Mirrors (#14395)Dr. Christian Tacke1-4/+4
* Reorder GNU mirrors (#14395) As @adamjstewart commented in #14395, GNU suggests to use their mirror. So reorder the mirror to the top. GNU Doc: https://www.gnu.org/prep/ftp.en.html * Use spack.util.url.join for URLs in GNU mirrors (#14395) One should not use os.path.join for URLs. This does only work on POSIX systems. Instead use spack.util.url.join. So every part in spack uses the same url joining method.
2020-01-21cmake: Fix patch checksum (#14542)Michael Kuhn2-1/+146
Add patch locally to make sure checksum cannot change again.
2020-01-21Use CudaPackage mixin for py-theano (#14577)Glenn Johnson1-8/+5
This PR adds the CudaPackage mixin class to py-theano. This replaces the `gpu` variant with the `cuda` variant.
2020-01-20Add new kcov package (#14574)Adam J. Stewart1-0/+33
* Add new kcov package * Fix linking error and add test
2020-01-20Update AWS ParallelCluster to 2.5.1 (#14571)Sean Smith1-1/+4
Signed-off-by: Sean Smith <seaam@amazon.com>
2020-01-19add conduit 0.5.1 release and allow conduit to build against statically ↵Cyrus Harrison1-4/+3
linked python (#14559)
2020-01-19capnproto: New package. (#14557)Olaf Mersmann1-0/+21
* capnproto: New package. * capnproto: Fix flake8 errors. * Remove characters invalid in Python 2.
2020-01-19py-voluptuous update versions (#14556)Simon Pintarelli1-2/+4
2020-01-18openmpi: swat btl/uct ucx 1.7 bug (#14522)Howard Pritchard1-0/+6
Unfortunately UCX 1.7.0 is appearing in RPMS before it's officially released. There's a problem with Open MPI 4.0.x where x < 3 and this version of UCX, namely that the UCT BTL fails to compile. See https://github.com/open-mpi/ompi/issues/7128 This patch works around the problem by disabling the build of the UCT BTL for releases 4.0.0 to 4.0.2. add hppritcha (me) as maintainer Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2020-01-18Added py-spdlog package (#14514)Matthieu Dorier1-0/+28
* Added py-spdlog package * pleasing flake-8 * pleasing flake-8 * addressed some comments from adamjstewart * changed URL for archive * replaced with pypi.io url
2020-01-17Updates to casacore package (#14552)Martin Pokorny1-5/+20
* Add +cfitsio variant to wcslib dependency * Replace ncurses dependency with readline dependency casacore explicitly may depend on readline, not ncurses * Add workaround for casacore's readline dependency casacore optionally depends upon readline, but it's CMakeLists.txt provides no user control over whether or not readline becomes a dependency. As readline is often present by default on systems, it's better for this package to explicitly depend on readline in order to prevent linking to whatever system version of the library happens to be found during the build process. This should be considered a workaround until casacore's CMakeLists.txt is fixed. * Apply workaround for casacore's dependency on SOFA Similar to the issues with casacore's readline dependency, casacore's optional dependency on SOFA does not provide the user with a means of controlling the dependency during build time. Unlike the readline library, the SOFA library is unlikely to exist on most systems by default. As the SOFA dependency is only optionally used for testing casacore, requiring it by default is not a good workaround. Until casacore's CMakeLists.txt is fixed, this variant has been removed to avoid unexpected library dependencies in the installed package. * Add newer casacore versions * Add mpokorny to maintainer field
2020-01-17aml: adds 'develop' and 'master' targets. (#14549)Valentin Reis1-0/+3
Co-authored-by: mlhardware <57849932+mlhardware@users.noreply.github.com>
2020-01-17suite-sparse: add 5.4.0, 5.5.0, and 5.6.0, GitHub releases (#14547)Kai Torben Ohlhus1-9/+21
- The suite-sparse author publishes new versions starting with 5.5.0 on GitHub, see https://github.com/DrTimothyAldenDavis/SuiteSparse/releases and http://faculty.cse.tamu.edu/davis/SuiteSparse/ - change spack to download from there - updated sha256 checksums from GitHub for all available releases - For versions 5.4.0, 5.5.0, 5.6.0 there is a slightly different compilation necessary: first `make default` then `make install`. Summary of the version changes (+ added, -removed [because not available on GitHub]): ``` + 5.6.0 + 5.5.0 + 5.4.0 5.3.0 5.2.0 + 5.1.2 5.1.0 + 5.0.0 + 4.5.6 4.5.5 - 4.5.4 4.5.3 - 4.5.1 ```
2020-01-17add new package : erlang (#14548)darmac1-0/+28
2020-01-17jdk temporary fix (#14550)Sajid Ali1-0/+2
2020-01-17fix hadoop url and update versions (#14530)darmac1-3/+8
2020-01-16Added new hashes for the protobuf and py-protobuf packates. (#14546)Brian Van Essen2-0/+11
* Added new hashes for the protobuf and py-protobuf packates. * Fixed flake8
2020-01-16Don't patch latest version of HDF5 (#14545)Adam J. Stewart1-1/+1
2020-01-16Add py-torchvision 0.5.0 (#14544)Adam J. Stewart1-1/+2
2020-01-16Add py-torch 1.4.0 (#14543)Adam J. Stewart1-0/+1
2020-01-16Fix use of sys.executable for module/env commands (#14496)Adam J. Stewart2-4/+6
* Fix use of sys.executable for module/env commands * Fix unit tests * More consistent quotation, less duplication * Fix import syntax
2020-01-16Add include/pythonX.Y to CPATH (#14523)Adam J. Stewart1-6/+15
2020-01-16unifyfs: new release version (#14527)Cameron Stanavige1-2/+2
This updates the UnifyFS package to account for the latest 0.9.0 version and removes support for version 0.2.0.
2020-01-16mesa: check aarch64 system type as well (#14493)Howard Pritchard1-1/+1
to disabled use of libunwind. Without this mesa fails to build using recent Cray compilers - cce 9 and higher - on aarch64 systems. Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2020-01-16falcon: Set Py_None to return value (#14532)noguchi-k2-0/+14
2020-01-16update hpx package for the new release 1.4.0 (#14533)albestro1-0/+1
2020-01-16add new package : geode (#14534)darmac1-0/+28
* add new package : geode * remove provides for gemfire
2020-01-16add new package : ignite (#14539)darmac1-0/+28
2020-01-16Use CudaPackage mixin for py-torch (#14540)Glenn Johnson1-2/+1
This PR adds CudaPackage in order to pick up the cuda/compiler conflicts defined in CudaPackage.
2020-01-16perl: Fix binary detection (#14536)Michael Kuhn1-1/+1
It seems that stable versions of perl also install a `perlX.Y.Z` binary. However, it seems that this binary can hang if used in conjunction with Spack's sbang workaround, as observed during automake's build.
2020-01-15octave: add 5.1.0 (#14531)Kai Torben Ohlhus1-0/+1
Add version Octave 5.1.0 including sha256.
2020-01-15Update py-csvkit (#14525)Glenn Johnson12-7/+230
* Update py-csvkit This PR updates the py-csvkit package. This version requires a python stack based on agate and this PR includes the new dependency packages. - py-agate-dbf - py-agate-excel - py-agate-sql - py-agate - py-dbfread - py-isodate - py-leather - py-parsedatetime - py-python-slugify - py-pytimeparse - py-text-unidecode * Replace the copy/pasted apostrophes Python 2 can not process the copy/pasted apostrophes so replace them with standard single quote character. * Add version constraints on dependencies
2020-01-15Update RocksDB to current version (#14524)Olaf Mersmann1-1/+23
* rocksdb: Fix for rocksdb issue 5303 * rocksdb: Explicitly disable features * rocksdb: Add TBB variant. * rocksdb: New version 5.18.3 and 6.5.3
2020-01-15Fix typo in modules docstring (#14521)Adam J. Stewart1-1/+1
2020-01-15Add version constraint to graphviz patches (#14377)Glenn Johnson1-4/+9
* Add version contraint to graphviz patches This PR restricts the graphviz version that the patches for building with the Intel compiler apply to. The two patches that were needed for building graphviz-2.40.1 with the Intel compiler are not needed for graphviz-2.42.2. * Adjust the qt dependencies The qt5 patch is only needed for graphviz-2.40.1. However, that version will only compile with GCC-6 or greater.
2020-01-15perl: Add 5.30.1 (and 5.31.7) (#14509)Michael Kuhn1-1/+24
This also fixes actually building the development releases.
2020-01-15mariadb-c-client: Add 3.1.6 and 3.1.5 (#14510)Michael Kuhn1-0/+2
2020-01-15hpctoolkit: add version 2019.12.28 (#14519)Mark W. Krentel1-13/+18
Add version 2019.12.28 and update the prereqs for the latest master.
2020-01-15New package Jali - unstructured mesh infrastructure for multiphysics ↵Rao Garimella1-0/+56
applications (#14498) * add variant for enabling testing * add variant for enabling testing * enable tests and clean up other options * enable tests and clean up other options * add numbered versions * add numbered versions * updates to avoid enable_tests variant; correct versioning * updates to avoid enable_tests variant; correct versioning * fixes for style * appropriate partitioners are enabled if 'all' is specified - so no need to check in spec * revert accidental change to copyright * remove erroneously re-introduced line about tests * new spack recipe for build Jali - unstructured mesh infrastructure for multiphysics applications * remove the +parallel condition for mstk, update 1.1.1 sha256sum and whitespace cleanup * reformat description * cut down description