summaryrefslogtreecommitdiff
path: root/share
AgeCommit message (Collapse)AuthorFilesLines
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
2023-12-23Revert "CI: Disable downloading artifacts from upstream jobs (#41432)" (#41843)Harmen Stoppels1-1/+0
This reverts commit a43156a86131a0b138f356a2721709a2070665ca.
2023-12-21gcc-runtime: add separate package for gcc runtime libsHarmen Stoppels2-0/+4
The gcc-runtime package adds a separate node for gcc's dynamic runtime libraries. This should help with: 1. binary caches where rpaths for compiler support libs cannot be relocated because the compiler is missing on the target system 2. creating "minimal" container images The package is versioned like `gcc` (in principle it could be unversioned, but Spack doesn't always guarantee not mixing compilers)
2023-12-21ci: use "strong preference" idiom for compilers (#41806)Harmen Stoppels2-2/+5
to avoid duplication of conflicts / requirements in config
2023-12-20`spack buildcache push --tag`: create container image with multiple roots ↵Harmen Stoppels2-6/+10
(#41077) This PR adds a flag `--tag/-t` to `buildcache push`, which you can use like ``` $ spack mirror add my-oci-registry oci://example.com/hello/world $ spack -e my_env buildcache push --base-image ubuntu:22.04 --tag my_custom_tag my-oci-registry ``` and lets users ship a full, installed environment as a minimal container image where each image layer is one Spack package, on top of a base image of choice. The image can then be used as ``` $ docker run -it --rm example.com/hello/world:my_custom_tag ``` Apart from environments, users can also pick arbitrary installed spec from their database, for instance: ``` $ spack buildcache push --base-image ubuntu:22.04 --tag some_specs my-oci-registry gcc@12 cmake $ docker run -it --rm example.com/hello/world:some_specs ``` It has many advantages over `spack containerize`: 1. No external tools required (`docker`, `buildah`, ...) 2. Creates images from locally installed Spack packages (No need to rebuild inside `docker build`, where troubleshooting build failures is notoriously hard) 3. No need for multistage builds (Spack just tarballs existing installations of runtime deps) 4. Reduced storage size / composability: when pushing multiple environments with common specs, container image layers are shared. 5. Automatic build cache: later `spack install` of the env elsewhere speeds up since the containerized environment is a build cache
2023-12-19"spack diff": add ignore option for dependencies (#41711)Peter Scheibel2-2/+4
* add trim function to `Spec` and `--ignore` option to 'spack diff' Allows user to compare two specs while ignoring the sub-DAG of a particular dependency, e.g. spack diff --ignore=mpi --ignore=zlib trilinos/abcdef trilinos/fedcba to focus on differences closer to the root of the software stack
2023-12-19CI: Disable downloading artifacts from upstream jobs (#41432)kwryankrattiger1-0/+1
* CI: Disable downloading artifacts from upstream jobs * CI: Default .base-jobs are `when:manual`
2023-12-19e4s: add julia (#41768)Harmen Stoppels1-0/+1
2023-12-19`spack config get`/`blame`: with no args, show entire config Massimiliano Culpo1-0/+7
This PR changes the default behavior of `spack config get` and `spack config blame` to print a flattened version of the entire spack configuration, including any active environment, if the commands are invoked with no section arguments. The new behavior is used in Gitlab CI to help debug CI configuration, but it can also be useful when asking for more information in issues, or when simply debugging Spack.
2023-12-18`spack develop`: convert to config (#35273)Peter Scheibel1-3/+3
Convert the 'develop' section of an environment to a dedicated configuration section. This means for example that instead of having to define `develop` specs in the `spack.yaml`, the environment can `include:` another `develop.yaml` configuration which specifies which specs should be developed in the environment. This change is not expected to be disruptive given that existing environment `spack.yaml` files will conform to the new schema. (Update 11/28/2023) I have implemented the `develop`/`undevelop` commands in terms of more-generic modification functions added to the `config` module: `change_or_add` and `update_all`. It is assumed that the semantics added here (described in 11/18 update) would be desirable to extend to other config update actions (e.g. adding compilers, changing package requirements, adding mirrors). (Update 11/18/2023) I have updated this such that `spack develop`, and `spack undevelop` to potentially modify all writable scopes, like https://github.com/spack/spack/pull/41147. https://github.com/spack/spack/pull/35307 will be useful for modifying included scopes, but generally speaking specifying a `--scope` will not be required for `spack develop`: `spack develop` will add new develop specs to whatever scope already has develop specs defined, or to the highest-priority writable scope (which should be the env scope). TODOs: - [x] If you `spack undevelop` a package which is mentioned at multiple layers of configuration, then currently this would only modify one of them. That's not technically a new issue (has always existed for configuration modification), but may be confusing to users when presented via an interface other than `spack config set` - [x] Need to add (or confirm) the ability to modify individual config files by providing a path (rather than using a scope identifier as a key to retrieve associated config). - [x] `spack develop` adds new develop specs to the scope that defines them (potentially skipping higher priority scopes to e.g. augment included scope files) --------- Co-authored-by: scheibelp <scheibelp@users.noreply.github.com> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2023-12-11Build cache: make signed/unsigned a mirror property (#41507)Harmen Stoppels2-11/+23
* Add `signed` property to mirror config * make unsigned a tri-state: true/false overrides mirror config, none takes mirror config * test commands * Document this * add a test
2023-12-07Do not use depfile in bootstrap (#41458)Jordan Galby1-0/+2
- we don't have a fallback if make is not installed - we assume file system locking works - we don't verify that make is gnu make (bootstrapping fails on FreeBSD as a result) - there are some weird race conditions in writing spack.yaml on concurrent spack install - the view is updated after every package install instead of post environment install.
2023-12-05spack buildcache check: use same interface as push (#41378)Harmen Stoppels2-1/+7