Commit graph

24798 commits

Author SHA1 Message Date
Tom Scogland
8f5fcc6e95
extensions: allow multiple "extends" directives (#28853)
* extensions: allow multiple "extends" directives

This will allow multiple extends directives in a package as long as only one of
them is selected as a dependency in the concrete spec.

* document the option to have multiple extends
2022-02-16 21:23:12 +00:00
Michael Kuhn
e8c5f195a7
libffi: add v3.4.2 (#28970) 2022-02-16 13:41:29 -07:00
Mark W. Krentel
36020d69d7
intel-gtpin: new package (#28542) 2022-02-16 18:22:26 +00:00
Todd Gamblin
b1ff9c05bc concretizer: refactor argument passing for reuse
Reuse previously was a very invasive change that required parameters to be added to all
the methods that called `concretize()` on a `Spec` object. With the addition of
concretizer configuration, we can use the config system to simplify this argument
passing and keep the code cleaner.

We decided that concretizer config options should be read at `Solver` instantiation
time, and if config changes between instnatiation of a particular solver and
`solve()` invocation, the `Solver` should use the settings from `__init__()`.

- [x] remove `reuse` keyword argument from most concretize functions
- [x] refactor usages to use `spack.config.override("concretizer:reuse", True)`
- [x] rework argument passing in `Solver` so that parameters are set from config
      at instantiation time
2022-02-16 10:17:18 -08:00
Todd Gamblin
d33973df6c docs: add section on concretizer configuration
* Document `concretizer.yaml`, `--reuse`, and `--fresh`.
2022-02-16 10:17:18 -08:00
Todd Gamblin
a2b8e0c3e9 commands: refactor --reuse handling to use config
`--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-16 10:17:18 -08:00
Todd Gamblin
f155de7462 tests: consolidate mock scope creation logic in conftest.py
Config scopes were different for `config` and `mutable_config`,
and `mutable_config` did not have a command line scope.

- [x] Fix by consolidating the creation logic for the two fixtures.
2022-02-16 10:17:18 -08:00
Todd Gamblin
800ed16e7a config: add a new concretizer config section
The concretizer is going to grow to have many more configuration,
and we really need some structured config for that.

* We have the `config:concretizer` option that chooses the solver,
  but extending that is awkward (we'd need to replace a string with
  a `dict`) and the solver choice will be deprecated eventually.

* We have the `concretization` option in environments, but it's
  not a top-level config section -- it's just for environments,
  and it also only admits a string right now.

To avoid overlapping with either of these and to allow the most
extensibility in the future, this adds a new `concretizer` config
section that can be used in and outside of environments. There
is only one option right now: `reuse`.  This can expand to include
other options later.

Likely, we will soon deprecate `config:concretizer` and warn when
the user doesn't use `clingo`, and we will eventually (sometime later)
move the `together` / `separately` options from `concretization` into
the top-level `concretizer` section.

This commit just adds the new section and schema. Fully wiring it
up is TBD.
2022-02-16 10:17:18 -08:00
Todd Gamblin
1903e45eec refactor: convert spack.solver.asp.solve() to a class
The solver has a lot of configuration associated with it. Rather
than adding arguments to everything, we should encapsulate that
in a class. This is the start of that work; it replaces `solve()`
and its kwargs with a class and properties.
2022-02-16 10:17:18 -08:00
Mark W. Krentel
87a3b72ef0
Add 'stable' to the list of infinity version names. (#28772)
* Add 'stable' to the list of infinity version names.
Rename libunwind 1.5-head to 1.5-stable.

* Add stable to the infinite version list in packaging_guide.rst.
2022-02-16 09:08:51 -08:00
Manuela Kuhn
884da5e326
py-etelemetry: add 0.3.0 (#28983)
* py-etelemetry: add 0.3.0

* Update var/spack/repos/builtin/packages/py-etelemetry/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-16 10:22:38 -06:00
Manuela Kuhn
9fc9386944
py-filelock: add 3.5.0 (#29006) 2022-02-16 10:22:16 -06:00
Manuela Kuhn
e84a2db23d
py-tomli-w: add new package (#29007) 2022-02-16 10:21:09 -06:00
Adam J. Stewart
5c1edbe00a
py-build: python+ensurepip not required (#28562)
* py-build: python+ensurepip not required

* Add patch to fix issue when pip is in PYTHONPATH
2022-02-16 15:53:22 +01:00
Massimiliano Culpo
5272e72344
mesa: enable the swr variant if +llvm, instead of using conflicts (#29008)
* mesa: enable the `swr` variant if +llvm, instead of using conflicts

fixes #28994
2022-02-16 07:26:29 -07:00
Adam J. Stewart
3c1b2c0fc9
find_libraries: search for both .so and .dylib on macOS (#28924) 2022-02-16 14:07:44 +01:00
psakievich
e6ea4c788a
Trilinos: Add UVM variant (#28949)
13.2+ still supports UVM as an option.
2022-02-16 07:29:49 -05:00
Robert Pavel
5cd8fc37ba
flecsi: update constraints and add new dependency (#28788)
Updated flecsi constraints to better match internal development. Also
added dependency on `lanl-cmake-modules` for flecsi@2.1.1:
2022-02-16 10:51:01 +01:00
Carson Woods
3e69449ecd
py-archspec: add versions up to v0.1.3 (#28928) 2022-02-16 10:44:31 +01:00
haralmha
ef921e4107
storm: add v2.3.0 (#28957) 2022-02-16 10:43:37 +01:00
kwryankrattiger
6d6641f706
VTK-m: Allow building +shared+cuda_native @1.7: (#28877) 2022-02-16 10:40:33 +01:00
Tom Scogland
8f19bf2f31
gh: add versions up to v2.5.1 (#28958) 2022-02-16 10:38:11 +01:00
Adam J. Stewart
fe5cb90f83
py-nbconvert: add v6.4.2 (#28965)
No version of py-nbconvert@5: can be concretized due to conflicting versions 
of flit-core that are required. This issue could be solved by separate 
concretization of build deps.
2022-02-16 10:24:52 +01:00
Michael Kuhn
b0dc83afff
glib: add v2.70.4 (#28972) 2022-02-16 01:59:19 -07:00
Michael Kuhn
4c8582dfc8
gdbm: add v1.23 (#28974) 2022-02-16 09:53:45 +01:00
Manuela Kuhn
8654cc93ef
py-entrypoints: add v0.4 (#28977) 2022-02-16 09:40:54 +01:00
Manuela Kuhn
5d58b94322
py-backports-entry-points-selectable: add v1.1.1 (#28954) 2022-02-16 09:40:10 +01:00
Manuela Kuhn
924be97a9b
py-docutils: add 0.18.1 (#28976) 2022-02-15 22:20:34 -07:00
Manuela Kuhn
dfd83e60ac
py-argon2-cffi: add 21.3.0 (#28968) 2022-02-15 22:14:24 -07:00
Manuela Kuhn
0f9f636f38
py-distlib: add 0.3.4 (#28975) 2022-02-15 22:35:17 -06:00
Manuela Kuhn
2fa892daa2
py-decorator: add 5.1.1 (#28953) 2022-02-15 18:57:23 -07:00
Manuela Kuhn
c433a35fdb
py-datalad: add 0.15.5 (#28952)
* py-datalad: add 0.15.5

* Move dependency position
2022-02-15 17:02:53 -07:00
Manuela Kuhn
23ddfba16d
py-cryptography: add 36.0.1 (#28950) 2022-02-15 16:44:37 -07:00
Filippo Spiga
52d4e209e2
Adding NVIDIA HPC SDK 22.2 (#28874) 2022-02-15 16:41:42 -07:00
Massimiliano Culpo
5b34b947a8
archspec: remove pyproject.toml to workaround PEP517 (#28956)
* archspec: remove pyproject.toml to workaround PEP517

If pyproject.toml is in the folder, that is preferred to the
setup.py packaged by poetry itself. Adding a dependency on
poetry for deploying a pure Python package seems wasteful,
since the package to be deployed just needs to be copied in
place, so we don't want to built rust for that.

* archspec: patch pyproject.toml to comply to PEP517

See https://python-poetry.org/docs/pyproject/#poetry-and-pep-517

* Fix style issues
2022-02-15 16:14:39 -07:00
Paul Romano
dea9766336
OpenMC: new version 0.13.0 (#28929) 2022-02-15 16:11:33 -07:00
Manuela Kuhn
939e94790f
py-argon2-cffi-bindings: add new package (#28943) 2022-02-15 15:14:25 -07:00
Christoph Conrads
9da8f18e3a
FEniCS: avoid HDF5 version 1.12+ (#28920)
The new HDF5 version 1.12 API causes compiler errors due to modified function prototypes. Note that version 1.11 is the development version of HDF5 1.12.
2022-02-15 15:09:08 -07:00
Manuela Kuhn
f707987275
py-coverage: add 6.3.1 (#28946) 2022-02-15 15:08:37 -07:00
Manuela Kuhn
39c4af5f79
py-numba: add 0.55.1 (#28933)
* py-numba: add 0.55.1

* Remove comment

* Pin down py-llvmlite version for older py-numba releases

* Remove py-llvmlite deps for releases not in spack

* Set upper bounds for python and py-numpy

* Add stricter upper bound to py-numpy for releases <=0.47
2022-02-15 15:02:29 -07:00
Manuela Kuhn
9cd311c82d
py-argcomplete: add 2.0.0 (#28942) 2022-02-15 14:44:38 -07:00
Manuela Kuhn
53ca65b103
py-memory-profiler: add 0.60.0 (#28918) 2022-02-15 13:29:49 -07:00
Seth R. Johnson
c987d06a19
github: add default value for spack spec and error message (#28796) 2022-02-15 18:50:21 +00:00
Stephen Sachs
79f22423b8
intel compiler: fix link time error with LLVMgold.so (#28731)
The Intel compiler will, at link time, call `ld -plugin LLVMgold.so`, which
expects libraries like `libimfo.so` to be found either in the `LD_LIBRARY_PATH` or
in `LLVMgold.so`s RPATH.

As `LLVMgold.so` already uses RUNPATH, I used that to extend this to the
necessary library locations.

This PR should fix issues:
https://github.com/spack/spack/issues/10308
https://github.com/spack/spack/issues/18606
https://github.com/spack/spack/issues/17100
https://github.com/spack/spack/issues/21237
https://github.com/spack/spack/issues/4261

Co-authored-by: Stephen Sachs <stesachs@amazon.com>
2022-02-15 17:47:29 +00:00
Harmen Stoppels
cebe4fdf1d
Make spack -e [env] spec show environment root specs (#25941) 2022-02-15 09:42:05 -08:00
Anton Kozhevnikov
d61c1f623c
SIRIUS: optionlal dependency on Python (#28711)
* depend on Python only when building the module

* fixes for shared costa libray

* add deprecated=True for old packages
2022-02-15 10:23:37 -07:00
Harmen Stoppels
55996d3ad4
Unalias despacktivate only when alias exists (#28939) 2022-02-15 16:21:19 +01:00
acastanedam
3640c258dc
direnv: fix installation procedure (#28940)
Setting Spack's `$prefix` to `$DESTDIR` and not to `$PREFIX` install the
package in `$prefix/usr/local` and not in `$prefix`, thus when it is
loaded the executable `direnv` in not "seen" by the environment.
2022-02-15 08:17:41 -07:00
Nils Vu
a8d440d3ab
spectre: patch Boost pre v1.67 (#28931) 2022-02-15 15:13:13 +01:00
dlkuehn
7fc9c16f9e
genometools: add v1.6.2 (#28936)
Co-authored-by: las_dkuehn <las_dkuehn@gilman-0107-02.las.iastate.edu>
2022-02-15 15:11:38 +01:00