summaryrefslogtreecommitdiff
path: root/share
AgeCommit message (Collapse)AuthorFilesLines
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
2024-03-11Update TensorFlow ecosystem (#41069)Adam J. Stewart3-3/+3
2024-03-07ML CI: variants are now required (#42851)Adam J. Stewart4-39/+50
2024-02-29reduce size of e4s to deal with large rebuild artifact (#42884)eugeneswalker1-182/+182
2024-02-28e4s: new packages: glvis, laghos (#42847)eugeneswalker5-4/+14
* e4s: new packages: glvis, laghos * gl: require: osmesa * be explicit: glvis ^llvm so that llvm-amdgpu not chosen * glvis fails on oneapi stack due to issue 42839
2024-02-27e4s oneapi: remove outdated package preferences (#42875)eugeneswalker1-7/+0
2024-02-27e4s ci: use ubuntu 22.04 images (#42843)eugeneswalker7-28/+9
2024-02-25e4s external rocm ci: use ubuntu 22 image with rocm 5.7.1 (#42842)eugeneswalker2-114/+80
* e4s external rocm ci: use ubuntu 22 image with rocm 5.7.1 * comment out slate+rocm due to build error
2024-02-25e4s ci: add py-mpi4py, py-numba (#42845)eugeneswalker5-27/+37
2024-02-21e4s ci stacks: add python packages (#42774)eugeneswalker5-0/+95
* e4s ci stacks: add python packages * comment out failing specs
2024-02-16develop: Add -b/--build-directory option to set build_directory package ↵Victor Brunini2-2/+4
attribute (#39606) * develop: Add -b/--build-directory option to set build_directory package attribute. * Update docs --------- Co-authored-by: psakievich <psakiev@sandia.gov> Co-authored-by: vbrunini <vbrunini@users.noreply.github.com>
2024-02-12More updates for GitLab CI memory requests (#42425)Zack Galbreath1-36/+131
* gitlab: remove requests for unreferenced packages The packages removed in this commit are not built by any of our current GitLab CI stacks. * gitlab: update memory requests for "huge" packages * gitlab: reduce memory requests for overprovisioned packages * gitlab: more memory for py-torch (again) * gitlab: update memory but keep CPU the same
2024-02-08CI: Add ability to enable and disable stacks (#42255)kwryankrattiger1-0/+4
It is useful to enable/disable stacks in order to handle turning specific stacks on/off based on runner availability, stack stability, testing requirements, etc. The disabled stack list takes precedence over the enable stack list. The assumption is that stacks that are disabled are so due to some functionality missing or broken for that stack. The enable stack list implicitly disables all stacks not listed in the enable list.
2024-02-02CI: Call timing script in after_script (#42166)kwryankrattiger1-2/+2
The main script body is over-written for power. Putting thet timing aggregation in the after script allows it to be called on all of the current pipelines.
2024-02-01Environments: Add support for including views (#42250)Tamara Dahlgren1-3/+3
* Environments: Add support for including views (take 2) * schema type hint fixes
2024-01-31CI: Add OIDC capability for deprecated CI (#42371)kwryankrattiger1-0/+9
This "breaks" the deprecated schema by allowing unknown attributes to the attributes section of the job types. The breaking change here is that deprecated stacks will no longer ignore attributes that are unknown but rather assume the new CI schema behavior of injecting them into the generated CI configuration. This change is required to secure authentication in Spack CI.
2024-01-31Add +dlaf variant to cp2k in CI (#42346)Rocco Meli3-3/+3
2024-01-31ci: bump ghcr.io/spack/linux-ubuntu22.04-x86_64_v2 tag (#42357)Harmen Stoppels4-6/+6
2024-01-30"spack logs": print log files for packages (either partially built or ↵Peter Scheibel2-1/+17
installed) (#42202)