summaryrefslogtreecommitdiff
path: root/share
AgeCommit message (Collapse)AuthorFilesLines
2022-03-09Fix tab completion erroring with `spack unit-test` (#29405)百地 希留耶2-5/+5
2022-03-08Fix overconstrained HDF5 variants (#29132)Seth R. Johnson1-2/+0
* hdf5: mark +fortran+shared conflict for older version This version was only activated unintentionally by silo's conflict statement, but `@1.8.15+shared+fortran+cxx` errors out in configure: ``` CMake Error at CMakeLists.txt:814 (message): **** Shared FORTRAN libraries are unsupported **** ``` * silo: refine hdf5 conflicts to avoid building old version Before this, `silo+hdf5` concretized to 1.10.7 or sometimes 1.8.15. Now I've verified it works for the following configurations: ``` silo@4.10.2 patches=7b5a1dc,952d3c9 ^ hdf5@1.10.7 api=default silo@4.10.2 patches=7b5a1dc,952d3c9,eb2a3a0 ^ hdf5@1.10.8 api=v18 silo@4.10.2 patches=7b5a1dc,952d3c9,eb2a3a0 ^ hdf5@1.12.1 api=v110 silo@4.11-bsd patches=eb2a3a0 ^ hdf5@1.12.1 api=v110 silo@4.11-bsd patches=eb2a3a0 ^ hdf5@1.10.8 api=default silo@4.11-bsd patches=eb2a3a0 ^ hdf5@1.12.1 api=default ``` and verified that the following fail: ``` silo@4.10.2 ^hdf5@1.12.1 api=default silo@4.11 ^hdf5 api=v18 silo@4.11-bsd ^hdf5@1.13.0 api=v12 silo@4.11-bsd ^hdf5@1.13.0 api=default ``` and have updated the constraints to match. Hdf5 no longer has to be downgraded to work with Silo. * silo: fix dependency conflicts * py-h5py: shorten and add comments to py-h5py hdf5 dependencies * e4s: remove slightly outdated hdf5 requirement * e4s: remove excessive hdf5 variant constraints These I think are holdovers from the old concretizer. - `hdf5_compat` can be expressed as `+hdf5 ^hdf5@1.8` - The extra variants on hdf5 shouldn't break conduit - axom unnecessarily restricts hdf5 version * conduit: restore hdf5_compat flag
2022-02-28Add a new test to catch exit code failure (#29244)Massimiliano Culpo1-0/+3
* Add a new test to catch exit code failure fixes #29226 This introduces a new unit test that checks the return code of `spack unit-test` when it is supposed to fail. This is to prevent bugs like the one introduced in #25601 in which CI didn't catch a missing return statement. In retrospective it seems that the shell test we have right now all go through `tty.die` or similar code paths which call `sys.exit(a)` explicitly. This new test instead checks `spack unit-test` which relies on the return code from command invocation in case of errors.
2022-02-22e4s ci: packages: prefer openturns@1.18 (#29154)eugeneswalker1-0/+2
2022-02-22Add `spack --bootstrap` option for accessing bootstrap store (#25601)Todd Gamblin1-1/+1
We can see what is in the bootstrap store with `spack find -b`, and you can clean it with `spack clean -b`, but we can't do much else with it, and if there are bootstrap issues they can be hard to debug. We already have `spack --mock`, which allows you to swap in the mock packages from the command line. This PR introduces `spack -b` / `spack --bootstrap`, which runs all of spack with `ensure_bootstrap_configuration()` set. This means that you can run `spack -b find`, `spack -b install`, `spack -b spec`, etc. to see what *would* happen with bootstrap configuration, to remove specific bootstrap packages, etc. This will hopefully make developers' lives easier as they deal with bootstrap packages. This PR also uses a `nullcontext` context manager. `nullcontext` has been implemented in several other places in Spack, and this PR consolidates them to `llnl.util.lang`, with a note that we can delete the function if we ever reqyire a new enough Python. - [x] introduce `spack --bootstrap` option - [x] consolidated all `nullcontext` usages to `llnl.util.lang`
2022-02-18spack external find: change default behavior (#29031)Massimiliano Culpo1-1/+1
See https://github.com/spack/spack/issues/25353#issuecomment-1041868116 This commit changes the default behavior of ``` $ spack external find ``` from searching all the possible packages Spack knows about to search only for the ones tagged as being a "build-tool". It also introduces a `--all` option to restore the old behavior.
2022-02-17Testing: optionally run tests on externally installed packages (#28701)Tamara Dahlgren1-1/+1
Since Spack does not install external packages, this commit skips them by default when running stand-alone tests. The assumption is that such packages have likely undergone an acceptance test process. However, the tests can be run against installed externals using ``` % spack test run --externals ... ```
2022-02-16commands: refactor `--reuse` handling to use configTodd Gamblin1-5/+5
`--reuse` was previously handled individually by each command that needed it. We are growing more concretization options, and they'll need their own section for commands that support them. Now there are two concretization options: * `--reuse`: Attempt to reuse packages from installs and buildcaches. * `--fresh`: Opposite of reuse -- traditional spack install. To handle thes, this PR adds a `ConfigSetAction` for `argparse`, so that you can write argparse code like this: ``` subgroup.add_argument( '--reuse', action=ConfigSetAction, dest="concretizer:reuse", const=True, default=None, help='reuse installed dependencies/buildcaches when possible' ) ``` With this, you don't need to add logic to pull the argument out and handle it; the `ConfigSetAction` just does it for you. This can probably be used to clean up some other commands later, as well. Code that was previously passing `reuse=True` around everywhere has been refactored to use config, and config is set from the CLI using a new `add_concretizer_args()` function in `spack.cmd.common.arguments`. - [x] Add `ConfigSetAction` to simplify concretizer config on the CLI - [x] Refactor code so that it does not pass `reuse=True` to every function. - [x] Refactor commands to use `add_concretizer_args()` and to pass concretizer config using the config system.
2022-02-10Stabilize the concretization of ecp-data-vis-sdk by preferring conduit@0.7.2 ↵Massimiliano Culpo1-0/+3
(#28871)
2022-02-10e4s: new specs: nccmp, nco, wannier90, lammps (#28833)eugeneswalker1-0/+4
2022-02-04e4s ci: uncomment variorum following pr #28754 (#28763)eugeneswalker2-2/+2
2022-02-02Revert "Deprecate Python 2 installations" (#28411)Adam J. Stewart1-0/+1
This reverts commit 7b76e3982f94ee952fe5d8fb0d19b389cc28228a.
2022-01-31e4s ci: add spec: gptune (#28604)eugeneswalker2-0/+2
2022-01-27Trilinos: minimize E4S CUDA build (#28591)Seth R. Johnson1-1/+3
* trilinos: update dependencies Use the tribits deps to clarify some dependencies, and group some together using `with` statements, eliminating some transitive conflict duplication. * trilinos: Restricit cuda incompatibility * e4s: vastly reduce number of packages in trilinos-cuda build Not clear who the customers of cuda-enabled trilinos are, or what options they need, or which sets of options conflict... * e4s: remove ~wrapper from trilinos+cuda
2022-01-14Update copyright year to 2022Todd Gamblin23-23/+23
2022-01-12commands: add `spack pkg source` and `spack pkg hash`Todd Gamblin1-1/+19
To make it easier to see how package hashes change and how they are computed, add two commands: * `spack pkg source <spec>`: dumps source code for a package to the terminal * `spack pkg source --canonical <spec>`: dumps canonicalized source code for a package to the terminal. It strips comments, directives, and known-unused multimethods from the package. It is used to generate package hashes. * `spack pkg hash <spec>`: This gives the package hash for a particular spec. It is generated from the canonical source code for the spec. - [x] `add spack pkg source` and `spack pkg hash` - [x] add tests - [x] fix bug in multimethod resolution with boolean `@when` values Co-authored-by: Greg Becker <becker33@llnl.gov>
2022-01-12Use depends_on over load in lmod module files generated by Spack (#28352)Harmen Stoppels1-6/+1
2022-01-12Remove tut since it requires deprecated Python 3.6 (#28360)Massimiliano Culpo1-1/+0
2022-01-06Fix spack install --v[tab] spec (#28278)Harmen Stoppels3-2/+12
2022-01-05llvm: make targets a multivalued variant (#27735)Harmen Stoppels2-2/+2
* llvm: make targets a multivalued variant * Fix the targets variant values 1. Make them lowercase and add a mapping to cmake equivalent 2. auto -> all 2. Restore composability by using a multivalued variant, so that `targets=all` and `targets=x86` is combined to `targets=all,x86` which is then transformed into LLVM_TARGETS_TO_BUILD=all. * use targets=x86 in iwyu * Default to nvptx/amdgpu/host arch targets * default to none * Update var/spack/repos/builtin/packages/zig/package.py
2021-12-23Merge tag 'v0.17.1' into developMassimiliano Culpo1-0/+2
2021-12-23New subcommand: spack bootstrap status (#28004)Massimiliano Culpo2-1/+6
This command pokes the environment, Python interpreter and bootstrap store to check if dependencies needed by Spack are available. If any are missing, it shows a comprehensible message.
2021-12-23Fix execution of style testsv0.17.1Massimiliano Culpo1-0/+2
2021-12-23Add setdefault option to tcl module (#14686)victorusu1-1/+10
This commit introduces the command spack module tcl setdefault <package> similar to the one already available for lmod Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-23Added opensuse/leap:15 to spack containerize (#27837)Christian Goll2-5/+37
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-23Add option to minimize full debug cores. include warning message about ↵Greg Becker1-1/+1
performance (#27970) Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-23ci: run style unit tests only if we target develop (#27472)Harmen Stoppels1-5/+5
Some tests assume the base branch is develop, but this branch may not have been checked out.
2021-12-23Fix overloaded argparse keys (#27379)Harmen Stoppels1-6/+1
Commands should not reuse option names defined in main.
2021-12-21axom: add v0.6.1, fixed e4s builds (#28067)Chris White2-2/+2
2021-12-17Remove ability to run spack monitor without auth (#27888)Vanessasaurus1-4/+4
spack monitor now requires authentication as each build must be associated with a user, so it does not make sense to allow the --monitor-no-auth flag and this commit will remove it
2021-12-17Fix building container images (#28063)Massimiliano Culpo3-3/+0
* Fix building container images Patchelf is bootstrapped from sources, so we cannot disable that mechanism until a finer selection is possible in the configuration. * Build on changes to the Dockerfile * Don't login to Dockerhub on PRs
2021-12-17Add setdefault option to tcl module (#14686)victorusu1-1/+10
This commit introduces the command spack module tcl setdefault <package> similar to the one already available for lmod Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-16Added opensuse/leap:15 to spack containerize (#27837)Christian Goll2-5/+37
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-15Add option to minimize full debug cores. include warning message about ↵Greg Becker1-1/+1
performance (#27970) Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-10Refactor "spack buildcache" command (#27776)Massimiliano Culpo1-1/+1
This PR is meant to move code with "business logic" from `spack.cmd.buildcache` to appropriate core modules[^1]. Modifications: - [x] Add `spack.binary_distribution.push` to create a binary package from a spec and push it to a mirror - [x] Add `spack.binary_distribution.install_root_node` to install only the root node of a concrete spec from a buildcache (may check the sha256 sum if it is passed in as input) - [x] Add `spack.binary_distribution.install_single_spec` to install a single concrete spec from a buildcache - [x] Add `spack.binary_distribution.download_single_spec` to download a single concrete spec from a buildcache to a local destination - [x] Add `Spec.from_specfile` that construct a spec given the path of a JSON or YAML spec file - [x] Removed logic from `spack.cmd.buildcache` - [x] Removed calls to `spack.cmd.buildcache` in `spack.bootstrap` - [x] Deprecate `spack buildcache copy` with a message that says it will be removed in v0.19.0 [^1]: The rationale is that commands should be lightweight wrappers of the core API, since that helps with both testing and scripting (easier mocking and no need to invoke `SpackCommand`s in a script).
2021-12-08e4s ci: expand +cuda specs (#27272)eugeneswalker2-20/+38
2021-12-03LLVM: Revert build_llvm_dylib to llvm_dylib (#27761)kwryankrattiger2-2/+2
2021-11-24spack flake8: remove deprecated command (#27290)Massimiliano Culpo1-10/+1
The "spack flake8" command wwas deprecated in favor of "spack style". The deprecation wwarning is in the 0.17.X series, so removing it for v0.18.x
2021-11-19Add connection specification to mirror creation (#24244)Joseph Snyder1-2/+2
* Add connection specification to mirror creation This allows each mirror to contain information about the credentials used to access it. Update command and tests based on comments Switch to only "long form" flags for the s3 connection information. Use the "any" function instead of checking for an empty list when looking for s3 connection information. Split test to use the access token separately from the access id and key. Use long flag form in test. Add endpoint_url to available S3 options. Extend the special parameters for an S3 mirror to accept the endpoint_url parameter. Add a test. * Add connection information per URL not per mirror Expand the mirror-based connection information to be per-URL. This will allow a user to specify different S3 connection information for both the fetch and the push URLs. Add a parameter for "profile", another way of storing the id/secret pair. * Switch from "access_profile" to "profile"
2021-11-19Adding --reuse to dev-build command. (#27487)Michael Davis1-1/+1
2021-11-18ci: run style unit tests only if we target develop (#27472)Harmen Stoppels1-5/+5
Some tests assume the base branch is develop, but this branch may not have been checked out.
2021-11-17llvm: introduce [build/link]_llvm_dylib (#27450)Harmen Stoppels2-2/+2
Apart from building a single dylib for LLVM, users should also be able to link tools against it.
2021-11-12Update the Public key of the tutorial (#27370)Massimiliano Culpo1-26/+34
2021-11-11Fix overloaded argparse keys (#27379)Harmen Stoppels1-6/+1
Commands should not reuse option names defined in main.
2021-11-11e4s ci: enable tau +mpi +python variants (#27273)eugeneswalker2-2/+2
2021-11-05commands: `spack load --list` alias for `spack find --loaded` (#27184)Todd Gamblin6-1/+14
See #25249 and https://github.com/spack/spack/pull/27159#issuecomment-958163679. This adds `spack load --list` as an alias for `spack find --loaded`. The new command is not as powerful as `spack find --loaded`, as you can't combine it with all the queries or formats that `spack find` provides. However, it is more intuitively located in the command structure in that it appears in the output of `spack load --help`. The idea here is that people can use `spack load --list` for simple stuff but fall back to `spack find --loaded` if they need more. - add help to `spack load --list` that references `spack find` - factor some parts of `spack find` out to be called from `spack load` - add shell tests - update docs Co-authored-by: Peter Josef Scheibel <scheibel1@llnl.gov> Co-authored-by: Richarda Butler <39577672+RikkiButler20@users.noreply.github.com>
2021-11-05spack install: add --reuse argumentMassimiliano Culpo1-1/+1
2021-11-05spack concretize: add --reuse argumentMassimiliano Culpo1-1/+1
2021-11-05spack spec: add --reuse argumentMassimiliano Culpo1-2/+2
2021-11-05Update command completionMassimiliano Culpo1-1/+1