summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-12Bump CMake version to 3.25.1 (#34336)John W. Parent1-0/+1
2022-12-12intel-oneapi-* conflicts for non linux, x86 (#34441)Robert Cohn17-700/+663
2022-12-12expat: Add latest release 2.5.0 with security fixes (#34453)Sebastian Pipping1-5/+12
2022-12-12glib: Add list_url+list_depth to list versions (#33904)Stephen Sachs1-0/+2
Co-authored-by: Bernhard Kaindl <contact@bernhard.kaindl.dev>
2022-12-11openblas: fix bound :7.3 to :7.3.0 (#34443)Harmen Stoppels1-1/+3
This patch: https://gcc.gnu.org/legacy-ml/gcc-patches/2018-01/msg01962.html is actually in Amazon Linux GCC 7.3.1, which we use in CI. So we should not hold openblas back because of it. Old versions of OpenBLAS fail to detect the host arch of some of the AVX512 cpus of build nodes, causing build failures. Of course we should try to set ARCH properly in OpenBLAS to avoid that it looks up the build arch, but that's quite some work.
2022-12-10`pkg grep`: use `capfd` instead of executable for testsTodd Gamblin1-5/+5
2022-12-10Revert "Use `urllib` handler for `s3://` and `gs://`, improve `url_exists` ↵Todd Gamblin4-77/+121
through HEAD requests (#34324)" This reverts commit db8f115013d3a6991da3f92aeee3e49327a24833.
2022-12-10py-scipy: print error message if no Fortran compiler is available (#34439)Michael Kuhn1-0/+5
2022-12-10py-scikit-learn: add v1.2.0 (#34408)Adam J. Stewart1-22/+18
2022-12-10py-setuptools-scm-git-archive: add 1.4 (#34422)Manuela Kuhn1-0/+1
2022-12-10py-{boto3,botocore,jmespath,s3transfer} bump (#34423)Harmen Stoppels4-14/+56
2022-12-10valgrind: add v3.20.0, mark macOS conflict (#34436)Adam J. Stewart1-2/+9
2022-12-09Support for building Pmix with Debian/Ubuntu external dependencies (#32690)Abhik Sarkar3-0/+36
* Debian like distros use multiarch implementation spec https://wiki.ubuntu.com/MultiarchSpec Instead of being limited to /usr/lib64, architecture based lib directories are used. For instance, under ubuntu a library package on x86_64 installs binaries under /usr/lib/x86_64-linux-gnu. Building pmix with external dependencies like hwloc or libevent fail as with prefix set to /usr, that prefix works for headers and binaries but does not work for libraries. The default location for library /usr/lib64 does not hold installed binaries. Pmix build options --with-libevent and --with-libhwloc allow us to specify dependent library locations. This commit is an effort to highlight and resolve such an issue when a users want to use Debian like distro library packages and use spack to build pmix. There maybe other packages that might be impacted in a similar way. * Adding libs property to hwloc and libevent and some cleanups to pmix patch * Fixing style and adding comment on Pmix' 32-bit hwloc version detection issue
2022-12-10Use `urllib` handler for `s3://` and `gs://`, improve `url_exists` through ↵Harmen Stoppels4-121/+77
HEAD requests (#34324) * `url_exists` improvements (take 2) Make `url_exists` do HEAD request for http/https/s3 protocols Rework the opener: construct it once and only once, dynamically dispatch to the right one based on config.
2022-12-09py-simplejson: add 3.18.0 (#34430)Manuela Kuhn1-1/+2
2022-12-09package/qt-base: add conflict for older gcc (#34420)Sinan1-0/+3
2022-12-09geant4: version bumps for Geant4 11.1.0 release (#34428)Ben Morgan4-5/+26
* geant4: version bumps for Geant4 11.1.0 - Version bumps for new data libraries - g4ndl 4.7 - g4emlow 8.2 - Add geant4-data@11.1.0 - Checksum new Geant4 11.1.0 release - Limit +python variant to maximum of :11.0 due to removal of Geant4Py in 11.1 - Update CLHEP dependency to at least 2.4.6.0 for this release - Update VecGeom dependency to at least 1.2.0 for this release, closing version ranges for older releases to prevent multiple versions satisfying requirement * geant4: correct max version for python support
2022-12-09gitlab ci: more resources for paraview and py-torch (#34412)Scott Wittenburg4-1/+6
2022-12-09[darshan-runtime, darshan-util, py-darshan]: darshan 3.4.1 release updates ↵shanedsnyder3-2/+24
(#34294)
2022-12-09New package: py-torchdiffeq (#34409)Jen Herting1-0/+20
* [py-torchdiffeq] new package * [@spackbot] updating style on behalf of qwertos Co-authored-by: qwertos <qwertos@users.noreply.github.com>
2022-12-09py-nbformat: add 5.7.0 and new package py-hatch-nodejs-version (#34361)Manuela Kuhn2-6/+29
2022-12-09py-setupmeta: add 3.3.2 (#34421)Manuela Kuhn1-0/+1
2022-12-09new command: `spack pkg grep` to search package files (#34388)Todd Gamblin5-7/+137
It's very common for us to tell users to grep through the existing Spack packages to find examples of what they want, and it's also very common for package developers to do it. Now, searching packages is even easier. `spack pkg grep` runs grep on all `package.py` files in repos known to Spack. It has no special options other than the search string; all options passed to it are forwarded along to `grep`. ```console > spack pkg grep --help usage: spack pkg grep [--help] ... positional arguments: grep_args arguments for grep options: --help show this help message and exit ``` ```console > spack pkg grep CMakePackage | head -3 /Users/gamblin2/src/spack/var/spack/repos/builtin/packages/3dtk/package.py:class _3dtk(CMakePackage): /Users/gamblin2/src/spack/var/spack/repos/builtin/packages/abseil-cpp/package.py:class AbseilCpp(CMakePackage): /Users/gamblin2/src/spack/var/spack/repos/builtin/packages/accfft/package.py:class Accfft(CMakePackage, CudaPackage): ``` ```console > spack pkg grep -Eho '(\S*)\(PythonPackage\)' | head -3 AwsParallelcluster(PythonPackage) Awscli(PythonPackage) Bueno(PythonPackage) ``` ## Return Value This retains the return value semantics of `grep`: * 0 for found, * 1 for not found * >1 for error ## Choosing a `grep` You can set the ``SPACK_GREP`` environment variable to choose the ``grep`` executable this command should use.
2022-12-09py-torchvision: fix typo in version restriction for ffmpeg (#34415)snehring1-1/+1
2022-12-09Add checksum for py-packaging11 0.12.3 (#34402)iarspider1-0/+2
2022-12-09Windows: reenable unit tests (#33385)John W. Parent24-135/+190
Unit tests on Windows are supposed to pass for any PR to pass CI. However, the return code for the unit test command was not being checked, which meant this check was always passing (effectively disabled). This PR * Properly checks the result of the unit tests and fails if the unit tests fail * Fixes (or disables on Windows) a number of tests which have "drifted" out of support on Windows since this check was effectively disabled
2022-12-09binary distribution: warn about issues (#34152)Harmen Stoppels1-3/+8
2022-12-09btop++: add new package (#34399)Massimiliano Culpo1-0/+26
2022-12-09Add checksum for py-onnxmltools 1.11.1 (#34400)iarspider1-0/+7
2022-12-09bugfix: `spack load` shell test can fail on macos (#34419)Todd Gamblin1-1/+2
At some point the `a` mock package became an `AutotoolsPackage`, and that means it depends on `gnuconfig` on macOS. This was causing one of our shell tests to fail on macOS because it was testing for `{a.prefix.bin}:{b.prefix.bin}` in `PATH`, but `gnuconfig` shows up between them. - [x] simplify the test to check `spack load --sh a` and `spack load --sh b` separately
2022-12-09Add pika-algorithms package and pika 0.11.0 (#34397)Mikael Simberg3-3/+59
* Add 20 as a valid option for cxxstd to fmt * Add pika 0.11.0 * Fix version constraint for p2300 variant in pika package * Add pika-algorithms package
2022-12-09s3: cache client instance (#34372)Harmen Stoppels4-78/+117
2022-12-08py-reportlab: add 3.6.12 (#34396)Manuela Kuhn1-0/+14
* py-reportlab: add 3.6.12 * Update var/spack/repos/builtin/packages/py-reportlab/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-12-08intel-mkl: It is only available for x86_64 (#34391)Bernhard Kaindl1-0/+4
2022-12-08bcache: Fix check for libintl to work correctly (#34383)Bernhard Kaindl1-1/+1
2022-12-08bash: add v5.2, readline patches (#34301)Adam J. Stewart3-94/+51
2022-12-08Cray manifest: automatically convert 'cray' platform to 'linux' (#34177)Peter Scheibel3-3/+39
* Automatically convert 'cray' platform to 'linux'
2022-12-08py-rdflib: add 6.2.0 (#34394)Manuela Kuhn1-1/+5
2022-12-08dlb: new package (#34211)Victor Lopez Herrero1-0/+44
2022-12-08Update hdf5 vol async version (#34376)Larry Knox1-0/+1
* Add version hdf5-vol-async@1.4
2022-12-08pixman: add libs property (#34281)Glenn Johnson1-0/+4
2022-12-08py-torch: fix build with gcc@12: (#34352)Michael Kuhn1-0/+9
2022-12-08libxcrypt: building @:4.4.17 requires automake@1.14:Brian Van Essen1-1/+1
2022-12-08Add texinfo dependency for binutils through version 2.38. (#34173)Jon Rood1-5/+2
2022-12-07Add recipe for singularity-hpc, py-spython (#34234)Marco De La Pierre2-0/+85
* adding recipe for singularity-hpc - 1st go * typo in singularity-hpc recipe * singularity-hpc, spython recipes: added platform variant * singularity-hpc, spython recipes: platform variant renamed to runtime * style fix * another style fix * yet another style fix (why are they not reported altogether) * singularity-hpc recipe: added Vanessa as maintainer * singularity-hpc recipe: add podman variant * singularity-hpc recipe: added variant for module system * shpc recipe: add version for py-semver dependency Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * py-spython recipe: no need to specify generic python dep for a python pkg * py-spython: py-requests not needed Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-12-07Windows: Prevent SameFileError when rpathing (#34332)John W. Parent1-4/+11
2022-12-07parser: refactor with coarser token granularity (#34151)Massimiliano Culpo14-1566/+1505
## Motivation Our parser grew to be quite complex, with a 2-state lexer and logic in the parser that has up to 5 levels of nested conditionals. In the future, to turn compilers into proper dependencies, we'll have to increase the complexity further as we foresee the need to add: 1. Edge attributes 2. Spec nesting to the spec syntax (see https://github.com/spack/seps/pull/5 for an initial discussion of those changes). The main attempt here is thus to _simplify the existing code_ before we start extending it later. We try to do that by adopting a different token granularity, and by using more complex regexes for tokenization. This allow us to a have a "flatter" encoding for the parser. i.e., it has fewer nested conditionals and a near-trivial lexer. There are places, namely in `VERSION`, where we have to use negative lookahead judiciously to avoid ambiguity. Specifically, this parse is ambiguous without `(?!\s*=)` in `VERSION_RANGE` and an extra final `\b` in `VERSION`: ``` @ 1.2.3 : develop # This is a version range 1.2.3:develop @ 1.2.3 : develop=foo # This is a version range 1.2.3: followed by a key-value pair ``` ## Differences with the previous parser ~There are currently 2 known differences with the previous parser, which have been added on purpose:~ - ~No spaces allowed after a sigil (e.g. `foo @ 1.2.3` is invalid while `foo @1.2.3` is valid)~ - ~`/<hash> @1.2.3` can be parsed as a concrete spec followed by an anonymous spec (before was invalid)~ ~We can recover the previous behavior on both ones but, especially for the second one, it seems the current behavior in the PR is more consistent.~ The parser is currently 100% backward compatible. ## Error handling Being based on more complex regexes, we can possibly improve error handling by adding regexes for common issues and hint users on that. I'll leave that for a following PR, but there's a stub for this approach in the PR. ## Performance To be sure we don't add any performance penalty with this new encoding, I measured: ```console $ spack python -m timeit -s "import spack.spec" -c "spack.spec.Spec(<spec>)" ``` for different specs on my machine: * **Spack:** 0.20.0.dev0 (c9db4e50ba045f5697816187accaf2451cb1aae7) * **Python:** 3.8.10 * **Platform:** linux-ubuntu20.04-icelake * **Concretizer:** clingo results are: | Spec | develop | this PR | | ------------- | ------------- | ------- | | `trilinos` | 28.9 usec | 13.1 usec | | `trilinos @1.2.10:1.4.20,2.0.1` | 131 usec | 120 usec | | `trilinos %gcc` | 44.9 usec | 20.9 usec | | `trilinos +foo` | 44.1 usec | 21.3 usec | | `trilinos foo=bar` | 59.5 usec | 25.6 usec | | `trilinos foo=bar ^ mpich foo=baz` | 120 usec | 82.1 usec | so this new parser seems to be consistently faster than the previous one. ## Modifications In this PR we just substituted the Spec parser, which means: - [x] Deleted in `spec.py` the `SpecParser` and `SpecLexer` classes. deleted `spack/parse.py` - [x] Added a new parser in `spack/parser.py` - [x] Hooked the new parser in all the places the previous one was used - [x] Adapted unit tests in `test/spec_syntax.py` ## Possible future improvements Random thoughts while working on the PR: - Currently we transform hashes and files into specs during parsing. I think we might want to introduce an additional step and parse special objects like a `FileSpec` etc. in-between parsing and concretization.
2022-12-07SW4: new package (#34252)Houjun Tang1-0/+75
* sw4 * use h5z-zfp develop * update for macos * Update package.py Co-authored-by: Houjun Tang <tang@Houjuns-MacBook-Pro.local>
2022-12-07py-numba: add 0.56.4 (#34362)Manuela Kuhn1-19/+22
2022-12-07ftk: add 0.0.7.1 (#34146)Hanqi Guo1-2/+9