summaryrefslogtreecommitdiff
path: root/share
AgeCommit message (Collapse)AuthorFilesLines
2024-06-05spack edit: allow edit multiple files at once (#44416)Harmen Stoppels1-1/+1
2024-06-04gitlab ci: Remove protected publish job (#44304)Scott Wittenburg1-31/+1
2024-05-29e4s hopper ci: minimize root specs (#44436)eugeneswalker1-145/+51
2024-05-23Enforce consistency of `gl` providers (#44307)Massimiliano Culpo9-15/+14
* glew: rework dependency on gl This simplifies the package and ensures a single gl implementation is pulled in. Before we were adding direct dependencies, and those are not unified through the virtual. * mesa-demos: rework dependency on gl This simplifies the package and ensures a single gl implementation is pulled in. Before we were adding direct dependencies, and those are not unified through the virtual. * mesa-glu: rework dependency on gl This simplifies the package and ensures a single gl implementation is pulled in. Before we were adding direct dependencies, and those are not unified through the virtual. * paraview: fix dependency on glew * mesa: group dependency on when("+glx") * Add missing dependency on libxml2 * paraview: remove the "osmesa" and "egl" variant Instead, enforce consistency using the "gl" virtual that allows only one provider. * visit: remove osmesa variant * Disable paraview in the aws-isc stacks * data-vis-sdk: rework constrains to enforce front-ends * e4s-power: remove redundant paraview * Pipelines: update osmesa variants * trilinos-catalyst-ioss-adapter: make gl a run dependency
2024-05-21Remove mesa18 and libosmesa (#44264)Massimiliano Culpo4-7/+0
* Remove mesa18 and libosmesa mesa18 was introduced in #19528 as a way to maintain the old autotools build of mesa separate from the new meson build. We could add a second build system to mesa, but since mesa18 has been deprecated for a long time, we'll just remove it. libosmesa was used to multiplex the gl provider between mesa18 and mesa, and is thus unecessary. Remove it to reduce complexity in the graphical stack. * Remove references to mesa18 and libosmesa * vtk: rework dependency on gl and osmesa * memsurfer: rework dependency on vtk * visit: minimal fix to avoid having both osmesa and glx
2024-05-21Additional packages for devtools-manylinux (#44273)Robert Underwood1-0/+10
Co-authored-by: Robert Underwood <runderwood@anl.gov>
2024-05-17Add `mpas-model` and `mpich` to pcluster neoverse stack (#44151)Stephen Sachs1-2/+2
Should build now since https://github.com/spack/spack/pull/43547 has been merged.
2024-05-16Gitlab CI: Windows Configs (#43967)John W. Parent8-18/+155
Add support for Gitlab CI on Windows This PR adds the config changes required to configure and execute Gitlab pipelines running Windows builds on Windows runners using the existing Gitlab CI infrastructure (and newly added Windows infrastructure). * Adds support for generating child pipelines dispatched to Windows runners * Refactors the relevant pre-scripts, scripts, and post scripts to be compatible with Windows * Adds Windows config section describing Windows jobs * Adds VTK as Windows build stack (to be expanded later) * Modifies proj to build on Windows * Refactors Windows rpath symlinking to avoid system libs and externals --------- Co-authored-by: Ryan Krattiger <ryan.krattiger@kitware.com> Co-authored-by: Mike VanDenburgh <michael.vandenburgh@kitware.com> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov> Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>
2024-05-13ML CI: update image (#43751)Adam J. Stewart3-4/+4
* ML CI: update image * Use main branch * Use tagged version
2024-05-12Add applications to aws-pcluster-* stacks (#43901)Stephen Sachs5-38/+73
* Add openfoam to aws-pcluster-neoverse_v1 stack * Add more apps to aws-pcluster-x86_64_v4 stack * Remove WRF while hdf5 cannot build in buildcache at the moment * Update comment * Add more apps for aws-pcluster-neoverse_v1 stack * Remove apps that currently do not build * Disable those packages that won't build * Modify syntax such that correct cflags are used * Changing syntax again to what works with other packages * Fix overriding packages.yaml entry for gettext * Use new `prefer` and `require:when` clauses to clarify intent * Use newer spack version to install intel compiler This removes the need for patches and makes sure the `prefer` directives in `package.yaml` are understood. * `prefer` not strong enough, need to set compilers * Revert "Use newer spack version to install intel compiler" This reverts commit ecb25a192cc430ca946415108847d637b4000795. Cannot update the spack version to install intel compiler as this changes the compiler hash but not the version. This leads to incompatible compiler paths. If we update this spack version in the future make sure the compiler version also updates. Tested-by: Stephen Sachs <stesachs@amazon.com> * Remove `prefer` clause as it is not strong enough for our needs This way we can safely go back to installing the intel compiler with an older spack version. * Prefer gcc or oneapi to build gettext * Pin gettext version compatible with system glibc-headers * relax gettext version requirement to enable later versions * oneapi cannot build older gettext version
2024-05-08gitlab ci: tutorial: add `julia` and `vim` (#44073)Harmen Stoppels2-2/+2
2024-05-07gitlab: dont build paraview for neoverse v2 (#44060)Harmen Stoppels1-4/+4
2024-05-07Include concrete environments with `include_concrete` (#33768)Richarda Butler2-6/+12
Add the ability to include any number of (potentially nested) concrete environments, e.g.: ```yaml spack: specs: [] concretizer: unify: true include_concrete: - /path/to/environment1 - /path/to/environment2 ``` or, from the CLI: ```console $ spack env create myenv $ spack -e myenv add python $ spack -e myenv concretize $ spack env create --include-concrete myenv included_env ``` The contents of included concrete environments' spack.lock files are included in the environment's lock file at creation time. Any changes to included concrete environments are only reflected after the environment is re-concretized from the re-concretized included environments. - [x] Concretize included envs - [x] Save concrete specs in memory by hash - [x] Add included envs to combined env's lock file - [x] Add test - [x] Update documentation Co-authored-by: Kayla Butler <<butler59@llnl.gov> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.co m> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov> Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-05-06Do not cache indices in Gitlab (#44029)Harmen Stoppels1-1/+3
2024-05-04gitlab: release branch pipelines rebuild what changed (#43990)Scott Wittenburg1-12/+2
2024-05-03concretizer args: --fresh-roots == --reuse-deps (#43988)Harmen Stoppels2-48/+48
Since reuse is the default now, `--reuse-deps` can be confusing, as it technically does not imply roots are fresh. So add `--fresh-roots`, which is also easier to discover when running `spack concretize --fre<tab>`
2024-05-02e4s ci: add py-amrex (#43904)eugeneswalker5-0/+5
2024-05-02gitlab ci: cache user cache (#43952)Harmen Stoppels2-2/+3
2024-05-01containers: add ubuntu 24.04 (#43881)Wouter Deconinck1-0/+33
* containers: add ubuntu 24.04 * containers: use python3-boto3 pkg instead of pip install
2024-04-29Delete leftover file (#43869)Massimiliano Culpo1-9/+0
This file is not needed anymore, was introduced in #19688
2024-04-26containers: Add Fedora 40, 39 (#43847)Jonathon Anderson2-29/+0
2024-04-25CI: remove ML ROCm stack (#43825)Adam J. Stewart2-118/+2
2024-04-24Add new `redistribute()` directive (#20185)Peter Scheibel2-6/+12
Some packages can't be redistributed in source or binary form. We need an explicit way to say that in a package. This adds a `redistribute()` directive so that package authors can write, e.g.: ```python redistribute(source=False, binary=False) ``` You can also do this conditionally with `when=`, as with other directives, e.g.: ```python # 12.0 and higher are proprietary redistribute(source=False, binary=False, when="@12.0:") # can't redistribute when we depend on some proprietary dependency redistribute(source=False, binary=False, when="^proprietary-dependency") ``` To prevent Spack from adding either their sources or binaries to public mirrors and build caches. You can still unconditionally add things *if* you run either: * `spack mirror create --private` * `spack buildcache push --private` But the default behavior for build caches is not to include non-redistributable packages in either mirrors or build caches. We have previously done this manually for our public buildcache, but with this we can start maintaining redistributability directly in packages. Caveats: currently the default for `redistribute()` is `True` for both `source` and `binary`, and you can only set either of them to `False` via this directive. - [x] add `redistribute()` directive - [x] add `redistribute_source` and `redistribute_binary` class methods to `PackageBase` - [x] add `--private` option to `spack mirror` - [x] add `--private` option to `spack buildcache push` - [x] test exclusion of packages from source mirror (both as a root and as a dependency) - [x] test exclusion of packages from binary mirror (both as a root and as a dependency)
2024-04-18CI: remove MXNet (#43704)Adam J. Stewart5-13/+0
2024-04-18ML CI: remove extra xgboost (#43709)Adam J. Stewart4-8/+0
2024-04-17Improve `spack find` output in environments (#42334)Todd Gamblin2-2/+4
This adds some improvements to `spack find` output when in environments based around some thoughts about what users want to know when they're in an env. If you're working in an enviroment, you mostly care about: * What are the roots * Which ones are installed / not installed * What's been added that still needs to be concretized So, this PR adds a couple tweaks to display that information more clearly: - [x] We now display install status next to every root. You can easily see which are installed and which aren't. - [x] When you run `spack find -l` in an env, the roots now show their concrete hash (if they've been concretized). They previously would show `-------` (b/c the root spec itself is abstract), but showing the concretized root's hash is a lot more useful. - [x] Newly added/unconcretized specs still show `-------`, which now makes more sense, b/c they are not concretized. - [x] There is a new option, `-r` / `--only-roots` to *only* show env roots if you don't want to look at all the installed specs. - [x] Roots in the installed spec list are now highlighted as bold. This is actually an old feature from the first env implementation , but various refactors had disabled it inadvertently.
2024-04-16Run after_script aggregator with spack python (#43669)kwryankrattiger1-1/+1
2024-04-11e4s ci: add: netcdf-fortran, fpm, e4s-cl (#43601)eugeneswalker1-0/+3
2024-04-11Allow packages to be pushed to build cache after install from source (#42423)Radim JanalĂ­k2-4/+10
This commit adds a property `autopush` to mirrors. When true, every source build is immediately followed by a push to the build cache. This is useful in ephemeral environments such as CI / containers. To enable autopush on existing build caches, use `spack mirror set --autopush <name>`. The same flag can be used in `spack mirror add`.
2024-04-06ParaView: add v5.12.0 (#42943)kwryankrattiger1-2/+2
* ParaView: Update version 5.12.0 Add 5.12.0 release Update default to 5.12.0 * Add patch for building ParaView 5.12 with kits * Drop VTKm from neoverse
2024-04-05e4s ci: enable lammps variants from presets/most.cmake (#43522)eugeneswalker1-1/+1
2024-04-06py-deephyper: add v0.6.0 (#43492)eugeneswalker1-0/+1
* py-deephyper: add latest version: v0.6.0 * e4s: add py-deephyper * v0.6.0: depend on python@3.7:3.11 * add py-packaging constraint so arm64 builds work * [@spackbot] updating style on behalf of eugeneswalker
2024-04-05e4s ci: add nekbone (#43515)eugeneswalker1-0/+2
* e4s ci: add nekbone, nek5000 * remove nek5000
2024-04-05CI: Add debug to the log aggregation script (#42562)kwryankrattiger2-5/+9
* CI: Add debug to the log aggregation script
2024-04-02RADIUSS packages update (Starting over #39613) (#41375)Adrien Bernede10-25/+25
2024-03-29ci devtools manylinux2014: update ci image with compatible gpg (#43421)eugeneswalker2-3/+3
2024-03-29CI Reproducer on Metal (#43411)kwryankrattiger1-1/+1
* MacOS image remove requires override syntax * Metal reproducer auto start and cross-platform
2024-03-29force oneapi compiler unless specified otherwise (#43419)kwryankrattiger1-1/+0
2024-03-29spack load: remove --only argument (#42120)Massimiliano Culpo2-4/+2
The argument was deprecated in v0.21 and slated for removal in v0.22.
2024-03-28Add ability to rename environments (#43296)Kyle Knoepfel2-3/+43
2024-03-28spack find: add options for local/upstream only (#42999)Greg Becker2-2/+4
Users requested an option to filter between local/upstream results in `spack find` output. ``` # default behavior, same as without --install-tree argument $ spack find --install-tree all # show only local results $ spack find --install-tree local # show results from all upstreams $ spack find --install-tree upstream # show results from a particular upstream or the local install_tree $ spack find --install-tree /path/to/install/tree/root ``` --------- Co-authored-by: becker33 <becker33@users.noreply.github.com>
2024-03-26buildcache sync: manifest-glob with arbitrary destination (#41284)kwryankrattiger1-1/+1
* 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-26ci: add developer-tools-manylinux2014 stack (#43128)eugeneswalker2-0/+113
* ci: add developer-tools-manylinux2014 stack * add libtree, patchelf
2024-03-21Re enable aws pcluster buildcache stack (#38931)Stephen Sachs13-320/+381
* Changes to re-enable aws-pcluster pipelines - Use compilers from pre-installed spack store such that compiler path relocation works when downloading from buildcache. - Install gcc from hash so there is no risk of building gcc from source in pipleine. - `packages.yam` files are now part of the pipelines. - No more eternal `postinstall.sh`. The necessary steps are in `setup=pcluster.sh` and will be version controlled within this repo. - Re-enable pipelines. * Add and * Debugging output & mv skylake -> skylake_avx512 * Explicilty check for packages * Handle case with no intel compiler * compatibility when using setup-pcluster.sh on a pre-installed cluster. * Disable palace as parser cannot read require clause at the moment * ifort cannot build superlu in buildcache `ifort` is unable to handle such long file names as used when cmake compiles test programs inside build cache. * Fix spack commit for intel compiler installation * Need to fetch other commits before using them * fix style * Add TODO * Update packages.yaml to not use 'compiler:', 'target:' or 'provider:' Synchronize with changes in https://github.com/spack/spack-configs/blob/main/AWS/parallelcluster/ * Use Intel compiler from later version (orig commit no longer found) * Use envsubst to deal with quoted newlines This is cleaner than the `eval` command used. * Need to fetch tags for checkout on version number * Intel compiler needs to be from version that has compatible DB * Install intel compiler with commit that has DB ver 7 * Decouple the intel compiler installation from current commit - Use a completely different spack installation such that this current pipeline commit remains untouched. - Make the script suceed even if the compiler installation fails (e.g. because the Database version has been updated) - Make the install targets fall back to gcc in case the compiler did not install correctly. * Use generic target for x86_64_vX There is no way to provision a skylake/icelake/zen runner. They are all in the same pools under x86_64_v3 and x86_64_v4. * Find the intel compiler in the current spack installation * Remove SPACK_TARGET_ARCH * Fix virtual package index & use package.yaml for intel compiler * Use only one stack & pipeline per generic architecture * Fix yaml format * Cleanup typos * Include fix for ifx.cfg to get the right gcc toolchain when linking * [removeme] Adding timeout to debug hang in make (palace) * Revert "[removeme] Adding timeout to debug hang in make (palace)" This reverts commit fee8a01580489a4ea364368459e9353b46d0d7e2. * palace x86_64_v4 gets stuck when compiling try newer oneapi * Update comment * Use the latest container image * Update gcc_hashes to match new container * Use only one tag providing tags per extends call Also removed an unnecessary tag. * Move generic setup script out of individual stack * Cleanup from last commit * Enable checking signature for packages available on the container * Remove commented packages / Add comment for palace * Enable openmpi@5 which needs pmix>3 * don't look for intel compiler on aarch64
2024-03-21cmd/python: use runpy to allow multiprocessing in scripts (#41789)Tom Scogland2-2/+4
Running a `spack-python` script like this: ```python import spack import multiprocessing def echo(args): print(args) if __name__ == "__main__": pool = multiprocessing.Pool(2) pool.map(echo, range(10)) ``` will fail in `develop` with an error like this: ```console _pickle.PicklingError: Can't pickle <function echo at 0x104865820>: attribute lookup echo on __main__ failed ``` Python expects to be able to look up the method `echo` in `sys.path["__main__"]` in subprocesses spawned by `multiprocessing`, but because we use `InteractiveConsole` to run `spack python`, the executed file isn't considered to be the `__main__` module, and lookups in subprocesses fail. We tried to fake this by setting `__name__` to `__main__` in the `spack python` command, but that doesn't fix the fact that no `__main__` module exists. Another annoyance with `InteractiveConsole` is that `__file__` is not defined in the main script scope, so you can't use it in your scripts. We can use the [runpy.run_path()](https://docs.python.org/3/library/runpy.html#runpy.run_path) function, which has been around since Python 3.2, to fix this. - [x] Use `runpy` module to launch non-interactive `spack python` invocations - [x] Only use `InteractiveConsole` for interactive `spack python`
2024-03-15cray-rhel: add a lower bound to mgard (#43187)Massimiliano Culpo1-0/+3
2024-03-14e4s cray ci: mgard is broken, disable spec (#43194)eugeneswalker1-4/+3
2024-03-14`spack develop`: stage build artifacts in same root as non-dev builds (#41373)Peter Scheibel2-8/+8
Currently (outside of this PR) when you `spack develop` a path, this path is treated as the staging directory (this means that for example all build artifacts are placed in the develop path). This PR creates a separate staging directory for all `spack develop`ed builds. It looks like ``` # the stage root /the-stage-root-for-all-spack-builds/ spack-stage-<hash> # Spack packages inheriting CMakePackage put their build artifacts here spack-build-<hash>/ ``` Unlike non-develop builds, there is no `spack-src` directory, `source_path` is the provided `dev_path`. Instead, separately, in the `dev_path`, we have: ``` /dev/path/for/foo/ build-{arch}-<hash> -> /the-stage-root-for-all-spack-builds/spack-stage-<hash>/ ``` The main benefit of this is that build artifacts for out-of-source builds that are relative to `Stage.path` are easily identified (and you can delete them with `spack clean`). Other behavior added here: - [x] A symlink is made from the `dev_path` to the stage directory. This symlink name incorporates spec details, so that multiple Spack environments that develop the same path will not conflict with one another - [x] `spack cd` and `spack location` have added a `-c` shorthand for `--source-dir` Spack builds can still change the develop path (in particular to keep track of applied patches), and for in-source builds, this doesn't change much (although logs would not be written into the develop path). Packages inheriting from `CMakePackage` should get this benefit automatically though.
2024-03-14move --deprecated arg to concretizer args (#43177)Greg Becker2-40/+64
2024-03-11e4s ci stacks: add cp2k cpu and gpu specs (#42454)eugeneswalker8-4/+25
* e4s ci stacks: add cp2k cpu and gpu specs * remove non-building cp2k specs