Commit graph

30665 commits

Author SHA1 Message Date
Massimiliano Culpo
30c9ff50dd
Allow for packages with multiple build-systems (#30738)
This commit extends the DSL that can be used in packages
to allow declaring that a package uses different build-systems
under different conditions.

It requires each spec to have a `build_system` single valued
variant. The variant can be used in many context to query, manipulate
or select the build system associated with a concrete spec.

The knowledge to build a package has been moved out of the
PackageBase hierarchy, into a new Builder hierarchy. Customization
of the default behavior for a given builder can be obtained by
coding a new derived builder in package.py.

The "run_after" and "run_before" decorators are now applied to
methods on the builder. They can also incorporate a "when="
argument to specify that a method is run only when certain
conditions apply.

For packages that do not define their own builder, forwarding logic
is added between the builder and package (methods not found in one
will be retrieved from the other); this PR is expected to be fully
backwards compatible with unmodified packages that use a single
build system.
2022-10-26 20:17:32 +02:00
Adam J. Stewart
83ee500108
py-torchmetrics: add v0.10.1 (#33535) 2022-10-26 12:14:08 -06:00
Satish Balay
b497581ce7
pflotran: fix build errors with gfortran@10: (#33527)
>> 38    Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
2022-10-26 11:33:52 -06:00
Satish Balay
117a82117d
petsc, py-petsc4py: add 3.18.1 (#33525) 2022-10-26 09:40:32 -07:00
MatthewLieber
bb64d09ccd
Updating package file for osu-micro-benchmarks for the 6.2 release (#33512)
* Updating package file for osu-micro-benchmarks for the 6.2 release
* updating sha hash for 6.2 tarball

Co-authored-by: natshineman <shineman.5@osu.edu>
2022-10-26 09:34:37 -07:00
Matthieu Dorier
8ddb5c3299
[mochi-margo] added version 0.10 (#33519) 2022-10-26 09:20:33 -07:00
Dom Heinzeller
3e37ad9aee
Add netcdf-c 4.9.0 and netcdf-fortran 4.6.0 (supersedes #31953) (#33514)
* Add netcdf-c 4.9.0 and netcdf-fortran 4.6.0

With v4.9.0 netcdf-c introduces zstandard compression option which is added as a variant.

* Fix when= in dependency

* Turn on variant zstd by default

Co-authored-by: kgerheiser <kgerheiser@icloud.com>
2022-10-26 09:18:17 -07:00
Satish Balay
b3794761ab
alquimia, pflotran, plasma, py-mpi4py, strumpack - add in new versions (#33447)
* alquimia, pflotran, plasma, py-mpi4py, strumpack - add in new versions

* Fix hip CI failure

Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com>
2022-10-26 09:09:45 -07:00
Harmen Stoppels
6413862f84
fix use of non-existing kwarg (#33520) 2022-10-26 09:03:40 -07:00
Harmen Stoppels
b92bdf8c72
Relocation regex single pass (#33496)
Instead of looping over multiple regexes and the entire text file
contents, create a giant regex with all literal prefixes and do a single
pass over files to detect prefixes. Not only is a single pass faster,
it's also likely that the regex is compiled better, given that most
prefixes share a common ... prefix.
2022-10-26 10:41:31 +02:00
Harmen Stoppels
a2520e80c0
gitlab ci: install binary deps faster (#33248)
* Fast Gitlab CI job setup, and better legibility

* Use a non-broken, recent GNU Make
2022-10-26 09:19:24 +02:00
Harmen Stoppels
d039744a5b
dfs traversal: simplify edges in reverse mode (#33481)
In the dfs code, flip edges so that `parent` means `from` and
`spec` means `to` in the direction of traversal. This makes it slightly
easier to write generic/composable code. For example when using visitors
where one visitor reverses direction, and another only cares about
accepting particular edges or not depending on whether the target node
is seen before, it would be good if the second visitor didn't have to
know whether the order was changed or not.
2022-10-25 22:55:05 -07:00
Mark W. Krentel
57c1d6c410
elfutils: add version 0.187 (#33419)
* elfutils: add version 0.187
* Move conflict for debuginfod to variant when clause.
* Add myself as maintainer.
2022-10-25 19:06:29 -07:00
MichaelLaufer
53a76761d0
Scotch: 'link_error_lib' variant - Link error handling library to libscotch/libptscotch (#33297) 2022-10-25 19:04:04 -07:00
Luke Diorio-Toth
7b053fde89
New packages: mlst, any2fasta, perl-carp, perl-class-method-modifiers, perl-role-tiny, perl-moo, perl-sub-quote (#33274)
* added mlst and deps
* added install() to any2fasta
* added script dependencies, builds OK
* fixed style
* Update var/spack/repos/builtin/packages/any2fasta/package.py

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2022-10-25 16:08:56 -07:00
Harmen Stoppels
b538acb2a9
binary_distribution: compress level 9 -> 6 (#33513)
Use the same compression level as `gzip` (6) instead of what Python uses
(9).

The LLVM tarball takes 4m instead of 12m to create, and is <1% larger.
That's not worth the wait...
2022-10-25 22:15:16 +00:00
Rémi Lacroix
8aa9758024
udunits: Update download URL (#32390)
* udunits: Update download URL
* udunits: Deprecate older versions

Unidata now only provides the latest version of each X.Y branch. Older 2.2 versions have been deprecated accordingly but are still available in the build cache.

Co-authored-by: RemiLacroix-IDRIS <RemiLacroix-IDRIS@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2022-10-25 15:06:52 -05:00
Dom Heinzeller
10aa6bdfc1
Update wgrib2 from JCSDA/NOAA-EMC fork (#32857)
* Update wgrib2 from JCSDA/NOAA-EMC fork
* var/spack/repos/builtin/packages/wgrib2/package.py: fix typo in comment, add conflict for variants netcdf3, netcdf4
* wget hdf5/netcdf4 internal dependencies for wgrib2
* Black-format var/spack/repos/builtin/packages/wgrib2/package.py
* More format changes in var/spack/repos/builtin/packages/wgrib2/package.py
2022-10-25 12:52:01 -07:00
Harmen Stoppels
649e2d3e28
depfile: resurrect lost touch (#33504) 2022-10-25 12:48:24 -07:00
Tamara Dahlgren
512f8d14d2
feature: Add -x|--explicit option to 'spack test run' (#32910) 2022-10-25 12:32:55 -07:00
Jonathon Anderson
9d5151ba25
BinaryCacheIndex: track update failures with cooldown (#33509)
#32137 added an option to update() a BinaryCacheIndex with a
cooldown: repeated attempts within this cooldown would not
actually retry. However, the cooldown was not properly
tracked for failures (which is common when the mirror
does not store any binaries and therefore has no index.json).

This commit ensures that update(..., with_cooldown=True) will
also skip the update even if a failure has occurred within the
cooldown period.
2022-10-25 11:36:12 -07:00
Rémi Lacroix
d2e75045b8
Gmsh: Fix CGNS support for version up to 4.7.1 (#33508)
Gmsh started supporting the "scoping" option of CGNS in version 4.8.0.
2022-10-25 10:40:08 -07:00
Harmen Stoppels
09e0bd55c2
spec.py: prefer transitive link and direct build/run/test deps (#33498)
Due to reuse concretization, we may generate DAGs with two occurrences
of the same package corresponding to distinct specs. This happens when
build dependencies are reused, since their dependencies are ignored in
concretization.

This caused a regression, for example: `spec['openssl']` would take the
'openssl' of the build dep `cmake`, instead of the direct `openssl`
dependency, simply because the edge to `cmake` was traversed first and
we do depth first traversal.

One solution that was discussed is to limit `spec[name]` to just direct
deps, or direct deps + transitive link deps, but this is too breaking.
Instead, this PR simply prioritizes transitive link and direct
build/run/test deps, and then falls back to a full DAG traversal. So,
it's just about order of iteration.
2022-10-25 16:47:50 +02:00
Massimiliano Culpo
00ae74f40e
Update Spack Dockerfiles (#33500)
* Use spack bootstrap now in containers

* Fix wrong path glob expression
2022-10-25 11:46:47 +00:00
Massimiliano Culpo
62526c1085
Make CI on Windows fail fast (#33502) 2022-10-25 13:04:25 +02:00
Massimiliano Culpo
4b237349a3
Remove recursive symbolic link in lib/spack/docs from git repository (#33483)
Delete code removing the symlink during CI
2022-10-25 12:27:13 +02:00
Harmen Stoppels
d361378553
Improve legibility of Gitlab CI (#33482)
Use --backtrace in ci instead of --debug to reduce verbosity
and don't show log on error, since log is already printed
2022-10-25 12:21:34 +02:00
Massimiliano Culpo
329adc1d22
CI: speed-up tests by dropping coverage on Python 2.7 (#33497) 2022-10-25 11:41:29 +02:00
Brian Spilner
272767c67f
cdo: add new release 2.1.0 (#33303) 2022-10-25 08:49:17 +02:00
Miroslav Stoyanov
8aa09fd1c0
fix problems with missing rocm dependencies (#33381) 2022-10-24 19:34:04 -07:00
Zach Jibben
8e78a91ebd
Add py-myst-parser & update py-mdit-py-plugins and py-sphinxcontrib-mermaid (#33427)
* Update py-sphinxcontrib-mermaid

* Add py-myst-parser

* Fix py-mdit-py-plugins and py-myst-parser dependencies

* Add py-exhale package

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

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

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

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

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

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

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

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

* Update py-exhale and py-myst-parser dependencies

* Add @svenevs as py-exhale maintainer

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-10-24 20:38:23 -05:00
eugeneswalker
baa21d664b
e4s ci: use an appropriate name for cdash build group name (#33494) 2022-10-24 16:15:01 -07:00
iarspider
e7512bcb7b
Add filename to text_to_relocate only if it needs to be relocated (#31074)
Scan the text files for relocatable prefixes *before* creating a tarball,
to reduce the amount of work to be done during install from binary
cache. 

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-10-24 23:32:46 +02:00
Jon Rood
20492fa48e
cppcheck: add version 2.9 (#33491) 2022-10-24 13:37:58 -07:00
Ryan Mulhall
2eb0660a79
update fms package for v2022.04 (#33484)
Co-authored-by: rem1776 <Ryan.Mulhall@noaa.gov>
2022-10-24 13:15:19 -07:00
Danny McClanahan
0b971a1aef
redact line numbers from grouped exception message (#33485) 2022-10-24 17:08:18 +00:00
eugeneswalker
a51bd80a5e
e4s ci: add chai +rocm (#32506) 2022-10-24 18:16:56 +02:00
eugeneswalker
dda2ff4653
chai +rocm: use hipcc as CMAKE_CXX_COMPILER (#33479) 2022-10-24 09:08:16 -07:00
Luke Diorio-Toth
560a9eec92
py-drep and ANIcalculator: new packages (#33467)
* py-drep: new package

* fixed file extension

* added darwin conflict

* py-checkm-genome and py-pysam: bumped version and updated deps (#10)

added checkm and pysam deps

* added dep documentation and fixed style

* changed checkm and pysam back to dev version for upstreaming

* added url and perl run dep

* fixed style
2022-10-24 09:01:28 -05:00
Harmen Stoppels
d67b12eb79
locks: improved errors (#33477)
Instead of showing

```
==> Error: Timed out waiting for a write lock.
```

show

```
==> Error: Timed out waiting for a write lock after 1.200ms and 4 attempts on file: /some/file
```

s.t. we actually get to see where acquiring a lock failed even when not
running in debug mode.

And use pretty time units everywhere, so we don't get 1.45e-9 seconds
but 1.450ns etc.
2022-10-24 11:54:49 +02:00
Harmen Stoppels
7d99fbcafd
backtraces with --backtrace (#33478)
* backtraces without --debug

Currently `--debug` is too verbose and not-`--debug` gives to little
context about where exceptions are coming from.

So, instead, it'd be nice to have `spack --backtrace` and
`SPACK_BACKTRACE=1` as methods to get something inbetween: no verbose
debug messages, but always a full backtrace.

This is useful for CI, where we don't want to drown in debug messages
when installing deps, but we do want to get details where something goes
wrong if it goes wrong.

* completion
2022-10-23 18:12:38 -07:00
Michael Kuhn
6c32c6fbdb
py-gcovr: add 5.2 (#33476) 2022-10-23 08:49:57 -05:00
Michael Kuhn
f8a899f904
ca-certificates-mozilla: add 2022-10-11 (#33331) 2022-10-23 13:44:36 +02:00
HELICS-bot
6e0d06c104
helics: Add version 3.3.1 (#33475) 2022-10-23 05:05:54 -06:00
Michael Kuhn
efa6acae86
sqlite: add 3.39.4 (#33339) 2022-10-23 04:45:46 -06:00
Michael Kuhn
e00208c566
gettext: add 0.21.1 (#33333) 2022-10-23 01:33:54 -06:00
Michael Kuhn
d4a7ea8eb0
util-linux, util-linux-uuid: add 2.38.1 (#33342) 2022-10-23 00:49:53 -06:00
Michael Kuhn
3256688f20
python: add 3.10.8, 3.9.15, 3.8.15, 3.7.15 (#33340)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-10-22 21:57:57 -06:00
Michael Kuhn
0bc596fc27
zlib: add 1.2.13 (#33337) 2022-10-22 19:53:51 -06:00
eugeneswalker
afc33518e6
openblas@0.3.21: fix misdetection of gfortran on cray (#33444) 2022-10-22 18:53:52 -06:00