summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-03-26spfft package: add version 1.1.0 (#43318)Simon Frasch1-2/+15
2024-03-26glvis: fix spack issue #42839 (#43369)eugeneswalker1-0/+3
* glvis: fix spack issue #42839 * add issue link
2024-03-26gromacs: add new versions 2024, 2024.1; fix license (#43366)Andrey Alekseenko1-1/+4
2024-03-26xrootd: add a dependency on pkgconfig when building with +davix (#43339)Juan Miguel Carceller1-0/+1
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-03-26buildcache sync: manifest-glob with arbitrary destination (#41284)kwryankrattiger4-13/+103
* buildcache sync: manifest-glob with arbitrary destination The current implementation of the --manifest-glob is a bit restrictive requiring the destination to be known by the generation stage of CI. This allows specifying an arbitrary destination mirror URL. * Add unit test for buildcache sync with manifest * Fix test and arguments for manifest-glob with override destination * Add testing path for unused mirror argument
2024-03-26Allow unit test to work on Apple M1/M2 (#43363)Massimiliano Culpo18-448/+278
* Remove a few compilers from static test data These compilers were used only in a bunch of tests, so they are added only there. * Remove clang@3.3 from unit test configuration * Parametrize compilers.yaml * Remove specially named gcc from static data The compilers are used in two tests * Remove apple-clang and macOS compilers from static data The compiler was used only in multimethod tests * Remove clang@3.5 (compiler seems to be unused) * Remove gcc@4.4.0 (compiler seems to be unused) * Exclude x86_64 tests on other architectures * Mark two tests as for clingo only * Update version syntax in compilers.yaml * Parametrize tcl tests on architectures * Parametrize lmod tests on architectures * Substitute gcc@4.5.0 with gcc@4.8.0 so it can be used on aarch64 * Fix a few issues with aarch64 and unit-tests
2024-03-26ci: add developer-tools-manylinux2014 stack (#43128)eugeneswalker2-0/+113
* ci: add developer-tools-manylinux2014 stack * add libtree, patchelf
2024-03-26py-nibabel: add new version 5.2.1 (#43335)Christopher Christofi1-1/+7
2024-03-26cuda: add 12.4.0, 12.3.2, 12.3.1 and 12.2.2 (#42748)pauleonix3-0/+63
Add conflicts to ginkgo and petsc to avoid build failures with cuda@12.4 Co-authored-by: pauleonix <pauleonix@users.noreply.github.com>
2024-03-25hpctoolkit: add version 2024.01.1 (#43353)Mark W. Krentel1-3/+4
Add version 2024.01.1. Adjust the dependencies for develop that no longer uses libmonitor.
2024-03-25py-nilearn: add new version (#43332)Christopher Christofi1-2/+7
* py-nilearn: add new version * add maintainers and license
2024-03-26py-keras: add v3.1.1 (#43283)Adam J. Stewart2-1/+26
2024-03-25py-trx-python: add new package with version 0.2.9 (#43333)Christopher Christofi1-0/+28
2024-03-25seacas: fix linking on Windows (#43356)John W. Parent1-1/+1
2024-03-25spglib: add version 2.3.1 (#43345)Rocco Meli1-0/+1
2024-03-25Update gftl, pflogger to match GFE 1.14 (#43291)Matthew Thompson2-0/+2
2024-03-25py-mne: add new version (#43334)Christopher Christofi1-0/+10
2024-03-25Updated version (#43343)potter-s1-0/+1
Co-authored-by: Simon Potter <sp39@sanger.ac.uk>
2024-03-25go: add v1.22.1 (#43337)Alec Scott1-0/+1
2024-03-25pyscf: new dependency bounds for pyscf, new version (#43300)liam-o-marsh1-3/+6
2024-03-25add command_line scope to help metavar (#42890)Danny McClanahan1-1/+1
It's now possible to add config on the command line with `spack -c <CONFIG_VARS> ...`, but the new `command_line` scope isn't reflected in the help output for `--scope`: ```bash > spack help config ... --scope {defaults,system,site,user}[/PLATFORM] or env:ENVIRONMENT configuration scope to read/modify ... ```
2024-03-25r-rcpp: add version 1.0.11 and 1.0.12 (#43330)Juan Miguel Carceller1-0/+2
2024-03-25strip url: fix whl suffix, remove exe (#43344)Harmen Stoppels2-8/+7
2024-03-24Add `intel-oneapi-runtime`, allow injecting virtual dependencies (#42062)Massimiliano Culpo12-70/+269
This PR adds: - A new runtime for `%oneapi` compilers, called `intel-oneapi-runtime` - Information to both `gcc-runtime` and `intel-oneapi-runtime`, to ensure that we don't mix compilers using different soname for either `libgfortran` or `libifcore` To do so, the following internal mechanisms have been implemented: - Possibility to inject virtual dependencies from the `runtime_constraints` callback on packages Information has been added to `gcc-runtime` to provide the correct soname under different conditions on its `%gcc`. Rules injected into the solver looks like: ```prolog % Add a dependency on 'gfortran@5' for nodes compiled with gcc@=13.2.0 and using the 'fortran' language attr("dependency_holds", node(ID, Package), "gfortran", "link") :- attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). attr("virtual_node", node(RuntimeID, "gfortran")) :- attr("depends_on", node(ID, Package), ProviderNode, "link"), provider(ProviderNode, node(RuntimeID, "gfortran")), attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). attr("node_version_satisfies", node(RuntimeID, "gfortran"), "5") :- attr("depends_on", node(ID, Package), ProviderNode, "link"), provider(ProviderNode, node(RuntimeID, "gfortran")), attr("node", node(ID, Package)), attr("node_compiler", node(ID, Package), "gcc"), attr("node_compiler_version", node(ID, Package), "gcc", "13.2.0"), not external(node(ID, Package)), not runtime(Package), attr("language", node(ID, Package), "fortran"). ```
2024-03-24openmpi: Add new variant: romio-filesystem=string (#43265)Loic Hausammann1-0/+25
Co-authored-by: loikki <loic.hausammann@id.ethz.ch>
2024-03-24py-plotly: Add versions up to 5.20 (#43284)potter-s1-1/+8
2024-03-24openCARP: Add v15.0 packages (#43299)Marie Houillon3-4/+11
Co-authored-by: openCARP consortium <info@opencarp.org>
2024-03-24py-kaleido: Add MacOS build, fix checksums (#43309)Gavin John1-5/+58
* py-kaledio: Fix completely borked package.py * Readd stuff I forgot to add * And one last missing thing * Remove python restriction * [@spackbot] updating style on behalf of Pandapip1 * Add MacOS build * Fix checksum * Handle all supported OSes * Split imports * Remove extra version stuff
2024-03-23paraview: fix range of exodusII-netcdf4.9.0.patch (#42926)fgava901-6/+11
Co-authored-by: Gava, Francesco <francesco.gava@mclaren.com>
2024-03-23zlib-ng: New variants: +shared and +pic (#42796)Alex Richert1-1/+17
2024-03-23py-line-profiler: Add 4.1.2 and 3.5.1 with their deps (#43156)Sinan2-2/+37
Co-authored-by: sbulut <sbulut@3vgeomatics.com> Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-03-23suite-sparse: Add version 7.3.1 (#43328)Davide1-3/+17
2024-03-23py-torch-nvidia-apex: @3.11: Add config_settings(PEP517), add missing ↵Auriane R1-0/+10
py-packaging (#43306)
2024-03-23BLT: add new version 0.6.2 (#43257)Chris White1-0/+1
2024-03-23re2: use the same C++ std used by abseil-cpp (#43288)Juan Miguel Carceller1-0/+1
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-03-23py-vl-convert-python: Add 1.3.0 (#43297)吴坎1-2/+4
2024-03-23mpich: add variant +xpmem to specify use of xpmem (#43293)Howard Pritchard1-0/+6
Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2024-03-23bgen: add new package with version 1.1.7 (#43327)Christopher Christofi1-0/+27
2024-03-23hip: don't set HIP_PATH in ROCm 5.5+ (#42882)Richard Berger1-1/+3
2024-03-23py-tensorflow-probability: Re-activate +py-jax variant for @0.20:, Add ↵Jonas Eschle1-9/+12
0.23.0 (#43249)
2024-03-23New package: qctool (#43326)Christopher Christofi1-0/+28
2024-03-23NWChem pacakge: expand fftw patch appliance range to 7.2.2 (#43321)YI Zeping1-3/+3
* expand fftw patch appliance range to include 7.2.2 * fix formatting bug
2024-03-23octave package: correction to `jdk` variant description (#43325)Gavin John1-1/+1
2024-03-23openjdk package: use correct homepage (#43324)Gavin John1-1/+1
2024-03-23icedtea: change jdk dependency to java (#43323)Gavin John1-1/+1
2024-03-23BerkeleyGW package: add version 4.0 (#43316)Miguel Dias Costa1-1/+22
2024-03-22aws-ofi-nccl package: add versions including 1.8.1 (#43305)Auriane R1-3/+17
The default url couldn't be the one with v0.0.0-aws since spack was replacing v0.0.0-aws with v<version_number> for example, deleting the -aws suffix. I used the url_for_version method to specify this suffix.
2024-03-22New package: py-kneaddata (#43310)Gavin John1-0/+35
2024-03-22netcdf-cxx4: fix reference error (#43322)Chris Marsh1-1/+1
2024-03-22Support for prereleases (#43140)Harmen Stoppels12-115/+275
This adds support for prereleases. Alpha, beta and release candidate suffixes are ordered in the intuitive way: ``` 1.2.0-alpha < 1.2.0-alpha.1 < 1.2.0-beta.2 < 1.2.0-rc.3 < 1.2.0 < 1.2.0-xyz ``` Alpha, beta and rc prereleases are defined as follows: split the version string into components like before (on delimiters and string boundaries). If there's a string component `alpha`, `beta` or `rc` followed by an optional numeric component at the end, then the version is prerelease. So `1.2.0-alpha.1 == 1.2.0alpha1 == 1.2.0.alpha1` are all the same, as usual. The strings `alpha`, `beta` and `rc` are chosen because they match semver, they are sufficiently long to be unambiguous, and and all contain at least one non-hex character so distinguish them from shasum/digest type suffixes. The comparison key is now stored as `(release_tuple, prerelease_tuple)`, so in the above example: ``` ((1,2,0),(ALPHA,)) < ((1,2,0),(ALPHA,1)) < ((1,2,0),(BETA,2)) < ((1,2,0),(RC,3)) < ((1,2,0),(FINAL,)) < ((1,2,0,"xyz"), (FINAL,)) ``` The version ranges `@1.2.0:` and `@:1.1` do *not* include prereleases of `1.2.0`. So for packaging, if the `1.2.0alpha` and `1.2.0` versions have the same constraints on dependencies, it's best to write ```python depends_on("x@1:", when="@1.2.0alpha:") ``` However, `@1.2:` does include `1.2.0alpha`. This is because Spack considers `1.2 < 1.2.0` as distinct versions, with `1.2 < 1.2.0alpha < 1.2.0` as a consequence. Alternatively, the above `depends_on` statement can thus be written ```python depends_on("x@1:", when="@1.2:") ``` which can be useful too. A short-hand to include prereleases, but you can still be explicit to exclude the prerelease by specifying the patch version number. ### Concretization Concretization uses a different version order than `<`. Prereleases are ordered between final releases and develop versions. That way, users should not have to set `preferred=True` on every final release if they add just one prerelease to a package. The concretizer is unlikely to pick a prerelease when final releases are possible. ### Limitations 1. You can't express a range that includes all alpha release but excludes all beta releases. Only alternative is good old repeated nines: `@:1.2.0alpha99`. 2. The Python ecosystem defaults to `a`, `b`, `rc` strings, so translation of Python versions to Spack versions requires expansion to `alpha`, `beta`, `rc`. It's mildly annoying, because this means we may need to compute URLs differently (not done in this commit). ### Hash Care is taken not to break hashes of versions that do not have a prerelease suffix.