Skip to content
Snippets Groups Projects
  1. Jan 23, 2020
    • Adam J. Stewart's avatar
      Use `spack commands --format=bash` to generate shell completion (#14393) · 11f2b612
      Adam J. Stewart authored
      
      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: default avatarTodd Gamblin <tgamblin@llnl.gov>
      11f2b612
    • Todd Gamblin's avatar
      bugfix: gpg2 is called 'gpg' on macOS · 8011fedd
      Todd Gamblin authored
      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.
      8011fedd
  2. Jan 22, 2020
    • Axel Huebl's avatar
      openPMD-api: Default +adios1 (#14599) · 910df8cb
      Axel Huebl authored
      Enable the ADIOS1 backend by default.
      910df8cb
    • Massimiliano Culpo's avatar
      tests: removed code duplication (#14596) · 74266ea7
      Massimiliano Culpo authored
      - [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.
      74266ea7
    • Axel Huebl's avatar
      MPark.Variant: Patch NVCC C++14 Build 2 (#14434) · 7a099090
      Axel Huebl authored
      Update the patch to fix builds with NVCC <= 10.2.89 with
      the accepted PR for upcoming releases of the library.
      7a099090
    • Sam Gutiérrez's avatar
    • Todd Gamblin's avatar
      bugfix: hashes should use ordered dictionaries (#14390) · 2eadfa24
      Todd Gamblin authored
      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']
      ```
      2eadfa24
    • Scott Wittenburg's avatar
      pipelines: `spack ci` command with env-based workflow (#12854) · 8283d87f
      Scott Wittenburg authored
      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
      8283d87f
  3. Jan 21, 2020
  4. Jan 20, 2020
  5. Jan 19, 2020
  6. Jan 18, 2020
    • Howard Pritchard's avatar
      openmpi: swat btl/uct ucx 1.7 bug (#14522) · ba22af0d
      Howard Pritchard authored
      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: default avatarHoward Pritchard <howardp@lanl.gov>
      ba22af0d
    • Matthieu Dorier's avatar
      Added py-spdlog package (#14514) · d8b4bee0
      Matthieu Dorier authored
      * Added py-spdlog package
      
      * pleasing flake-8
      
      * pleasing flake-8
      
      * addressed some comments from adamjstewart
      
      * changed URL for archive
      
      * replaced with pypi.io url
      d8b4bee0
    • Martin Pokorny's avatar
      Updates to casacore package (#14552) · cacd57d3
      Martin Pokorny authored
      * 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
      cacd57d3
  7. Jan 17, 2020
  8. Jan 16, 2020
Loading