summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-06Bootstrap most of Spack dependencies using environments (#34029)Massimiliano Culpo26-1154/+1531
This commit reworks the bootstrapping procedure to use Spack environments as much as possible. The `spack.bootstrap` module has also been reorganized into a Python package. A distinction is made among "core" Spack dependencies (clingo, GnuPG, patchelf) and other dependencies. For a number of reasons, explained in the `spack.bootstrap.core` module docstring, "core" dependencies are bootstrapped with the current ad-hoc method. All the other dependencies are instead bootstrapped using a Spack environment that lives in a directory specific to the interpreter and the architecture being used.
2022-12-05Update packages (#34344)Sam Grayson2-1/+10
2022-12-05graphite2: add dependency on freetype (#34292)Glenn Johnson1-0/+1
2022-12-05berkeleygw: add back python dependencies and tweak testsuite (#34125)Miguel Dias Costa1-5/+28
* slightly raise tolerance of some tests
2022-12-05SWIG: new version 4.1.0 (#34250)Seth R. Johnson2-14/+39
2022-12-05psrcat: fixed typo/undefined variable problem (#34334)downloadico1-1/+1
replaced the reference to the undefined "bindir" variable with prefix.bin
2022-12-05pharokka and py-phanotate: new packages (#34333)Luke Diorio-Toth2-0/+55
* pharokka and py-phanotate: new packages * move libxcrypt edit I don't need libxcrypt when not building dev infernal. Moving to a different PR
2022-12-05jellyfish: add variants for python and ruby bindings (#33832)Bernhard Kaindl1-7/+22
Co-authored-by: teachers-uk-net <stuart.morrison@kcl.ac.uk>
2022-12-05cray-mpich: fix dependencies for externals from manifest (#34231)Peter Scheibel1-0/+3
The cray manifest shows dependency information for cray-mpich, which we never previously cared about because it can only be used as an external. This updates Spack's dependency information to make cray-mpich specs read in from the cray external manifest usable.
2022-12-05redis: newer version and added TLS support (#34230)Loïc Pottier1-1/+33
Signed-off-by: Loïc Pottier <pottier1@llnl.gov> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-12-05py-nodeenv: add 1.7.0 (#34314)Manuela Kuhn1-0/+2
2022-12-05py-num2words: add 0.5.12 (#34315)Manuela Kuhn1-0/+1
2022-12-05Drop support for older rocm releases - 4.5.0 till 5.0.2 (#34264)Sreenivasa Murthy Kolam46-192/+955
* initial changes for rocm recipes * drop support for older releases * drop support for older rocm releases - add more recipes * drop support for older releases * address style issues * address style error * fix errors * address review comments
2022-12-05Added plumed version 2.8.1 including gromacs compatibility (#34268)Hector Martinez-Seara2-2/+14
* Added plumed version 2.8.1 including gromacs compatibility * Corrected ~mpi and +mpi variants in new depends * Fixed regression logic plumed+gromacs@2020.6 support
2022-12-05LAMMPS: Add new versions (#32522)Richard Berger1-27/+142
* LAMMPS: Add version 20220803 and 20220623.1 * LAMMPS: Add 20220915, 20221103, and 20220623.2
2022-12-05feat(Hermes)!: add yaml-cpp dependency (#34330)H. Joe Lee1-0/+1
The 0.9.0-beta requires yaml-cpp for parsing the configuration file format in YAML. P.S. I'm using https://www.conventionalcommits.org/en/v1.0.0/#specification for this commit message.
2022-12-05Add packages related to the LWA software stack (#34112)downloadico4-0/+171
* epsic: add epsic package to spack * psrcat: add psrcat to spack * psrchive: add psarchive to spack * tempo: add tempo package to spack
2022-12-05clingo: add version 5.6.2 (#34317)Todd Gamblin1-1/+1
See release notes at https://github.com/potassco/clingo/releases/tag/v5.6.2
2022-12-05Add the very first version of cernlib package (#33911)andriish1-0/+28
* Add the very first version of cernlib * Update package.py * Update package.py Co-authored-by: Andrii Verbytskyi <andriish@pcatlas18.mpp.mpg.de>
2022-12-05py-nbclassic: add 0.4.8 and new package py-notebook-shim (#34320)Manuela Kuhn2-2/+46
* py-nbclassic: add 0.4.8 and new package py-notebook-shim * Add missing dependencies
2022-12-05vermin: remove all novm comments from code (#34308)Todd Gamblin23-26/+26
All the vermin annotations we were using were for optional features introduced in early Python 3 versions. We no longer need any of them, as we only support Python 3.6+. If we start optionally using features from newer Pythons than 3.6, we will need more vermin annotations. Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com> Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-12-05py-llvmlite: add 0.39.1 (#34318)Manuela Kuhn1-0/+2
2022-12-05spectre: add v2022.12.02 (#34277)SXS Bot1-0/+3
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com>
2022-12-05Thermo4PFM: new package (#34287)Jean-Luc Fattebert1-0/+19
2022-12-05gurobi: add v10.0.0, v9.5.2 (#34291)Glenn Johnson1-0/+2
2022-12-05freeglut: add dependency on libxxf86vm (#34293)Glenn Johnson1-0/+1
2022-12-05wannier90: gfortran-10 support and libs property (#34278)Glenn Johnson1-0/+10
2022-12-05helics: add v3.3.2 (#34297)HELICS-bot1-0/+1
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-12-05mmseqs2: new package (#34189)Luke Diorio-Toth1-0/+39
2022-12-05py-torch: fix patching on ppc64le (#34283)Adam J. Stewart1-14/+21
2022-12-05Add conflicts between gcc@12.2.0 and rocblas@5.2.1:5.2.3 (#34217)Auriane R1-0/+4
* Add conflicts with gcc@12.2.0 * Add more links for reference
2022-12-05web: remove checks for SSL verification support (#34307)Todd Gamblin1-31/+5
We no longer support Python <3.6, so we don't need to check whether Python supports SSL verification in `spack.util.web`. - [x] Remove a bunch of logic we needed to appease Python 2
2022-12-05py-mne: add 1.2.2, 1.2.3 and dependency packages (#34295)Manuela Kuhn3-4/+66
* py-mne: add 1.2.2 and depencendy packages * py-mne: add 1.2.3 * Remove unnecessary when statement
2022-12-04typing: move from comment annotations to Python 3.6 annotations (#34305)Todd Gamblin39-134/+118
We've stopped supporting Python 2, and contributors are noticing that our CI no longer allows Python 2.7 comment type hints. They end up having to adapt them, but this adds extra unrelated work to PRs. - [x] Move to 3.6 type hints across the entire code base
2022-12-04py-torchmetrics: add v0.11.0 (#34220)Adam J. Stewart1-2/+2
2022-12-03py-tensorflow: patch for cuBLAS error (#34279)Glenn Johnson1-0/+13
2022-12-02Use correct method for selecting compiler names. (#34175)wspear1-4/+3
2022-12-02aws-parallelcluster: Add v2.11.9 (#34270)Enrico Usai1-1/+2
2022-12-02doxygen: add build-tools tag (#34249)Seth R. Johnson1-0/+4
* doxygen: add build-tool tag This allows it to be included automatically as an external. No one links against doxygen so this should be ok. * doxygen: add self as maintainer
2022-12-02vecgeom: add new 1.2.1 version (#34240)Ben Morgan1-0/+6
* vecgeom: add new 1.2.1 version * vecgeom: introduce conflict between gcc/cuda Recent tests of vecgeom in Spack environments have shown that the build with +cuda fails with GCC >= 11.3 and CUDA < 11.7 with error ...lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/serializeintrin.h(41): error: identifier "__builtin_ia32_serialize" is undefined 1 error detected in the compilation of ".../VecGeom/source/BVHManager.cu". Other GCC/CUDA combinations appear o.k. Avoid this error in spack, and document it for users, with a conflict directive to express the restriction.
2022-12-02add mochi-margo 0.11.1 point release (#34271)Phil Carns1-0/+1
2022-12-02libvips: adding version 8.13.3 (#34228)snehring1-0/+1
2022-12-02py-alphafold: update to 2.2.4, update dependencies (#33876)Andrew W Elble10-32/+92
* py-alphafold: update to 2.2.4, update dependencies * style
2022-12-02py-nilearn: fix dependency version (#34284)Manuela Kuhn1-1/+1
2022-12-02patch command: add concretizer args (#34282)Greg Becker2-1/+2
* patch command: add concretizer args * tab completion
2022-12-02ROOT: add math/gsl conflict and change version-dependent features to ↵Seth R. Johnson1-10/+7
conditional variants (#34244) * ROOT: add GSL/math dependency * ROOT: use conditional variants instead of conflicts
2022-12-02py-neurokit2: add 0.2.2 (#34267)Manuela Kuhn1-0/+2
2022-12-02feat(Hermes): update version to 0.9.0-beta. (#34243)H. Joe Lee1-3/+3
* feat(Hermes): update version to 0.9.0-beta. This is the latest release. * feat(Hermes): fix checksum. Credit: @tldahlgren
2022-12-02Docs: Minor change 'several'->'over a dozen' (#34274)Tamara Dahlgren1-1/+1
2022-12-02concretizer: use only `attr()` for Spec attributes (#31202)Todd Gamblin4-430/+409
All Spec attributes are now represented as `attr(attribute_name, ... args ...)`, e.g. `attr(node, "hdf5")` instead of `node("hdf5")`, as we *have* to maintain the `attr()` form anyway, and it simplifies the encoding to just maintain one form of the Spec information. Background ---------- In #20644, we unified the way conditionals are done in the concretizer, but this introduced a nasty aspect to the encoding: we have to maintain everything we want in general conditions in two forms: `predicate(...)` and `attr("predicate", ...)`. For example, here's the start of the table of spec attributes we had to maintain: ```prolog node(Package) :- attr("node", Package). virtual_node(Virtual) :- attr("virtual_node", Virtual). hash(Package, Hash) :- attr("hash", Package, Hash). version(Package, Version) :- attr("version", Package, Version). ... ``` ```prolog attr("node", Package) :- node(Package). attr("virtual_node", Virtual) :- virtual_node(Virtual). attr("hash", Package, Hash) :- hash(Package, Hash). attr("version", Package, Version) :- version(Package, Version). ... ``` This adds cognitive load to understanding how the concretizer works, as you have to understand the equivalence between the two forms of spec attributes. It also makes the general condition logic in #20644 hard to explain, and it's easy to forget to add a new equivalence to this list when adding new spec attributes (at least two people have been bitten by this). Solution -------- - [x] remove the equivalence list from `concretize.lp` - [x] simplify `spec_clauses()`, `condition()`, and other functions in `asp.py` that need to deal with `Spec` attributes. - [x] Convert all old-form spec attributes in `concretize.lp` to the `attr()` form - [x] Simplify `display.lp`, where we also had to maintain a list of spec attributes. Now we only need to show `attr/2`, `attr/3`, and `attr/4`. - [x] Simplify model extraction logic in `asp.py`. Performance ----------- This seems to result in a smaller grounded problem (as there are no longer duplicated `attr("foo", ...)` / `foo(...)` predicates in the program), but it also adds a slight performance overhead vs. develop. Ultimately, simplifying the encoding will be a win, particularly for improving error messages. Notes ----- This will simplify future node refactors in `concretize.lp` (e.g., not identifying nodes by package name, which we need for separate build dependencies). I'm still not entirely used to reading `attr()` notation, but I thnk it's ultimately clearer than what we did before. We need more uniform naming, and it's now clear what is part of a solution. We should probably continue making the encoding of `concretize.lp` simpler and more self-explanatory. It may make sense to rename `attr` to something like `node_attr` and to simplify the names of node attributes. It also might make sense to do something similar for other types of predicates in `concretize.lp`.