summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-09-16cc: Use parameter expansion instead of basename (#24509)Michael Kuhn1-1/+1
While debugging #24508, I noticed that we call `basename` in `cc`. The same can be achieved by using Bash's parameter expansion, saving one external process per call. Parameter expansion cannot replace basename for directories in some cases, but is guaranteed to work for executables.
2021-09-16Recommend Git's manyFiles feature (#25977)Michael Kuhn3-3/+3
Git 2.24 introduced a feature flag for repositories with many files, see: https://github.blog/2019-11-03-highlights-from-git-2-24/#feature-macros Since Spack's Git repository contains roughly 8,500 files, it can be worthwhile to enable this, especially on slow file systems such as NFS: ``` $ hyperfine --warmup 3 'cd spack-default; git status' 'cd spack-manyfiles; git status' Benchmark #1: cd spack-default; git status Time (mean ± σ): 3.388 s ± 0.095 s [User: 256.2 ms, System: 625.8 ms] Range (min … max): 3.168 s … 3.535 s 10 runs Benchmark #2: cd spack-manyfiles; git status Time (mean ± σ): 168.7 ms ± 10.9 ms [User: 98.6 ms, System: 126.1 ms] Range (min … max): 144.8 ms … 188.0 ms 19 runs Summary 'cd spack-manyfiles; git status' ran 20.09 ± 1.42 times faster than 'cd spack-default; git status' ```
2021-09-16Bump sirius 7.2.x (#25939)Harmen Stoppels1-0/+2
2021-09-16Add a deprecation warning when using the old concretizer (#25966)Massimiliano Culpo1-0/+8
2021-09-16Update HPX package (#25775)Mikael Simberg2-40/+82
* Add support for C++20 to HPX package * Enable unity builds in HPX package when available * Add support for HIP/ROCm to HPX package * Rearrange and update required versions for HPX package * Add C++20 option to asio package
2021-09-16Improve bootstrapping docs a hair (#25962)Harmen Stoppels2-50/+51
2021-09-16Fix NameError in foreground/background test (#25967)Harmen Stoppels1-2/+4
2021-09-16Inform the user about bootstrapping (#25964)Harmen Stoppels1-0/+3
2021-09-15bedops: Fix checksum for 2.4.40 (#25958)jacorvar1-1/+1
Fixes #25951
2021-09-15py-pybind11: use PythonPackage install method (#25650)Adam J. Stewart1-6/+5
2021-09-15build(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 (#25925)dependabot[bot]1-4/+4
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-15Raise exception when 1+ stand-alone tests fail (#25857)Tamara Dahlgren1-0/+14
2021-09-15Added LvArray 0.2.2 (#25950)Ben Corbett1-0/+1
2021-09-14Make clingo the default solver (#25502)Massimiliano Culpo7-18/+41
Modifications: - [x] Change `defaults/config.yaml` - [x] Add a fix for bootstrapping patchelf from sources if `compilers.yaml` is empty - [x] Make `SPACK_TEST_SOLVER=clingo` the default for unit-tests - [x] Fix package failures in the e4s pipeline Caveats: 1. CentOS 6 still uses the original concretizer as it can't connect to the buildcache due to issues with `ssl` (bootstrapping from sources requires a C++14 capable compiler) 1. I had to update the image tag for GitlabCI in e699f14. 1. libtool v2.4.2 has been deprecated and other packages received some update
2021-09-14Add a __reduce__ method to Environment (#25678)Adam J. Stewart2-0/+27
* Add a __reduce__ method to Environment * Add unit test * Convert Path to str
2021-09-14Adding ability to compare git references to spack install (#24639)Vanessasaurus12-43/+638
This will allow a user to (from anywhere a Spec is parsed including both name and version) refer to a git commit in lieu of a package version, and be able to make comparisons with releases in the history based on commits (or with other commits). We do this by way of: - Adding a property, is_commit, to a version, meaning I can always check if a version is a commit and then change some action. - Adding an attribute to the Version object which can lookup commits from a git repo and find the last known version before that commit, and the distance - Construct new Version comparators, which are tuples. For normal versions, they are unchanged. For commits with a previous version x.y.z, d commits away, the comparator is (x, y, z, '', d). For commits with no previous version, the comparator is ('', d) where d is the distance from the first commit in the repo. - Metadata on git commits is cached in the misc_cache, for quick lookup later. - Git repos are cached as bare repos in `~/.spack/git_repos` - In both caches, git repo urls are turned into file paths within the cache If a commit cannot be found in the cached git repo, we fetch from the repo. If a commit is found in the cached metadata, we do not recompare to newly downloaded tags (assuming repo structure does not change). The cached metadata may be thrown out by using the `spack clean -m` option if you know the repo structure has changed in a way that invalidates existing entries. Future work will include automatic updates. # Finding previous versions Spack will search the repo for any tags that match the string of a version given by the `version` directive. Spack will also search for any tags that match `v + string` for any version string. Beyond that, Spack will search for tags that match a SEMVER regex (i.e., tags of the form x.y.z) and interpret those tags as valid versions as well. Future work will increase the breadth of tags understood by Spack For each tag, Spack queries git to determine whether the tag is an ancestor of the commit in question or not. Spack then sorts the tags that are ancestors of the commit by commit-distance in the repo, and takes the nearest ancestor. The version represented by that tag is listed as the previous version for the commit. Not all commits will find a previous version, depending on the package workflow. Future work may enable more tangential relationships between commits and versions to be discovered, but many commits in real world git repos require human knowledge to associate with a most recent previous version. Future work will also allow packages to specify commit/tag/version relationships manually for such situations. # Version comparisons. The empty string is a valid component of a Spack version tuple, and is in fact the lowest-valued component. It cannot be generated as part of any valid version. These two characteristics make it perfect for delineating previous versions from distances. For any version x.y.z, (x, y, z, '', _) will be less than any "real" version beginning x.y.z. This ensures that no distance from a release will cause the commit to be interpreted as "greater than" a version which is not an ancestor of it. Signed-off-by: vsoch <vsoch@users.noreply.github.com> Co-authored-by: vsoch <vsoch@users.noreply.github.com> Co-authored-by: Gregory Becker <becker33@llnl.gov> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-09-15gcc: apply backported fixes to v4.9.3 (#25945)David Beckingsale1-1/+1
2021-09-14dealii: add version 9.3.1 (#25915)Satish Balay1-0/+1
2021-09-14Pipelines: (Re)enable E4S on Power stack (#25921)Scott Wittenburg2-21/+21
Pipelines: (Re)enable E4S on Power stack
2021-09-14Add missing mumps TPL commands (#25940)Weston Ortiz1-0/+1
2021-09-14Update spack monitor to support new spec (#25928)Vanessasaurus1-1/+3
This PR coincides with tiny changes to spack to support spack monitor using the new spec the corresponding spack monitor PR is at https://github.com/spack/spack-monitor/pull/31. Since there are no changes to the database we can actually update the current server fairly easily, so either someone can test locally or we can just update and then test from that (and update as needed). Signed-off-by: vsoch <vsoch@users.noreply.github.com> Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-09-14Add py-pot with patch (#25712)Harmen Stoppels2-0/+88
2021-09-14reframe: set PYTHONPATH at runtime (#25842)Harmen Stoppels1-0/+1
2021-09-14ocaml: add patch for clang@11: (#25886)Valentin Volkl1-0/+5
2021-09-14dcmtk: add v3.6.4, v3.6.5, v3.6.6 (#25923)Ben Darwin1-0/+3
2021-09-14trilinos: variant for libx11 (#25823)Weston Ortiz1-8/+21
2021-09-13added new version of parallelio library (#25916)Edward Hartnett1-1/+2
2021-09-13Rename camp 'main' version (#25918)David Beckingsale1-1/+1
2021-09-13ESMF, NEMSIO and UFS-UTILS changes. (#25846)Timothy Brown3-1/+10
* ESMF and NEMSIO changes. - Updating ESMF to set the COMM correctly when using Intel oneapi. - Explicitly setting the CMake MPI Fortran compiler for NEMSIO. * Update UFS utils CMake to use MPI_<lang>_COMPILER.
2021-09-13Fix environment reading from lockfile to trust written hashes (#25879)Greg Becker3-10/+57
#22845 revealed a long-standing bug that had never been triggered before, because the hashing algorithm had been stable for multiple years while the bug was in production. The bug was that when reading a concretized environment, Spack did not properly read in the build hashes associated with the specs in the environment. Those hashes were recomputed (and as long as we didn't change the algorithm, were recomputed identically). Spack's policy, though, is never to recompute a hash. Once something is installed, we respect its metadata hash forever -- even if internally Spack changes the hashing method. Put differently, once something is concretized, it has a concrete hash, and that's it -- forever. When we changed the hashing algorithm for performance in #22845 we exposed the bug. This PR fixes the bug at its source, but properly reading in the cached build hash attributes associated with the specs. I've also renamed some variables in the Environment class methods to make a mistake of this sort more difficult to make in the future. * ensure environment build hashes are never recomputed * add comment clarifying reattachment of env build hashes * bump lockfile version and include specfile version in env meta * Fix unit-test for v1 to v2 conversion Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-13petsc, petsc4py: add version 3.15.4 (#25912)Satish Balay2-0/+2
2021-09-13Avoid hidden circular dependencies in spack.architecture (#25873)Massimiliano Culpo23-478/+492
* Refactor platform etc. to avoid circular dependencies All the base classes in spack.architecture have been moved to the corresponding specialized subpackages, e.g. Platform is now defined within spack.platforms. This resolves a circular dependency where spack.architecture was both: - Defining the base classes for spack.platforms, etc. - Collecting derived classes from spack.platforms, etc. Now it dopes only the latter. * Move a few platform related functions to "spack.platforms" * Removed spack.architecture.sys_type() * Fixup for docs * Rename Python modules according to review
2021-09-13ci: Add ecp-data-vis-sdk CI pipeline (#22179)Chuck Atkins2-0/+92
* ci: Add a minimal subset of the ECP Data & Vis SDK CI pipeline * ci: Expand the ECP Data & Vis SDK pipeline with more variants
2021-09-13Disable dvsdk variants (#25889)Chuck Atkins1-11/+14
* dvsdk: Turn off variants by default This allows an install to more easily be explicit about which pieces to turn on as more variants are added * dvsdk: effectively disable the broken variants
2021-09-13kokkos: fail gracefully on missing microarch (#25910)Seth R. Johnson2-26/+19
Fall back on known parent microarches (as determined by spack's built-in archspec knowledge). Clsoes spack/spack#25907 .
2021-09-13Switch http to https where latter exists (#25672)Tamara Dahlgren339-537/+537
* Switch http to https where latter exists * Hopefully restore original permissions * Add URL updates after include the -L curl option * Manual corrections to select URL format strings
2021-09-13New Version: mothur@1.46.1 (#25850)Desmond Orton1-0/+1
2021-09-13trilinos: add conflicts for fortran (#25911)Seth R. Johnson1-0/+4
2021-09-13Add a master branch for gnuconfig (#25866)Harmen Stoppels1-0/+2
2021-09-13Log4cxx add v0.12.0, convert to CMakePackage (#25875)Nic McDonald1-13/+10
2021-09-13ravel: fix missing header file (#25906)Tim Gymnich2-1/+12
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-13Make sure perl doesn't run into recompile with fPIC linker errors (#25834)Harmen Stoppels1-2/+6
2021-09-13draco: add v7.11.0 (#24631)Kelly (KT) Thompson1-4/+7
2021-09-13py-kornia: add new package (#25844)Adam J. Stewart1-0/+20
2021-09-13Add SYCL build option to ArborX (#25736)Daniel Arndt1-1/+2
2021-09-13py-glmnet: new package (#25711)Harmen Stoppels1-0/+26
2021-09-13hpx, kokkos: add consistent variants for C++ std (#25535)Mikael Simberg2-4/+13
* Add cuda_constexpr variant to Kokkos package * Don't require nvcc_wrapper in Kokkos package when using Cray compiler
2021-09-13HiPACE: Update openPMD dep, add v21.09 (#25698)Axel Huebl2-5/+4
2021-09-13Bugfix: Correct checksum's sha256 when retrieve from remote (#25831)Tamara Dahlgren1-0/+10
2021-09-13Tell gtk-doc where the XML catalog is (#25569)Glenn Johnson1-0/+6
* Tell gtk-doc where the XML catalog is The gtk-doc configure script has an option for specifying the path to the XML catalog. If this is not set the configure script will search a defined set of directories for a catalog file and will set `with_xml_catalog` based on that. Only if no system catalog is found will the XML_CATALOG_FILES be looked at. In order to make sure that the spack provided catalog is used, pass the `--with-xml-catalog` option. * Use the property from docbook-xml