summaryrefslogtreecommitdiff
path: root/share
AgeCommit message (Collapse)AuthorFilesLines
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)
2024-01-29Update GitLab memory requests (#42351)Zack Galbreath1-15/+71
* gitlab: remove commented-out duplicate entries * gitlab: reclassify some packages from "huge" to "large" Our observed max memory usage for these packages is as follows: hipblas: 7.7G qt: 6.6G visit: 9.7G All of these should fit within a "large" request (currently 12G). * gitlab: remove pango from list of huge packages This package is not currently built by any of our CI stacks. * gitlab: update requests for high memory packages Refine resource requests for memory-intensive packages based on max memory usage data.
2024-01-26Stop passing manual AWS credentials to jobs (#42096)Dan LaManna1-10/+0
2024-01-26Run config audits in CI, add a new audit to detect wrongly named external ↵Massimiliano Culpo11-11/+17
specs (#42289)
2024-01-26e4s oneapi: use ghcr spack registry for runner image (#42267)eugeneswalker2-2/+2
2024-01-25e4s neoverse-v2: use ghcr.io/spack image registry (#42268)eugeneswalker2-2/+2
2024-01-25e4s: add gromacs (#42266)eugeneswalker5-0/+10
2024-01-22Add syntactic sugar for "strong preferences" and "conflicts" (#41832)Massimiliano Culpo2-3/+4
Currently requirements allow to express "strong preferences" and "conflicts" from configuration using a convoluted syntax: ```yaml packages: zlib-ng: require: # conflict on %clang - one_of: ["%clang", "@:"] # Strong preference for +shared - any_of: ["+shared", "@:"] ``` This PR adds syntactic sugar so that the same can be written as: ```yaml packages: zlib-ng: conflict: - "%clang" prefer: - "+shared" ``` Preferences written in this way are "stronger" that the ones documented at: - https://spack.readthedocs.io/en/latest/packages_yaml.html#package-preferences
2024-01-20e4s ci: use latest intel/hpckit 2024 based image (#41437)eugeneswalker2-32/+30
* e4s ci: use latest intel/hpckit 2024 based image * use latest container image: ecpe4s/ubuntu22.04-runner-amd64-oneapi-2024.0.0:2023.12.01 * comment out failing specs * update to use patched container * remove generalized package preference for intel-oneapi-mkl@2023 * change packages commented out
2024-01-20e4s ci: switch to neoverse_v2 target (#42115)eugeneswalker3-12/+23
2024-01-18spack graph: env aware (#42093)Massimiliano Culpo1-1/+1
2024-01-18New command: `spack config change` (#41147)Peter Scheibel2-1/+19
Like `spack change` for specs in environments, this can e.g. replace `examplespec+debug` with `examplespec~debug` in a `require:` section. Example behavior for a config like: ``` packages: foo: require: - spec: +debug ``` * `spack config change packages:foo:require:~debug` replaces `+debug` with `~debug` * `spack config change packages:foo:require:@1.1` adds a requirement to the list * `spack config change packages:bar:require:~debug` adds a requirement
2024-01-14add e4s aarch64 (#42066)eugeneswalker3-2/+363
2024-01-11modules: Truncate configure options comment in tcl modules to 8192 ch… ↵Victor Brunini1-1/+1
(#42054)
2024-01-11Containerize: accommodate nested or pre-existing spack-env paths (#41558)Owen Solberg1-1/+2
The current `mkdir {{ paths.environment }}` will generate an error if: * `{{ paths.environment }}` already exists, or * `{{ paths.environment }}` is nested in non-existing dirs. Adding `-p` to the command will make this robust to both possibilities. Set noclobber bash option when writing manifest.
2024-01-10Add `--create` to `spack env activate` (#40896)psakievich2-4/+10
Add `--create` option to `env activate` to allow users to create and activate in one command. --------- Co-authored-by: Wouter Deconinck <wdconinc@gmail.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: psakievich <psakievich@users.noreply.github.com>
2024-01-05Fix setup-env when going back and forth between instances (#40924)Jordan Galby4-31/+30
* setup-env: Fix back and forth between two instances * setup-env.csh: Fix SPACK_ROOT when switch to a different instance i.e. Always look for the current SPACK_ROOT * setup-env: Update comments
2024-01-05Gitlab pipelines: check load avg also before running script (#41962)Massimiliano Culpo3-0/+12
2024-01-04`spack list`: add `--namesapce` / `--repo` option (#41948)Todd Gamblin2-2/+4
This adds options to `spack list` that allow you to list only packages from specific repositories/namespaces, e.g.: ```console spack list -r builtin ``` only lists packages from the `builtin` repo, while: ```console spack list -r myrepo -r myrepo2 ``` would list packages from `myrepo` and `myrepo2`, but not from `builtin`. Note that you can use the same argument multiple times. You can use either `-r` / `--repo` or `-N` / `--namespace`. `-N` is there to match the corresponding option on `spack find`. - [x] add `-r` / `--repo` / `-N` / `--namespace` argument - [x] add test
2024-01-04rust: add v1.75.0 & v1.74.0, merge related variants into `+dev`, add ↵Alec Scott1-1/+1
rust-analyzer (#41903) * Add rust-analyzer as variant to rust build * Expose cargo module only when +cargo * rust: add v1.74.0 and v1.75.0 and remove variants in favor of +dev * [@spackbot] updating style on behalf of alecbcs * Fix variant typo --------- Co-authored-by: alecbcs <alecbcs@users.noreply.github.com>
2024-01-02Update copyright year to 2024 (#41919)Todd Gamblin25-25/+25
It was time to run `spack license update-copyright-year` again.
2023-12-28CI: Fix timing search paths to ignore bootstrap (#41893)kwryankrattiger1-1/+1
2023-12-28CI: Fix timing search paths to ignore bootstrap (#40677)kwryankrattiger2-3/+11
2023-12-26`spack gc`: add options for environments and build dependencies (#41731)Todd Gamblin2-2/+8
This adds a few options to `spack gc`. One to give you a little more control over dependencies: * `-b` / `--keep-build-dependencies`: By default, `spack gc` considers build dependencies to be "no longer needed" once their dependents are installed. With this option, we'll keep build dependencies of needed installations as well. And two more to make working with environments easier: * `-E` / `--except-any-environment`: Garbage collect anything NOT needed by an environment. `spack gc -E` and `spack gc -bE` are now easy ways to get rid of everytihng not used by some environment. * `-e` / `--except-environment` `ENV`: Instead of considering all environments, garbage collect everything not needed by a *specific* environment. Note that you can use this with `-E` to add directory environments to the list of considered envs, e.g.: spack gc -E -e /path/to/direnv1 -e /path/to/direnv2 #... - [x] rework `unused_specs()` method on DB to add options for roots and deptypes - [x] add `all_hashes()` method on DB - [x] rework `spack gc` command to add 3 more options - [x] tests