summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/spack/bootstrap/github-actions-v0.4/clingo.json334
-rw-r--r--share/spack/bootstrap/github-actions-v0.4/gnupg.json254
-rw-r--r--share/spack/bootstrap/github-actions-v0.4/patchelf.json34
-rw-r--r--share/spack/bootstrap/github-actions-v0.6/clingo.json384
-rw-r--r--share/spack/bootstrap/github-actions-v0.6/gnupg.json269
-rw-r--r--share/spack/bootstrap/github-actions-v0.6/metadata.yaml (renamed from share/spack/bootstrap/github-actions-v0.4/metadata.yaml)4
-rw-r--r--share/spack/bootstrap/github-actions-v0.6/patchelf.json49
-rw-r--r--share/spack/csh/pathadd.csh4
-rw-r--r--share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml523
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/ci.yaml25
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/concretizer.yaml1
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/config.yaml1
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/cray-rhel/config.yaml1
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/darwin/ci.yaml2
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml250
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_n1/ci.yaml7
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v1/ci.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml7
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/ppc64le/concretizer.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/skylake_avx512/ci.yaml11
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v3/concretizer.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/ci.yaml (renamed from share/spack/gitlab/cloud_pipelines/configs/linux/icelake/ci.yaml)3
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/concretizer.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml18
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml10
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml25
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml4
-rw-r--r--share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py6
-rw-r--r--share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py10
-rwxr-xr-xshare/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh112
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml34
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml32
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-icelake/spack.yaml56
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_n1/spack.yaml58
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/packages.yaml67
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/spack.yaml46
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-skylake/spack.yaml56
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/packages.yaml143
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/spack.yaml45
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/bootstrap-aarch64-darwin/spack.yaml33
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/bootstrap-x86_64-linux-gnu/spack.yaml35
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml42
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml89
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/developer-tools-darwin/spack.yaml75
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/developer-tools-manylinux2014/spack.yaml100
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml69
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml24
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml10
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml235
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml175
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml128
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml68
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml235
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml197
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml4
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml12
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cpu/spack.yaml85
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cuda/spack.yaml91
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml16
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml23
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml34
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml6
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml2
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml12
-rw-r--r--share/spack/gitlab/nersc_pipeline.yml9
-rw-r--r--share/spack/qa/bootstrap-file.py4
-rw-r--r--share/spack/qa/config_state.py36
-rwxr-xr-xshare/spack/qa/run-unit-tests13
-rwxr-xr-xshare/spack/qa/setup-env-test.sh17
-rw-r--r--share/spack/qa/validate_last_exit.ps12
-rw-r--r--share/spack/setup-env.bat77
-rw-r--r--[-rwxr-xr-x]share/spack/setup-env.csh53
-rw-r--r--[-rwxr-xr-x]share/spack/setup-env.fish4
-rw-r--r--share/spack/setup-env.ps11
-rw-r--r--[-rwxr-xr-x]share/spack/setup-env.sh4
-rw-r--r--[-rwxr-xr-x]share/spack/setup-tutorial-env.sh0
-rw-r--r--[-rwxr-xr-x]share/spack/spack-completion.bash152
-rw-r--r--[-rwxr-xr-x]share/spack/spack-completion.fish518
-rw-r--r--share/spack/templates/container/Dockerfile5
-rw-r--r--share/spack/templates/container/bootstrap-base.dockerfile2
-rw-r--r--share/spack/templates/container/centos_7.dockerfile28
-rw-r--r--share/spack/templates/container/centos_stream9.dockerfile (renamed from share/spack/templates/container/centos_stream.dockerfile)6
-rw-r--r--share/spack/templates/container/fedora.dockerfile (renamed from share/spack/templates/container/fedora_38.dockerfile)0
-rw-r--r--share/spack/templates/container/fedora_37.dockerfile29
-rw-r--r--share/spack/templates/container/ubuntu_2404.dockerfile33
-rw-r--r--share/spack/templates/depfile/Makefile2
-rw-r--r--share/spack/templates/mock-repository/package.pyt2
-rw-r--r--share/spack/templates/modules/modulefile.tcl2
89 files changed, 3544 insertions, 2155 deletions
diff --git a/share/spack/bootstrap/github-actions-v0.4/clingo.json b/share/spack/bootstrap/github-actions-v0.4/clingo.json
deleted file mode 100644
index 1fa83eef1c..0000000000
--- a/share/spack/bootstrap/github-actions-v0.4/clingo.json
+++ /dev/null
@@ -1,334 +0,0 @@
-{
- "verified": [
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "fk6k6buvgbwhwtigvpvi3266gllv7z2o",
- "003eb7b2c62debc0bac4a7f3a3933d6a955520199b37e00c8c0761036d8dc63a"
- ]
- ],
- "python": "python@3.10",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "2ezozohyngzmq74eeclsjupcawg6slse",
- "bf3c559d655d5f04a2b080c640996086db2bb6bbf49f4139eed225a77b574923"
- ]
- ],
- "python": "python@3.11",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "okjsfmgareef7laq432tdtgyu7bshmv2",
- "7beed9fe21b52df6b56d8242b79becab7ed953af16612d6e09c595ef39591ac3"
- ]
- ],
- "python": "python@3.6",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "cv7nf5ti72ywciapdy6mn7cemqv766zy",
- "6af9e548044e4849794ee85008c8b19539b63857510c6fff544de7ccb6e53ee8"
- ]
- ],
- "python": "python@3.7",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "ing4swsz5bj7guqffc277zitcky4uhu4",
- "4d9008372c73797fc0bd47c92c922f810e1b3fd44dc373682a7a0780b711058c"
- ]
- ],
- "python": "python@3.8",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "p2cyqcsow6k6prfryoqb7usv27hhofuq",
- "5e4fd1fc552d815ce8db8b8917d9089c7782a92269754f8ca5d4f01a9406244d"
- ]
- ],
- "python": "python@3.9",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "5bfjmclf6sktj4drclxe7rdwdthlkxw3",
- "b811e62f82b564e9cd5e12fc3cdb19b3d4e5f2bdb98985e1bbe3d1bbd5dd3d5c"
- ]
- ],
- "python": "python@3.10",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "bwmaj7wyyiivvkq5j72mholmhmytb2fl",
- "468da2198479514bbbf66f4268716bce38cace1004a612bc669d21d97c596f85"
- ]
- ],
- "python": "python@3.11",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "ewhsk7bcohduujp5t7hljb5uk2mfbk7k",
- "919cbfc82bbb08da207e22bec4d8047c34042b90d58b9c6b438b5dcef0046e39"
- ]
- ],
- "python": "python@3.6",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "263aqtzhrgzmzgpfekda7uk6wdqez76j",
- "b9e579ee2a848f7287a8b625459ac5b8ce19e9e6858a86b53effaa4ae712d1b6"
- ]
- ],
- "python": "python@3.7",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "yqqiddbmi2pyxgu757qfvts6hlt6525q",
- "254ab94d48543472ad8a32f598dc869c49051a0b890951d7de8425c7549caa26"
- ]
- ],
- "python": "python@3.8",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "plv3woz7rwmixdo42ew27imtqqjqnnv5",
- "ec494e7043433fac6f8f404e023eea397197ff0928bf1c3f3cc0bc62d549334c"
- ]
- ],
- "python": "python@3.9",
- "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "domcqyr4qx2yl3433l5dycnehastl7zc",
- "fbfc1fc14f27bbabe36a438dd70515067dbd7e0873bc748b9f34d576d5400cb4"
- ]
- ],
- "python": "python@3.10",
- "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "b5m7ectjiuucgaoyry24hhop44edjvg7",
- "5412e2b3f45d251acd976c12d238549e0c324e6481bf328f9547fafc0e810daf"
- ]
- ],
- "python": "python@3.11",
- "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "h2uxdiwlbvrfsz5mlt2s2xvnefbuk7qx",
- "4cf26cd903fe0034522e1d8a712ab7a6ae936961c1c010473ff15566665cef6b"
- ]
- ],
- "python": "python@3.6",
- "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "4ksotxknsesu4mv2bio5ndtilo423cpy",
- "9281ca638e2ec5c0b6d3ae050827a1c3696251a6274e96f3a8a89a1fdf7f0ba2"
- ]
- ],
- "python": "python@3.7",
- "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "ho7jg4bl7degmnnnj6x6fatbcno37kqo",
- "0e78a555839fbd3752473ed80c76be9007b6ce3f152fa69d8014b172e339b92f"
- ]
- ],
- "python": "python@3.8",
- "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "oztu77xbgiige4pp2epmbqrmxt4vwnla",
- "5271b271a2f6ae26838614477b2b8e5f230bceda7e0eb63f2cc36b18da3ba53d"
- ]
- ],
- "python": "python@3.9",
- "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "33qaxq2adjrlv6ttxbu6bmueundhns2w",
- "5fa731b84e354b8108ac4b7205d40e8c1a74cb2dfd590dd2d648d744a8556a1d"
- ]
- ],
- "python": "python@3.10",
- "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "vwhszkap6e2zbzb74ywgyggflkmtavwz",
- "09eed0c9b98681173f512385675f44d070cb5ebc3e08aac659a12ea1ec41d05a"
- ]
- ],
- "python": "python@3.11",
- "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "3pst4dqux2clmm3mpjj4jkowv3s2ixv6",
- "f9d9ade557ed426f55308dd14b43c59e1b51b8f40c9847d00994a3a89182a846"
- ]
- ],
- "python": "python@3.6",
- "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "6wk7qj2hdglt2sjtec4mv7ibsvhw53ge",
- "e06a3190e60b1d0c4d4b8f01b7a2ade9d2d3d8fdaf84757cc9741e81a5ad59a3"
- ]
- ],
- "python": "python@3.7",
- "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "k2kch7a6j7ilikuklhyffkqhdqb46yt5",
- "2547727ce0b8295594dfa56b711631b8ab221a19c4cbd19341539b929693b0cb"
- ]
- ],
- "python": "python@3.8",
- "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "ivzizagt74uqxrp2mri5lbqiqkhab77p",
- "2ddd5daeeabfc3b2a211f7efb3cc700991c5817b08b19c2d315084198f7d2bc8"
- ]
- ],
- "python": "python@3.9",
- "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "idkenmhnscjlu5gjqhpcqa4h7o2a7aow",
- "44c88094abb239dd33b75c02c24fefe7f4f5646c2371f50a5bfb47b23805760b"
- ]
- ],
- "python": "python@3.10",
- "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "cizcjj3tx4irs3uzoktrgybq73sz545f",
- "d8c8d4accece4e10a4339b263ff42f0f0adc77b3fbeea1010b3d7fc48aead5b3"
- ]
- ],
- "python": "python@3.11",
- "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "prqkzynv2nwko5mktitebgkeumuxkveu",
- "3059fb60ff3b2dd5b36a46af37972b479fbfad348c30ec2e6b59729d93f07eed"
- ]
- ],
- "python": "python@3.6",
- "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "axtxtavfahxuazw2wueu3tjwwu6ttdfo",
- "281cf24d0a8f2372b348bb1a38a9bfd1516063f597ffdecfde6e8e3aa4e2139f"
- ]
- ],
- "python": "python@3.7",
- "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "ba5ijauisd3uuixtmactc36vps7yfsrl",
- "ea5960f47f48daeb62e6ebf7d8574ceb4bfccff6e2bae17571b0857bfd7a0bbc"
- ]
- ],
- "python": "python@3.8",
- "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
- },
- {
- "binaries": [
- [
- "clingo-bootstrap",
- "gqcctd2ejbgvyvyt4umqpetfoogfycwu",
- "8358d72dd5de00a1b7a7ffb88ba366a01ce9b700245d2940eae7395fec0e6fda"
- ]
- ],
- "python": "python@3.9",
- "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
- }
- ]
-} \ No newline at end of file
diff --git a/share/spack/bootstrap/github-actions-v0.4/gnupg.json b/share/spack/bootstrap/github-actions-v0.4/gnupg.json
deleted file mode 100644
index 5237d8729a..0000000000
--- a/share/spack/bootstrap/github-actions-v0.4/gnupg.json
+++ /dev/null
@@ -1,254 +0,0 @@
-{
- "verified": [
- {
- "binaries": [
- [
- "zlib",
- "azrxnl6yp7xeapfy7nljiopucaelofuh",
- "c3f28571947a41d3c9fb0da0b340b51bdef6b9e05a59e6df7c9bc5838bacd81a"
- ],
- [
- "libiconv",
- "id44zneq3nh4grvtekqoefl24okct4ak",
- "8cf48050c8d58dc0e1d11c8b3b9d970586e1f62933f8655982f4312d1e4426ea"
- ],
- [
- "npth",
- "lp7fobvpwlk3xugo7th2kmcnrvqqxb3b",
- "ec4dda80a2485e0eda5b1ef09e6b8b020283b00ab6252981722979af04ce2ba8"
- ],
- [
- "libassuan",
- "trhqsquxpocecfgkeif5bh2dwgu4njbp",
- "33f15821d6e41238de58f2237d3e1be46b657e3337cbe73f87973fe970ab36fd"
- ],
- [
- "libgcrypt",
- "eadvdhou2xjdhf47x3q5x2ypa4qhfqjy",
- "f0d1d6b3cef5794933b78df3446ac71bdd0cc79b81a26fc33153ef13819e6b09"
- ],
- [
- "libgpg-error",
- "yg67vozcaac75p3dnhd6c3cjpa5nsfjo",
- "fe907bce097dec72a92a1973d73253d9e4ce4bd78ed14f8d6e647dd8e77eef15"
- ],
- [
- "libksba",
- "m7o6qwsu2gxvlka2jbd5puzwj3z553ob",
- "69d324a77b550a6c7a201f3f39835df4f14534fcf5fa28628c14039bfdb39dda"
- ],
- [
- "pinentry",
- "6m36xv6ft3yterimp6xoozz66ych5eew",
- "0b82a4b52a6bc5e6fd4913f585455ea703e0fa5c85fd9f4bb1eb5819af5084e1"
- ],
- [
- "gnupg",
- "pyrfgqkgltgfk4yljfw2myxn6vqen2j6",
- "3c41b0cf2db01ad2675f27d51edb4cf7f798be9ca0e3ac781990ff8b462cd8f6"
- ]
- ],
- "spec": "gnupg@2.3: %apple-clang platform=darwin target=aarch64"
- },
- {
- "binaries": [
- [
- "libiconv",
- "f6om5cmewxrhzpowei3m2g2qnijvlep4",
- "ab891ac21bc9cf44723993232ce3fff6fe75d003dfb88077dea630e532db123f"
- ],
- [
- "npth",
- "tvebgs23dhejixfe36dufivhkwnyxh3t",
- "95b9852c2e69f18fb8eff3dc6fc2bb9efe38821314cac6c310523da89c8346a2"
- ],
- [
- "zlib",
- "rlzphstv75due7yzcicuu7nfos5zuk2q",
- "e5ee87fab6e51b46ab1fb1cedafc4edee380a810947d52e669a185b52636aa37"
- ],
- [
- "libassuan",
- "ow5h7we5zrgoknsvss3yjjs4g3aci4b2",
- "44cf47134b4e4cbad30b8f4ef5ac1e7e25ead1d4dc64bd44fe807a4f173977ad"
- ],
- [
- "libgcrypt",
- "nuy3jjihjlktwggpwdrert2q5xoqk4ic",
- "ebb85da4d0b4ea93e073b8faf11e4ec955752a589b0ee47cd46b825ef685e536"
- ],
- [
- "libgpg-error",
- "w7xfbrbfdnssbfoxrsz4emt6aildxsfy",
- "6973cd597db96830822a8111fe3b3cff271e8cedc26fb0cb48443c2de2cc50ad"
- ],
- [
- "libksba",
- "74h62c57ojgmqqp6xrrrzmzgftmcv22c",
- "73afeb0bfdf57623d694ea16b52e1d73bfca61954583d6737f4ab6ab05c92ca8"
- ],
- [
- "pinentry",
- "dv7sj3xesjfhqbrcxorvbzoxzlqpac4e",
- "509d6881145a33b7de69db63af84fe887e7c995ffd4e89003a25fafa45b5874b"
- ],
- [
- "gnupg",
- "hrv7rjtbvuxkt4trjdnzovegwutciunv",
- "bf39c84047508556e142b9a9808007bbcc9aa80b2b9936a3598530f5acc7c75a"
- ]
- ],
- "spec": "gnupg@2.3: %apple-clang platform=darwin target=x86_64"
- },
- {
- "binaries": [
- [
- "zlib",
- "mrdyh4e34orgypetqhru6romj6wlvyxm",
- "ecd344c5dcae7377d8b20f14248a73d1fe350e54364f2f1e70aa4fccf1c219ed"
- ],
- [
- "libiconv",
- "iuparzfnzuwmmhj5ytlhaobn4nz3cct4",
- "58ef399a4bd8794a00314440e02de8c685c9c02d1b02a751923ae669556a1a91"
- ],
- [
- "npth",
- "eltd4b6tq4gsnboeidmr7mykezykcho5",
- "89b3e0c7f573009d4816b219413a07a9917758836befdfeb6c33a9e87d846b6f"
- ],
- [
- "libassuan",
- "xfaguxawrc6z73draba5fccjxtxjvzmz",
- "59ebe715532a2671cde9783aceebb1448062e7adb7307da30b0d6245529d897f"
- ],
- [
- "libgcrypt",
- "ntb2fzwckdgb77eubdcvvj2xm5eilavw",
- "92fb1ef0d57c98b16e172c6afbc995dd163f0bac1484eb11eef5305f434a5cd1"
- ],
- [
- "libgpg-error",
- "utzxfplsbueqmj7ksxaykk6tk3xi5dmr",
- "74aa95bc48c42eab0a8ca0afab51074811bf79477271123af13398029ac7394f"
- ],
- [
- "libksba",
- "jzxmzebonsgrw5e6ij446azzocvko2vi",
- "bfc11401fc94d3f6d3176fa4b95dd866ad355c0b77b9c5787acbfdffe42915b9"
- ],
- [
- "pinentry",
- "wsjzc3l5zgieowd24p2paccrporun5cv",
- "db3e475b2113ad9587017a76c9df57fc537d2dd6c5d3323119c30723b5b51330"
- ],
- [
- "gnupg",
- "zigabpppmz5ctktqwdj5ueaxjuvm6syh",
- "fd8a681dfa919d8faff256fabafe1f08238cc75c74cbcfc44acce23cf0afb34c"
- ]
- ],
- "spec": "gnupg@2.3: %gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "zlib",
- "c4kbhgxjlko6a367d3zl6b5qcm5swiew",
- "49747756dea8dd15fc3ea8f73d03b24724fa6b22103f04b557152db59c17f799"
- ],
- [
- "libiconv",
- "5l5cq7de7iwagndyyphpdmvdvp3pepe6",
- "a46d2a89cab00d8196e6226f3831bc3ff8b7f728844d6d29013cc8999d7b7f78"
- ],
- [
- "npth",
- "b6ifa47mma7n7mxl36yg73uwjqezbde5",
- "1b16e28e692ca91a096da4976f7df451df5e3ea9aa2f03cc2d39f62646a9399b"
- ],
- [
- "libassuan",
- "phds2cjgeo3sbluuvdj6ebdkuom6un6p",
- "482bf3a4975e21e03b7d34ff69031071a2822fb182774421f648ed7ccc99f24d"
- ],
- [
- "libgcrypt",
- "7hgqgoekgh4jiml2u55rg2zec3ouyq7z",
- "edfa277010de9f060bbcb11c2011dd66fb6e714c28a189d7cd7ef2d825e85180"
- ],
- [
- "libgpg-error",
- "th2tzwwoz7ddrygkjrxzzv4yvznxglmx",
- "e7c645287270ae2ac08ff5d400bf44b2e79203e752c3ff32aed07200638a6fe0"
- ],
- [
- "libksba",
- "ex5gt36shiwt54jg7mbgxysnwu7jjy6a",
- "8cf350544821bfec19e2b52a47896ca9258fc56680e4bb0d12715416169ead4a"
- ],
- [
- "pinentry",
- "aowc7abd6kvohdohxz4j225q2hh743cq",
- "ad336a7eee41eebd6b8e667e7ef673b64088c0553492567245653ac6c07fdb46"
- ],
- [
- "gnupg",
- "7i7j24llnlzwpwrfumulorq6ucx2ku2f",
- "a743ffd0698db5329a8231d25fa2e13b88f63cf85198664794a91df7a2c48632"
- ]
- ],
- "spec": "gnupg@2.3: %gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "libiconv",
- "vyvyow3bnokashj3wntl7pgm5nc4h7vw",
- "4fb8c1a563975f339b2e98e4c5c6cd98d629bc94fcf57b8e92beedae17a4584d"
- ],
- [
- "npth",
- "opncvl75zv6njawkgtxgt4yhii65f5nx",
- "24b442a6f2cc28176a4f742d961807e5ffd853d2f9d65175944b6aa8b47d91e2"
- ],
- [
- "zlib",
- "dcixs2nytw7vlthk55mwvog7veypnuor",
- "6ab7018b621783c971192e46b6a3e2764b638b5ab5c2f3c62af24afd5a9039e0"
- ],
- [
- "libassuan",
- "yk2555moxgj3dro6edznumguezecriso",
- "ebde470fee06e5ad7527dca0eb3689ae13b7299229b51e64f97ff87b9daf9160"
- ],
- [
- "libgcrypt",
- "imws5ss7coeeo45zr6w54xnwjfjm4cc6",
- "ad20c2974c90717efa8a4c27781e5f4c14d60527dc1c224fd2e113fe52d3e958"
- ],
- [
- "libgpg-error",
- "nbhvf75esgtjeu6nh57gu6mnikiazmjt",
- "ec9f59c684dc4054706217952b8ddf610e4277ec8031c92640f086959dcf756e"
- ],
- [
- "libksba",
- "cx425tk5tnod3523zj4izloqibr44frz",
- "b2465fecbca3d022cf068766a9c01c72f6a68f9b58e78375f687b1273f6c683c"
- ],
- [
- "pinentry",
- "pto3uq53xwl7dtbvycdp4qccacrrzs3r",
- "bd9ae21dff99c34165baa680df4b4b36339e207fec2ac4fcc80103d774a1dd84"
- ],
- [
- "gnupg",
- "5mhxefklns5hpdai3jn3rsf23kz4nol6",
- "8a21155078dc51fdee7990326335e9f99192da0eb4b3490260a7399e30f20243"
- ]
- ],
- "spec": "gnupg@2.3: %gcc platform=linux target=x86_64"
- }
- ]
-} \ No newline at end of file
diff --git a/share/spack/bootstrap/github-actions-v0.4/patchelf.json b/share/spack/bootstrap/github-actions-v0.4/patchelf.json
deleted file mode 100644
index cab4285108..0000000000
--- a/share/spack/bootstrap/github-actions-v0.4/patchelf.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "verified": [
- {
- "binaries": [
- [
- "patchelf",
- "kjmrsrd7akfwzlejzsdyoun7fwgmvjgk",
- "2c1975adb6fbd42bdb960b67fa6b32bc2846a28e5d293d2ca7b44a38f49ecf4f"
- ]
- ],
- "spec": "patchelf@0.13: %gcc platform=linux target=aarch64"
- },
- {
- "binaries": [
- [
- "patchelf",
- "gxxogiws7fmzkbdc26k24id3aplly6wi",
- "d45ac6b9045d510861fda0cfaa5c04d71f316df5784376f2d2915ab134619c1b"
- ]
- ],
- "spec": "patchelf@0.13: %gcc platform=linux target=ppc64le"
- },
- {
- "binaries": [
- [
- "patchelf",
- "p72zyan5wrzuabtmzq7isa5mzyh6ahdp",
- "ed7ebae3399d96c8d2f4b38ce6f2da52d8b73b312c73babae880ed3467b464b4"
- ]
- ],
- "spec": "patchelf@0.13: %gcc platform=linux target=x86_64"
- }
- ]
-} \ No newline at end of file
diff --git a/share/spack/bootstrap/github-actions-v0.6/clingo.json b/share/spack/bootstrap/github-actions-v0.6/clingo.json
new file mode 100644
index 0000000000..6db902e1bc
--- /dev/null
+++ b/share/spack/bootstrap/github-actions-v0.6/clingo.json
@@ -0,0 +1,384 @@
+{
+ "verified": [
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "54jmcv6ecepywqv7bdpbfm2mrsarrjio",
+ "ff7f45db1645d1d857a315bf8d63c31447330552528bdf1fccdcf50735e62166"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=aarch64 ^python@3.10"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "i2cye2tc752emxaeovjnrljbcz4gjr7j",
+ "e7491ac297cbb3f45c80aaf4ca5102e2b655b731e7b6ce7682807d302cb61f1c"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=aarch64 ^python@3.11"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "5bsjop6yb3oqfi2mopjaufprqy5xaqtv",
+ "91214626a86c21fc0d76918884ec819050d4d52b4f78df7cc9769a83fbee2f71"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=aarch64 ^python@3.12"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "unriyx5k5mu2o6nqwtaj254heazbiwyk",
+ "db596d9e6d8970d659f4be4cb510f9ba5dc2ec4ea42ecf2aed1325ec5ad72b45"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=aarch64 ^python@3.13"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "6ikikftldgnbrirhbo27v4flseuo34j3",
+ "a7ed91aee1f8d5cfe2ca5ef2e3e74215953ffd2d8b5c722a670f2c303610e90c"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=aarch64 ^python@3.8"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "pl5t4qtmufwrvek37mrorllf6ivnwztc",
+ "c856a98f92b9fa218377cea9272dffa736e93251d987b6386e6abf40058333dc"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=aarch64 ^python@3.9"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "cvxik6sx7niravyolfrrxayo2jywhv5p",
+ "d74cc0b44faa69473816dca16a3806123790e6eb9a59f611b1d80da7843f474a"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.10"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "chkx4n66gfa7ocewytj4bdqafp2czdwm",
+ "2cb12477504ca8e112522b6d56325ce32024c9466de5b8427fd70a1a81b15020"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.11"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "agrdoajzabs2am6q36lcrquihfb4d5xv",
+ "4e73426599fa61df1a4faceafa38ade170a3dec45b6d8f333e6c2b6bfe697724"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.12"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "56am5pmigql665hjjc2rnvtqd6dteni6",
+ "4309b42e5642bc5c83ede90759b1a0b5d66fffa8991b6213208577626b588cde"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.13"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "s727fhuqz2vgtlhmgviyihlqcm3vbgkx",
+ "1feeab9e1a81ca56de838ccc234d60957e9ab14da038e38b6687732b7bae1ff6"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.6"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "zo56jqvyt4y3udj6tsksbpm7bqoxob5g",
+ "1149ab7d5f1c82d8de53f048af8aa5c5dbf0d21da4e4780c06e54b8ee902085b"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.7"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "zkox3jrbdmbpu7j52ftcvqctjmymgp5j",
+ "d6aeae2dbd7fa3c1d1c62f840a5c01f8e71b64afe2bdc9c90d4087694f7d3443"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.8"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "scm5ujivfo5tt2dzurxcjf6qbme6dvol",
+ "81ef2beef78f46979965e5e69cd92b68ff4d2a59dbae1331c648d18b6ded1444"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%apple-clang platform=darwin target=x86_64 ^python@3.9"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "7utceuvi4eofoi2qr5vizbiv27fqewgi",
+ "3d0830654f9e327fd7ec6dab214050295dbf0832f493937c0c133e516dd2a95a"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.10"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "tipiheccz3kpqwmcmqdc6jwuedv4z4ip",
+ "941b93cd89d5271c740d1b1c870e85f32e5970f9f7b842ad99870399215a93db"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.11"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "jxz7beqjkrpd6d2fcbsxh6etf42e5jmu",
+ "8ca78e345da732643e3d1b077d8156ce89863c25095e4958d4ac6d1a458ae74b"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.12"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "qy5ak2wdmlepkuoygweyzbh42njy6yhc",
+ "f6ced988b515494d86a1069f13ae9030caeb40fe951c2460f532123c80399154"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.13"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "klvkzwpf5dzfa3s47zabngev6wehsnvw",
+ "c00855b5cda99639b87c3912ee9c734c0b609dfe7d2c47ea947738c32bab6f03"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.6"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "udskqrr4z7wden3yimui65ulo47j6ytf",
+ "aa861cfdf6001fc2da6e83eecc9ad35df424d86d71f6d73e480818942405ce4e"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.7"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "4oeblhznejucmsdqpqa4uyh7txgyqxol",
+ "cb7807cd31fc5e0efe2acc1de1f74c7cef962bcadfc656b09ff853bc33c11bd0"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.8"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "a5mztd53ktxnhvzkr3lqaceuw2tmi3bv",
+ "36e5efb6b15b431b661e9e272904ab3c29ae7b87bf6250c158d545ccefc2f424"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=aarch64 ^python@3.9"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "kavipyeuasn4om6jokka3kcdhgdtrhvi",
+ "bd492c078b2cdaf327148eee5b0abd5b068dbb3ffa5dae0ec5d53257f471f7f7"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.10"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "5v5c245vawyuc6urmp3roehey2kubd6h",
+ "0ebe5e05246c33fc8529e90e21529b29742b5dd6756dbc07534577a90394c0e6"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.11"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "whdxnb2jug463enpge2hevrjwhv7hbhg",
+ "9f97d3bf78b7642a775f12feb43781d46110793f58a7e69b0b68ac4fff47655c"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.12"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "6enkeu44ymdslkubguw4qyfvreg57j42",
+ "e7295bb4bcb11a936f39665632ce68c751c9f6cddc44904392a1b33a5290bbbe"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.13"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "rvr5ybhzcowbbjeyxlmkltdxxaua6ffh",
+ "c44e7fbf721383aa8ee57d2305f41377e64a42ab8e02a9d3d6fc792d9b29ad08"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.6"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "u5hxe3p62gynloaxhw2mjjgyvdgbrxvb",
+ "965ba5c1a42f436001162a3f3a0d1715424f2ec8f65c42d6b66efcd4f4566b77"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.7"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "vhj724hodvecmzic5us422o5gc4vlkuc",
+ "c8d31089d8f91718a5bde9c6b28cc67bdbadab401c8fdd07b296d588ece4ddfe"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.8"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "l2il7xee3xm5x7xpzz7mnslw7kcxcmk6",
+ "ef3f05d30333a39fd18714b87ee22605679f52fda97f5e592764d1591527bbf3"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=ppc64le ^python@3.9"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "4pi6zqqe2vm6ehc7qb4se3ql53m6relx",
+ "a4abec667660307ad5cff0a616d6651e187cc7b1386fd8cd4b6b288a01614076"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.10"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "4ojfyzobwptp3numvphbxpgp3okdolur",
+ "a572ab6db954f4a850d1292bb1ef6d6055916784a894d149d657996fa98d0367"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.11"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "et3twemsecqryfzl23e3cmsbca534dlo",
+ "97f8ea17f3df3fb38904450114cbef9b4b0ea9c94da9de7a49b70b707012277a"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.12"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "adriuktssyp63nfzum5e33vpu645oq4m",
+ "6599ac06ade0cb3e80695f36492ea94a306f8bde0537482521510076c5981aa0"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.13"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "a4oyom2bc4go3floq7jlymc2l745w7vl",
+ "90b7cf4dd98e26c58578ad8604738cc32dfbb228cfb981bdfe103c99d0e7b5dd"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.6"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "nzya47loljbytn5utgbeaa2zmcvnfc6o",
+ "dc5dbfd9c05b43c4992bf6666638ae96cee5548921e94eb793ba85727b25ec59"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.7"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "hnnz6aop244yvwkx6vahauz3wprb26s3",
+ "e8518de25baff7a74bdb42193e6e4b0496e7d0688434c42ce4bdc92fe4293a09"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.8"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "fs2aukvaiwysb3ob4zosvuwnkmfwxyoq",
+ "0c5831932608e7b4084fc6ce60e2b67b77dab76e5515303a049d4d30cd772321"
+ ]
+ ],
+ "spec": "clingo-bootstrap@spack%gcc platform=linux target=x86_64 ^python@3.9"
+ }
+ ]
+} \ No newline at end of file
diff --git a/share/spack/bootstrap/github-actions-v0.6/gnupg.json b/share/spack/bootstrap/github-actions-v0.6/gnupg.json
new file mode 100644
index 0000000000..c6e5808dab
--- /dev/null
+++ b/share/spack/bootstrap/github-actions-v0.6/gnupg.json
@@ -0,0 +1,269 @@
+{
+ "verified": [
+ {
+ "binaries": [
+ [
+ "libgpg-error",
+ "lwnk6k2j2pthv4zq3bl6cu2rbr5lqkp7",
+ "221b34bd62482f8afa64daa95466a61300674c81ed31aebb7f870f4e516407a1"
+ ],
+ [
+ "libassuan",
+ "gknfboyunz7tbc5j3nbdwft2s77tzmv2",
+ "47c742a837ff2d6e920a89a1e2556f996c3c22a1e098f9b0e0f7cc3f9e675222"
+ ],
+ [
+ "libgcrypt",
+ "2zniebgjgx44waicsbfmh2ywz72gw2hi",
+ "6eaed68c849c65d3f5351b67fd8c323a51caddc52918281b71706c472f281b26"
+ ],
+ [
+ "libiconv",
+ "l6yjt5xint3rspq7yytsl7iwvn5tuey3",
+ "26ceaa73955e9f335bbbfd8aafc043605475154eb98d8118992224ed6696c1ad"
+ ],
+ [
+ "libksba",
+ "xh7k7t5lqz6vjfugrpd4pjfdsom75trx",
+ "e3f617fcf144639b8fb3cd1e4d32f7fcdb38d345ab26ffc920732d731b991625"
+ ],
+ [
+ "npth",
+ "pbgogmpojgqzgpzzci7gk7hloorinxew",
+ "3c3b6a2f008b5eec639382e384735203675600d06b4de89d58c36428016e4465"
+ ],
+ [
+ "pinentry",
+ "66hrxsdpjdqt6wmnpmi5mh5ifeyb7cgg",
+ "d9843ab0324bea08d83455b6117a6fe82a6dcaa2106ba305e72c25c3bb26a17e"
+ ],
+ [
+ "zlib-ng",
+ "cjfe7flqc6o2bfacxxwgqx4lpgqsv55e",
+ "7c02ff1bbac5dc24863cea28f15d06772c5434ee99a85a31a3475ae3c4f2d4b0"
+ ],
+ [
+ "gnupg",
+ "eoavahhxqjlexz4wr3aanix724gamayu",
+ "61bcb83dc3fc2ae06fde30b9f79c2596bd0457cf56b4d339c8c562a38ca1c31f"
+ ]
+ ],
+ "spec": "gnupg@2.4.5%apple-clang platform=darwin target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "libgpg-error",
+ "op3m3ketzr2qqzazpoe35uc3c53tceqo",
+ "9345e8709a34591cb8ed70441ff5b95fd0de62f5038b3ff72aa21efeea882c14"
+ ],
+ [
+ "libassuan",
+ "x7mrkmkxj3x5mcajpk36xroktc2vqhbb",
+ "60a19ab82bbd3b69bcd53287621617e0223bfefa7568572e247f3dfbac863717"
+ ],
+ [
+ "libgcrypt",
+ "at6lwhcuxttxx2erckiwee4fb7txsupd",
+ "88d2ff68b041ca4d3923c1d657a670115f88735ef99a48d2bb1ea47420a183c1"
+ ],
+ [
+ "libiconv",
+ "clwajtbwgb23uzaci26bcisj64jas33d",
+ "d5af1715ca62225765980389e79cae4a1347bd7e8a9e0ad29f53a2ff1e3fba7a"
+ ],
+ [
+ "libksba",
+ "x3h5xtrsmdhcv5rwsbrn6cwdt7kynxkl",
+ "be0748d370f38a55ccb458e43a95739b0494d1755189a87a062d99508ca4c756"
+ ],
+ [
+ "npth",
+ "c3yv6do52jtfeqtxbcdssxslbwh2l67c",
+ "c19dab06efd6ef9476e299b009d41bbe0d0c3df634d4bc55db18c78f3036afde"
+ ],
+ [
+ "pinentry",
+ "a25ckvveduyxqrrmaybwnn65dh35eusc",
+ "fc1af850dcc056c14aba5595ccb2d48ccc4d14ddedbc85cf20928ef2805b213e"
+ ],
+ [
+ "zlib-ng",
+ "uum7mskvdekjxwozkmdqk3joy6hnan3g",
+ "de2faff7c427305a00a62d66bba39393591841044a2feb861045c7961595d0fc"
+ ],
+ [
+ "gnupg",
+ "7bmrigo4rsorm5d6byrcgxqerxofugoj",
+ "3d36bce8bbd06134445aa3cefa00a80068317b6d082d2b43bb1e3be81ede5849"
+ ]
+ ],
+ "spec": "gnupg@2.4.5%apple-clang platform=darwin target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "gcc-runtime",
+ "vytidi6v26yjvwdbycga2asyx5363kf3",
+ "8c0b786bed22505e2360fb0eaf1f38f9cdd8a96ff19a9bea84e4acbbad1e32f6"
+ ],
+ [
+ "libgpg-error",
+ "cuagrnba4umsm33umta5rmjpkazt2i5u",
+ "794fed3932cee4e0b48e27cf2d8627135b88c0961730b384e10af1b484db0e6d"
+ ],
+ [
+ "libassuan",
+ "uuxij4hqsvuv5h54iaofcr3tpv44thks",
+ "72c9cfccf2d01ad9fb495da573de49a08673e751ba059d20c8e519f9aa83ef20"
+ ],
+ [
+ "libgcrypt",
+ "lfy732fms7q3j2fpvr3g2gg5lxmgs6jg",
+ "dae98b98735a10c8ef83fc03e0e878a157775c23d5d985266ddca6208cc988ca"
+ ],
+ [
+ "libiconv",
+ "fcsxxmy4hiu3x6hjeh7y3mp4qxmvbcrh",
+ "29084a2aae8e11df683baf12203804d16aba6fd5dff02725654e6ee617bd2994"
+ ],
+ [
+ "libksba",
+ "7kbtasg2faihsxceqpp4jpaf4ec7cgq7",
+ "35065817952b1114ffd9b6ccdd4095c1141eccdd481c4ac5a5f878ba0191ec33"
+ ],
+ [
+ "npth",
+ "jsvxvvflvljwkewvxbebmoc3asos54f5",
+ "79b07e334e9b6d135be42a5b4cf0eb1bf5dcde98b8c3ce6c154bfa4e11abfb95"
+ ],
+ [
+ "pinentry",
+ "erpvp4zmkqmeatet3fxwkrugwjp4nyxc",
+ "91fa16a16ca995ab663b1551f172e5aa91ed15853e37aa7776ce40d08a2fc3e9"
+ ],
+ [
+ "zlib-ng",
+ "j3puqviz7nl3qr3sqwrg7vdb3i4ulqff",
+ "b8190c6af8fda6d5aeaff40e7d0ce11e80f412269706b68e1cf04c97f34b9e83"
+ ],
+ [
+ "gnupg",
+ "iwnwfoopb5rtn45dbsecwoe3w6fsjv6d",
+ "8398592ab0812d8c76a21deca06da4277d05f4db784e129ead7535bb8988faa2"
+ ]
+ ],
+ "spec": "gnupg@2.4.5%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "gcc-runtime",
+ "o6nx7ce6pg2fzah2fbwbpbwb6rkhdwc2",
+ "c942c0fb5d4ae8d875b036c1ab6bc09077dad6f2b43fe0621dee84fd47fcdec3"
+ ],
+ [
+ "libgpg-error",
+ "pxc5a72op7zaahwquririwlea5lcowd2",
+ "56dc827ee7db3e1b0a0f2673165d9694d35df82b09e8984a03a21f6a275fb25c"
+ ],
+ [
+ "libassuan",
+ "wjypew3o5cmejlrhsj24kkkh3jxrn35z",
+ "32f056147ca5c240ad10ffd8f36f60d84106bba46f4503a28d0649611f485381"
+ ],
+ [
+ "libgcrypt",
+ "aaodehivfgu6ggtzf3r4vk6do5gt7qg2",
+ "af22cdf4b3ffca0b14c00849a2ad35e2f5c60024214ccc1f733481c7d1535d13"
+ ],
+ [
+ "libiconv",
+ "bv2plgtibp6l6g5eqwupejoaihwjqk3z",
+ "c43ae303cbbc769ea4eb9740728970726fa87fe4e482ca7feb7b909ecba217ab"
+ ],
+ [
+ "libksba",
+ "4zm4wcxegjycsez4jxgfdeyyne6xqb4t",
+ "2623edd57b13b98f83b7bf6a3419bbd29c7574bb72a99c948ff32d9a6b95d6f8"
+ ],
+ [
+ "npth",
+ "4mdvxsguwekd4nus4lczdmcdwo4xpm7h",
+ "1c150c7e99a06cfad733b60c776a06c537ce925234cc567657f3ca79bf668010"
+ ],
+ [
+ "pinentry",
+ "jli5etdru7erjbneygpiinlgbu6hqyiw",
+ "be2f63bb8a6d87a2d6e65699a688200939406f42b93a74e55ae4437b9936d75b"
+ ],
+ [
+ "zlib-ng",
+ "olulf6vptgcleno3kfc3qbfqss4p6dcv",
+ "248e8295fc8af4ced8383846c292c2298248ee7afd20a36195891cfdc3d75363"
+ ],
+ [
+ "gnupg",
+ "5ntq7qgiciy4lwhhqekglg7c7qjlfum6",
+ "cc7e4833af58913fa4ab2b7ce3fdb86d214594d54327c7e4eb4ca3f0784c046f"
+ ]
+ ],
+ "spec": "gnupg@2.4.5%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "gcc-runtime",
+ "7rv2b76tgxqmkwtmngiamwac632cjjba",
+ "b76a4eaef54b24d0ea9b8dfa9392f7ab519f918ae7e1a8bb919539d9adeddbcb"
+ ],
+ [
+ "libgpg-error",
+ "t6pohmnim5vwnysjzc6c2x5xrq34arav",
+ "89976fae1b4d47325d03e6a4b37872b141ac2da77dc8a531afc7d207d86b3dc9"
+ ],
+ [
+ "libassuan",
+ "urbnck3somrr5pmrhf4ifkfxcxgzrq4f",
+ "8feaab6bb0802d799e8e572ea7c903f5827a8af807010e288bbe043ec0b88779"
+ ],
+ [
+ "libgcrypt",
+ "52zd4jcxeilrmlu4tugwkxqd6h6znbj6",
+ "50bb10f9e0317637dcb6f17de59c8c644d259ac15529c8355b9477e323e45cc6"
+ ],
+ [
+ "libiconv",
+ "dy5pmiqcwlvb6yzozs5ajqtox3cfygif",
+ "385fa3a46f1c588aab24bcea3dfc5221dfa143808a2a731aef87a923c2cf05df"
+ ],
+ [
+ "libksba",
+ "dls4psvcy54plnficveje3pisbznkznt",
+ "b565c5439feefe4e40694dfa2f98332a3f16f00d57bb355ad9ffde7c911b23de"
+ ],
+ [
+ "npth",
+ "mldfiqqsswoo4l3ln7vkwpekgji4zwl4",
+ "cb4a08118709bd4cd4f0833f64e143914f0b81e8ae24c0d8a1bdf3a58a768b59"
+ ],
+ [
+ "pinentry",
+ "2ayqizbaee43awjxjdpzmrangyklffp2",
+ "8fe10eddb2bf9cdda7329d098c42c2443d31b041416192eec5fec547d3cb8b84"
+ ],
+ [
+ "zlib-ng",
+ "qodit36c7pa2afqavjguuuyxmur4tels",
+ "d90039074ce13e7ba1708d645bc48a832af78cfb5a197818ff53a45cec628855"
+ ],
+ [
+ "gnupg",
+ "ielaznyuce3qu77r34nwnfjqkk5p3fdz",
+ "418b582f84547504b6464913fba5ba196482e86258081bdeb21af519fe8a2933"
+ ]
+ ],
+ "spec": "gnupg@2.4.5%gcc platform=linux target=x86_64"
+ }
+ ]
+} \ No newline at end of file
diff --git a/share/spack/bootstrap/github-actions-v0.4/metadata.yaml b/share/spack/bootstrap/github-actions-v0.6/metadata.yaml
index 0b483b547b..ca2e9db88f 100644
--- a/share/spack/bootstrap/github-actions-v0.4/metadata.yaml
+++ b/share/spack/bootstrap/github-actions-v0.6/metadata.yaml
@@ -1,8 +1,8 @@
type: buildcache
description: |
- Buildcache generated from a public workflow using Github Actions.
+ Buildcache generated from a public workflow using GitHub Actions hosted on GitHub Packages.
The sha256 checksum of binaries is checked before installation.
info:
- url: https://mirror.spack.io/bootstrap/github-actions/v0.4
+ url: oci://ghcr.io/spack/bootstrap-buildcache-v1
homepage: https://github.com/spack/spack-bootstrap-mirrors
releases: https://github.com/spack/spack-bootstrap-mirrors/releases
diff --git a/share/spack/bootstrap/github-actions-v0.6/patchelf.json b/share/spack/bootstrap/github-actions-v0.6/patchelf.json
new file mode 100644
index 0000000000..4d61766f23
--- /dev/null
+++ b/share/spack/bootstrap/github-actions-v0.6/patchelf.json
@@ -0,0 +1,49 @@
+{
+ "verified": [
+ {
+ "binaries": [
+ [
+ "gcc-runtime",
+ "vytidi6v26yjvwdbycga2asyx5363kf3",
+ "8c0b786bed22505e2360fb0eaf1f38f9cdd8a96ff19a9bea84e4acbbad1e32f6"
+ ],
+ [
+ "patchelf",
+ "mabcw7ya2bjav54wiknzyoftwtkkx2s3",
+ "820b8013b0b918ad85caa953740497e6c31c09d812bd34d087fc57128bfbdacb"
+ ]
+ ],
+ "spec": "patchelf@0.17.2%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "gcc-runtime",
+ "o6nx7ce6pg2fzah2fbwbpbwb6rkhdwc2",
+ "c942c0fb5d4ae8d875b036c1ab6bc09077dad6f2b43fe0621dee84fd47fcdec3"
+ ],
+ [
+ "patchelf",
+ "hz6j4rmzm65wov77f7t335tbywy5ebnq",
+ "1569df037ea1ea316a50e89f5a0cafa0ce8e20629bbd07fcc3846d9fecd2451c"
+ ]
+ ],
+ "spec": "patchelf@0.17.2%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "gcc-runtime",
+ "7rv2b76tgxqmkwtmngiamwac632cjjba",
+ "b76a4eaef54b24d0ea9b8dfa9392f7ab519f918ae7e1a8bb919539d9adeddbcb"
+ ],
+ [
+ "patchelf",
+ "o6soxsz4hwdhzzbu4j56zwcclqhram25",
+ "79dfb7064e7993a97474c5f6b7560254fe19465a6c4cfc44569852e5a6ab542b"
+ ]
+ ],
+ "spec": "patchelf@0.17.2%gcc platform=linux target=x86_64"
+ }
+ ]
+} \ No newline at end of file
diff --git a/share/spack/csh/pathadd.csh b/share/spack/csh/pathadd.csh
index 5033df65ca..df46b00f3f 100644
--- a/share/spack/csh/pathadd.csh
+++ b/share/spack/csh/pathadd.csh
@@ -25,8 +25,8 @@ if ($_pa_set == 1) then
eval set _pa_old_value='$'$_pa_varname
endif
-# Do the actual prepending here, if it is a dir and not already in the path
-if ( -d $_pa_new_path && \:$_pa_old_value\: !~ *\:$_pa_new_path\:* ) then
+# Do the actual prepending here, if it is a dir and not first in the path
+if ( -d $_pa_new_path && $_pa_old_value\: !~ $_pa_new_path\:* ) then
if ("x$_pa_old_value" == "x") then
setenv $_pa_varname $_pa_new_path
else
diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
index 0c770ee872..07fd16c88b 100644
--- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
+++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-stages: [ "generate", "build", "publish" ]
+stages: [ "generate", "build" ]
variables:
SPACK_DISABLE_LOCAL_CONFIG: "1"
@@ -39,25 +39,20 @@ default:
SPACK_TARGET_PLATFORM: "linux"
SPACK_TARGET_ARCH: "x86_64_v3"
-.linux_skylake:
+.linux_x86_64_v4:
variables:
SPACK_TARGET_PLATFORM: "linux"
- SPACK_TARGET_ARCH: "skylake_avx512"
+ SPACK_TARGET_ARCH: "x86_64_v4"
-.linux_icelake:
- variables:
- SPACK_TARGET_PLATFORM: "linux"
- SPACK_TARGET_ARCH: "icelake"
-
-.linux_neoverse_n1:
+.linux_neoverse_v1:
variables:
SPACK_TARGET_PLATFORM: "linux"
- SPACK_TARGET_ARCH: "neoverse_n1"
+ SPACK_TARGET_ARCH: "neoverse_v1"
-.linux_neoverse_v1:
+.linux_neoverse_v2:
variables:
SPACK_TARGET_PLATFORM: "linux"
- SPACK_TARGET_ARCH: "neoverse_v1"
+ SPACK_TARGET_ARCH: "neoverse_v2"
.linux_aarch64:
variables:
@@ -69,37 +64,32 @@ default:
SPACK_TARGET_PLATFORM: "linux"
SPACK_TARGET_ARCH: "ppc64le"
+.win64-msvc2019:
+ variables:
+ SPACK_TARGET_PLATFORM: "win64"
+ SPACK_TARGET_ARCH: "x86_64"
+
########################################
# Job templates
########################################
.base-job:
variables:
PIPELINE_MIRROR_TEMPLATE: "single-src-protected-mirrors.yaml.in"
- # TODO: We can remove this when we drop the "deprecated" stack
- PUSH_BUILDCACHE_DEPRECATED: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME}"
+ SPACK_CI_CONFIG_ROOT: "${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/configs"
+ SPACK_CI_SCRIPTS_ROOT: "${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/scripts"
rules:
- - if: $CI_COMMIT_REF_NAME == "develop"
- # Pipelines on develop only rebuild what is missing from the mirror
+ - if: $SPACK_CI_DISABLE_STACKS =~ /.+/ && $SPACK_CI_STACK_NAME =~ $SPACK_CI_DISABLE_STACKS
+ when: never
+ - if: $SPACK_CI_ENABLE_STACKS =~ /.+/ && $SPACK_CI_STACK_NAME !~ $SPACK_CI_ENABLE_STACKS
+ when: never
+ - if: $CI_COMMIT_REF_NAME == "develop" || $CI_COMMIT_REF_NAME =~ /^releases\/v.*/
+ # Pipelines on develop/release branches only rebuild what is missing from the mirror
when: always
variables:
SPACK_PIPELINE_TYPE: "spack_protected_branch"
SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
SPACK_REQUIRE_SIGNING: "True"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
- OIDC_TOKEN_AUDIENCE: "protected_binary_mirror"
- - if: $CI_COMMIT_REF_NAME =~ /^releases\/v.*/
- # Pipelines on release branches always rebuild everything
- when: always
- variables:
- SPACK_PIPELINE_TYPE: "spack_protected_branch"
- SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
- SPACK_PRUNE_UNTOUCHED: "False"
- SPACK_PRUNE_UP_TO_DATE: "False"
- SPACK_REQUIRE_SIGNING: "True"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "protected_binary_mirror"
- if: $CI_COMMIT_TAG =~ /^develop-[\d]{4}-[\d]{2}-[\d]{2}$/ || $CI_COMMIT_TAG =~ /^v.*/
# Pipelines on tags (release or dev snapshots) only copy binaries from one mirror to another
@@ -108,16 +98,12 @@ default:
SPACK_PIPELINE_TYPE: "spack_copy_only"
SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
PIPELINE_MIRROR_TEMPLATE: "copy-only-protected-mirrors.yaml.in"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "protected_binary_mirror"
- if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/
# Pipelines on PR branches rebuild only what's missing, and do extra pruning
when: always
variables:
SPACK_PIPELINE_TYPE: "spack_pull_request"
- # TODO: We can remove this when we drop the "deprecated" stack
- PUSH_BUILDCACHE_DEPRECATED: "${PR_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME}"
SPACK_PRUNE_UNTOUCHED: "True"
SPACK_PRUNE_UNTOUCHED_DEPENDENT_DEPTH: "1"
# TODO: Change sync script to include target in branch name. Then we could
@@ -126,50 +112,48 @@ default:
# TODO: far gitlab doesn't support that.
PR_TARGET_REF_NAME: "develop"
PIPELINE_MIRROR_TEMPLATE: "multi-src-mirrors.yaml.in"
- AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "pr_binary_mirror"
.generate-common:
stage: generate
script:
- - uname -a || true
- - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
- - nproc || true
- - . "./share/spack/setup-env.sh"
- spack --version
- - cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
- - spack env activate --without-view .
- - export SPACK_CI_CONFIG_ROOT="${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/configs"
+ - spack env activate --without-view share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
- spack
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
${CI_STACK_CONFIG_SCOPES}
compiler find
- - spack python -c "import os,sys; print(os.path.expandvars(sys.stdin.read()))"
- < "${SPACK_CI_CONFIG_ROOT}/${PIPELINE_MIRROR_TEMPLATE}" > "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
+ - spack
+ --config-scope "${SPACK_CI_CONFIG_ROOT}"
+ --config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
+ --config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
+ audit configs
+ # Command below needs to be `spack python` due to naming differences accross platforms
+ - spack python ${SPACK_CI_SCRIPTS_ROOT}/common/expand_vars.py
+ "${SPACK_CI_CONFIG_ROOT}/${PIPELINE_MIRROR_TEMPLATE}"
+ "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
- spack config add -f "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
- - mkdir -p "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ - mkdir "${CI_PROJECT_DIR}/jobs_scratch_dir"
- spack
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
- ${CI_STACK_CONFIG_SCOPES}
config blame > "${CI_PROJECT_DIR}/jobs_scratch_dir/spack.yaml.blame"
- spack -v --color=always
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
- ${CI_STACK_CONFIG_SCOPES}
ci generate --check-index-only
--artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
- after_script:
- - cat /proc/loadavg || true
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ - "${CI_PROJECT_DIR}/tmp/_user_cache/cache/patches"
+ - "${CI_PROJECT_DIR}/tmp/_user_cache/cache/providers"
+ - "${CI_PROJECT_DIR}/tmp/_user_cache/cache/tags"
variables:
KUBERNETES_CPU_REQUEST: 4000m
KUBERNETES_MEMORY_REQUEST: 16G
@@ -186,10 +170,21 @@ default:
# Generate without tags for cases using external runners
.generate-base:
extends: [ ".base-job", ".generate-common" ]
+ before_script:
+ - uname -a || true
+ - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
+ - nproc || true
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
+ - . "./share/spack/setup-env.sh"
+ - spack arch
+ after_script:
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
.generate-x86_64:
extends: [ ".generate-base" ]
- tags: ["spack", "public", "medium", "x86_64"]
+ tags: ["spack", "public", "medium", "x86_64_v3"]
.generate-aarch64:
extends: [ ".generate-base" ]
@@ -199,74 +194,33 @@ default:
extends: [ ".generate-base" ]
tags: ["spack", "public", "medium", "aarch64", "graviton3"]
-.generate-deprecated:
- extends: [ ".base-job" ]
- stage: generate
- script:
- - uname -a || true
- - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
- - nproc || true
- - . "./share/spack/setup-env.sh"
- - spack --version
- - cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
- - spack env activate --without-view .
- - spack -v --color=always
- ci generate --check-index-only
- --buildcache-destination "${PUSH_BUILDCACHE_DEPRECATED}"
- --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
- --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
+.generate-neoverse-v2:
+ extends: [ ".generate-base" ]
+ tags: ["spack", "public", "medium", "neoverse_v2"]
+
+.generate-win64:
+ extends: [ ".base-job", ".generate-common" ]
+ before_script:
+ - $ErrorActionOld=$ErrorActionPreference
+ - $ErrorActionPreference="SilentlyContinue"
+ - python -c"import psutil;print(psutil.getloadavg())"
+ - (Get-WmiObject Win32_PhysicalMemory | measure-object Capacity -sum).sum/1kb
+ - $ErrorActionPreference=$ErrorActionOld
+ - . .\share\spack\setup-env.ps1
after_script:
- - cat /proc/loadavg || true
- artifacts:
- paths:
- - "${CI_PROJECT_DIR}/jobs_scratch_dir"
- variables:
- KUBERNETES_CPU_REQUEST: 4000m
- KUBERNETES_MEMORY_REQUEST: 16G
- interruptible: true
- timeout: 60 minutes
- retry:
- max: 2
- when:
- - always
- tags: ["spack", "public", "medium", "x86_64"]
+ - $ErrorActionOld=$ErrorActionPreference
+ - $ErrorActionPreference="SilentlyContinue"
+ - python -c"import psutil;print(psutil.getloadavg())"
+ - (Get-WmiObject Win32_PhysicalMemory | measure-object Capacity -sum).sum/1kb
+ - $ErrorActionPreference=$ErrorActionOld
+
+ tags: ["spack", "public", "medium", "x86_64-win"]
+ image: "ghcr.io/johnwparent/windows-server21h2:sha-1c12b61"
.build:
extends: [ ".base-job" ]
stage: build
-protected-publish:
- # Copy binaries from stack-specific mirrors to a root mirror
- stage: publish
- only:
- - /^develop$/
- - /^releases\/v.*/
- - /^v.*/
- - /^develop-[\d]{4}-[\d]{2}-[\d]{2}$/
- image: "ghcr.io/spack/python-aws-bash:0.0.1"
- tags: ["spack", "public", "medium", "aws", "x86_64"]
- retry:
- max: 2
- when: ["runner_system_failure", "stuck_or_timeout_failure"]
- variables:
- SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
- SPACK_PIPELINE_TYPE: "spack_protected_branch"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
- KUBERNETES_CPU_REQUEST: 4000m
- KUBERNETES_MEMORY_REQUEST: 16G
- script:
- - . "./share/spack/setup-env.sh"
- - spack --version
- - export COPY_SPECS_DIR=${CI_PROJECT_DIR}/jobs_scratch_dir/specs_to_copy
- - spack buildcache sync --manifest-glob "${COPY_SPECS_DIR}/*.json"
- - curl -fLsS https://spack.github.io/keys/spack-public-binary-key.pub -o /tmp/spack-public-binary-key.pub
- - aws s3 cp /tmp/spack-public-binary-key.pub "${SPACK_COPY_BUILDCACHE}/build_cache/_pgp/spack-public-binary-key.pub"
- - spack buildcache update-index --keys "${SPACK_COPY_BUILDCACHE}"
- id_tokens:
- GITLAB_OIDC_TOKEN:
- aud: "protected_binary_mirror"
-
########################################
# TEMPLATE FOR ADDING ANOTHER PIPELINE
########################################
@@ -315,7 +269,7 @@ protected-publish:
e4s-generate:
extends: [ ".e4s", ".generate-x86_64"]
- image: ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
e4s-build:
extends: [ ".e4s", ".build" ]
@@ -329,6 +283,29 @@ e4s-build:
job: e4s-generate
########################################
+# E4S Neoverse V2
+########################################
+.e4s-neoverse-v2:
+ extends: [ ".linux_neoverse_v2" ]
+ variables:
+ SPACK_CI_STACK_NAME: e4s-neoverse-v2
+
+e4s-neoverse-v2-generate:
+ extends: [ ".e4s-neoverse-v2", ".generate-neoverse-v2" ]
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
+
+e4s-neoverse-v2-build:
+ extends: [ ".e4s-neoverse-v2", ".build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-neoverse-v2-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: e4s-neoverse-v2-generate
+
+########################################
# E4S Neoverse V1 pipeline
########################################
.e4s-neoverse_v1:
@@ -338,7 +315,7 @@ e4s-build:
e4s-neoverse_v1-generate:
extends: [ ".e4s-neoverse_v1", ".generate-neoverse_v1" ]
- image: ghcr.io/spack/ubuntu20.04-runner-arm64-gcc-11.4:2023.08.01
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
e4s-neoverse_v1-build:
extends: [ ".e4s-neoverse_v1", ".build" ]
@@ -361,7 +338,7 @@ e4s-neoverse_v1-build:
e4s-rocm-external-generate:
extends: [ ".e4s-rocm-external", ".generate-x86_64"]
- image: ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4-rocm5.4.3:2023.08.01
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.2.1:2024.10.08
e4s-rocm-external-build:
extends: [ ".e4s-rocm-external", ".build" ]
@@ -407,7 +384,7 @@ e4s-rocm-external-build:
e4s-oneapi-generate:
extends: [ ".e4s-oneapi", ".generate-x86_64"]
- image: ghcr.io/spack/ubuntu20.04-runner-amd64-oneapi-2023.2.1:2023.08.01
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-oneapi-2024.2:2024.09.06
e4s-oneapi-build:
extends: [ ".e4s-oneapi", ".build" ]
@@ -470,25 +447,51 @@ build_systems-build:
###########################################
# Build tests for different developer tools
+# manylinux2014
###########################################
-.developer-tools:
+.developer-tools-manylinux2014:
extends: [ ".linux_x86_64_v3" ]
variables:
- SPACK_CI_STACK_NAME: developer-tools
+ SPACK_CI_STACK_NAME: developer-tools-manylinux2014
-developer-tools-generate:
- extends: [ ".developer-tools", ".generate-x86_64"]
+developer-tools-manylinux2014-generate:
+ extends: [ ".developer-tools-manylinux2014", ".generate-x86_64"]
+ image: ghcr.io/spack/spack/manylinux2014:2024.03.28
-developer-tools-build:
- extends: [ ".developer-tools", ".build" ]
+developer-tools-manylinux2014-build:
+ extends: [ ".developer-tools-manylinux2014", ".build" ]
trigger:
include:
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
- job: developer-tools-generate
+ job: developer-tools-manylinux2014-generate
strategy: depend
needs:
- artifacts: True
- job: developer-tools-generate
+ job: developer-tools-manylinux2014-generate
+
+###########################################
+# Build tests for different developer tools
+# darwin
+###########################################
+.developer-tools-darwin:
+ extends: [ ".darwin_aarch64" ]
+ variables:
+ SPACK_CI_STACK_NAME: developer-tools-darwin
+
+developer-tools-darwin-generate:
+ tags: [ "macos-ventura", "apple-clang-15", "aarch64-macos" ]
+ extends: [ ".developer-tools-darwin", ".generate-base"]
+
+developer-tools-darwin-build:
+ extends: [ ".developer-tools-darwin", ".build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: developer-tools-darwin-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: developer-tools-darwin-generate
#########################################
# RADIUSS
@@ -673,7 +676,7 @@ tutorial-build:
ml-linux-x86_64-cpu-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-cpu, ".tags-x86_64_v4" ]
- image: ghcr.io/spack/linux-ubuntu22.04-x86_64_v2:v2023-07-01
+ image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
ml-linux-x86_64-cpu-build:
extends: [ ".build", ".ml-linux-x86_64-cpu" ]
@@ -696,7 +699,7 @@ ml-linux-x86_64-cpu-build:
ml-linux-x86_64-cuda-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-cuda, ".tags-x86_64_v4" ]
- image: ghcr.io/spack/linux-ubuntu22.04-x86_64_v2:v2023-07-01
+ image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
ml-linux-x86_64-cuda-build:
extends: [ ".build", ".ml-linux-x86_64-cuda" ]
@@ -719,7 +722,7 @@ ml-linux-x86_64-cuda-build:
ml-linux-x86_64-rocm-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-rocm, ".tags-x86_64_v4" ]
- image: ghcr.io/spack/linux-ubuntu22.04-x86_64_v2:v2023-07-01
+ image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
ml-linux-x86_64-rocm-build:
extends: [ ".build", ".ml-linux-x86_64-rocm" ]
@@ -733,8 +736,54 @@ ml-linux-x86_64-rocm-build:
job: ml-linux-x86_64-rocm-generate
########################################
-# Machine Learning - Darwin aarch64 (MPS)
+# Machine Learning - Linux aarch64 (CPU)
########################################
+.ml-linux-aarch64-cpu:
+ extends: [ ".linux_aarch64" ]
+ variables:
+ SPACK_CI_STACK_NAME: ml-linux-aarch64-cpu
+
+ml-linux-aarch64-cpu-generate:
+ extends: [ ".generate-aarch64", .ml-linux-aarch64-cpu ]
+ image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
+
+ml-linux-aarch64-cpu-build:
+ extends: [ ".build", ".ml-linux-aarch64-cpu" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: ml-linux-aarch64-cpu-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: ml-linux-aarch64-cpu-generate
+
+#########################################
+# Machine Learning - Linux aarch64 (CUDA)
+#########################################
+.ml-linux-aarch64-cuda:
+ extends: [ ".linux_aarch64" ]
+ variables:
+ SPACK_CI_STACK_NAME: ml-linux-aarch64-cuda
+
+ml-linux-aarch64-cuda-generate:
+ extends: [ ".generate-aarch64", .ml-linux-aarch64-cuda ]
+ image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
+
+ml-linux-aarch64-cuda-build:
+ extends: [ ".build", ".ml-linux-aarch64-cuda" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: ml-linux-aarch64-cuda-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: ml-linux-aarch64-cuda-generate
+
+#########################################
+# Machine Learning - Darwin aarch64 (MPS)
+#########################################
.ml-darwin-aarch64-mps:
extends: [".darwin_aarch64"]
variables:
@@ -756,125 +805,58 @@ ml-darwin-aarch64-mps-build:
job: ml-darwin-aarch64-mps-generate
########################################
-# Deprecated CI testing
+# AWS ParallelCluster
########################################
-.deprecated-ci:
+
+.aws-pcluster-generate:
+ image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07", "entrypoint": [""] }
+ before_script:
+ # Use gcc from pre-installed spack store
+ - - . "./share/spack/setup-env.sh"
+ - . "/etc/profile.d/modules.sh"
+ - diff -q "/bootstrap/cloud_pipelines-config.yaml" "share/spack/gitlab/cloud_pipelines/configs/config.yaml" || echo "WARNING Install tree might have changed. You need to rebuild the pcluster-amazonlinux-2 container in spack/gitlab-runners."
+ - cp "share/spack/gitlab/cloud_pipelines/configs/config.yaml" "etc/spack/"
+ - /bin/bash "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh"
+ - rm "etc/spack/config.yaml"
+
+# X86_64_V4 (one pipeline per target)
+.aws-pcluster-x86_64_v4:
variables:
- SPACK_CI_STACK_NAME: deprecated
+ SPACK_CI_STACK_NAME: aws-pcluster-x86_64_v4
-deprecated-ci-generate:
- extends: [ ".generate-deprecated", ".deprecated-ci" ]
+aws-pcluster-generate-x86_64_v4:
+ extends: [ ".linux_x86_64_v4", ".aws-pcluster-x86_64_v4", ".generate-base", ".tags-x86_64_v4", ".aws-pcluster-generate"]
-deprecated-ci-build:
- extends: [ ".build", ".deprecated-ci" ]
+aws-pcluster-build-x86_64_v4:
+ extends: [ ".linux_x86_64_v4", ".aws-pcluster-x86_64_v4", ".build" ]
trigger:
include:
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
- job: deprecated-ci-generate
+ job: aws-pcluster-generate-x86_64_v4
strategy: depend
needs:
- artifacts: True
- job: deprecated-ci-generate
-
-########################################
-# AWS PCLUSTER
-########################################
-
-.aws-pcluster-generate-image:
- image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2023-05-25", "entrypoint": [""] }
-
-.aws-pcluster-generate:
- before_script:
- # Use gcc from local container buildcache
- - - . "./share/spack/setup-env.sh"
- - . /etc/profile.d/modules.sh
- - spack buildcache rebuild-index /bootstrap/local-cache/
- - spack mirror add local-cache /bootstrap/local-cache
- - spack gpg trust /bootstrap/public-key
- - cd "${CI_PROJECT_DIR}" && curl -sOL https://raw.githubusercontent.com/spack/spack-configs/main/AWS/parallelcluster/postinstall.sh
- - sed -i -e "s/spack arch -t/echo ${SPACK_TARGET_ARCH}/g" postinstall.sh
- - sed -i.bkp s/"spack install gcc"/"spack install --cache-only --reuse gcc"/ postinstall.sh
- - diff postinstall.sh postinstall.sh.bkp || echo Done
- - /bin/bash postinstall.sh -fg
- - spack config --scope site add "packages:all:target:[${SPACK_TARGET_ARCH}]"
- after_script:
- - - mv "${CI_PROJECT_DIR}/postinstall.sh" "${CI_PROJECT_DIR}/jobs_scratch_dir/"
-
-# Icelake (one pipeline per target)
-.aws-pcluster-icelake:
- variables:
- SPACK_CI_STACK_NAME: aws-pcluster-icelake
-
-# aws-pcluster-generate-icelake:
-# extends: [ ".linux_icelake", ".aws-pcluster-icelake", ".generate-x86_64", ".tags-x86_64_v4", ".aws-pcluster-generate", ".aws-pcluster-generate-image" ]
-
-# aws-pcluster-build-icelake:
-# extends: [ ".linux_icelake", ".aws-pcluster-icelake", ".build" ]
-# trigger:
-# include:
-# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
-# job: aws-pcluster-generate-icelake
-# strategy: depend
-# needs:
-# - artifacts: True
-# job: aws-pcluster-generate-icelake
-
-# Skylake_avx512 (one pipeline per target)
-.aws-pcluster-skylake:
- variables:
- SPACK_CI_STACK_NAME: aws-pcluster-skylake
-
-# aws-pcluster-generate-skylake:
-# extends: [ ".linux_skylake", ".aws-pcluster-skylake", ".generate-x86_64", ".tags-x86_64_v4", ".aws-pcluster-generate", ".aws-pcluster-generate-image" ]
-
-# aws-pcluster-build-skylake:
-# extends: [ ".linux_skylake", ".aws-pcluster-skylake", ".build" ]
-# trigger:
-# include:
-# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
-# job: aws-pcluster-generate-skylake
-# strategy: depend
-# needs:
-# - artifacts: True
-# job: aws-pcluster-generate-skylake
-
-# Neoverse_n1 (one pipeline per target)
-.aws-pcluster-neoverse_n1:
- variables:
- SPACK_CI_STACK_NAME: aws-pcluster-neoverse_n1
-
-# aws-pcluster-generate-neoverse_n1:
-# extends: [ ".linux_neoverse_n1", ".aws-pcluster-neoverse_n1", ".generate-aarch64", ".aws-pcluster-generate", ".aws-pcluster-generate-image" ]
-
-# aws-pcluster-build-neoverse_n1:
-# extends: [ ".linux_neoverse_n1", ".aws-pcluster-neoverse_n1", ".build" ]
-# trigger:
-# include:
-# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
-# job: aws-pcluster-generate-neoverse_n1
-# strategy: depend
-# needs:
-# - artifacts: True
-# job: aws-pcluster-generate-neoverse_n1
+ job: aws-pcluster-generate-x86_64_v4
# Neoverse_v1 (one pipeline per target)
.aws-pcluster-neoverse_v1:
variables:
SPACK_CI_STACK_NAME: aws-pcluster-neoverse_v1
-# aws-pcluster-generate-neoverse_v1:
-# extends: [ ".linux_neoverse_v1", ".aws-pcluster-neoverse_v1", ".generate-aarch64", ".aws-pcluster-generate", ".aws-pcluster-generate-image" ]
+aws-pcluster-generate-neoverse_v1:
+ # TODO: Use updated runner tags: https://github.com/spack/spack-infrastructure/pull/694/files
+ extends: [ ".linux_neoverse_v1", ".aws-pcluster-neoverse_v1", ".generate-neoverse_v1", ".aws-pcluster-generate"]
-# aws-pcluster-build-neoverse_v1:
-# extends: [ ".linux_neoverse_v1", ".aws-pcluster-neoverse_v1", ".build" ]
-# trigger:
-# include:
-# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
-# job: aws-pcluster-generate-neoverse_v1
-# strategy: depend
-# needs:
-# - artifacts: True
-# job: aws-pcluster-generate-neoverse_v1
+aws-pcluster-build-neoverse_v1:
+ extends: [ ".linux_neoverse_v1", ".aws-pcluster-neoverse_v1", ".build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: aws-pcluster-generate-neoverse_v1
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: aws-pcluster-generate-neoverse_v1
# Cray definitions
.generate-cray:
@@ -883,6 +865,15 @@ deprecated-ci-build:
- echo $PATH
- module avail
- module list
+ - uname -a || true
+ - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
+ - nproc || true
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
+ - . "./share/spack/setup-env.sh"
+ after_script:
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
.generate-cray-rhel:
tags: [ "cray-rhel-zen4", "public" ]
@@ -905,6 +896,7 @@ e4s-cray-rhel-generate:
extends: [ ".generate-cray-rhel", ".e4s-cray-rhel" ]
e4s-cray-rhel-build:
+ allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
extends: [ ".build", ".e4s-cray-rhel" ]
trigger:
include:
@@ -927,6 +919,7 @@ e4s-cray-sles-generate:
extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
e4s-cray-sles-build:
+ allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
extends: [ ".build", ".e4s-cray-sles" ]
trigger:
include:
@@ -936,3 +929,71 @@ e4s-cray-sles-build:
needs:
- artifacts: True
job: e4s-cray-sles-generate
+
+#######################################
+# Windows Visualization Tools
+#######################################
+.windows-vis:
+ extends: [".win64-msvc2019"]
+ variables:
+ SPACK_CI_STACK_NAME: windows-vis
+
+windows-vis-generate:
+ extends: [ ".generate-win64", ".windows-vis" ]
+
+windows-vis-build:
+ extends: [ ".build", ".windows-vis"]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: windows-vis-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: windows-vis-generate
+
+#######################################
+# Bootstrap x86_64-linux-gnu
+#######################################
+.bootstrap-x86_64-linux-gnu:
+ extends: [ ".linux_x86_64_v3" ]
+ variables:
+ SPACK_CI_STACK_NAME: bootstrap-x86_64-linux-gnu
+
+bootstrap-x86_64-linux-gnu-generate:
+ extends: [ .generate-x86_64, .bootstrap-x86_64-linux-gnu ]
+ image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
+
+bootstrap-x86_64-linux-gnu-build:
+ extends: [ .build, .bootstrap-x86_64-linux-gnu ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: bootstrap-x86_64-linux-gnu-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: bootstrap-x86_64-linux-gnu-generate
+
+#######################################
+# Bootstrap aarch64-darwin
+#######################################
+.bootstrap-aarch64-darwin:
+ extends: [.darwin_aarch64]
+ variables:
+ SPACK_CI_STACK_NAME: bootstrap-aarch64-darwin
+
+bootstrap-aarch64-darwin-generate:
+ tags: [macos-ventura, apple-clang-15, aarch64-macos]
+ extends: [.bootstrap-aarch64-darwin, .generate-base]
+
+bootstrap-aarch64-darwin-build:
+ extends: [.bootstrap-aarch64-darwin, .build]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: bootstrap-aarch64-darwin-generate
+ strategy: depend
+ needs:
+ - artifacts: true
+ job: bootstrap-aarch64-darwin-generate
diff --git a/share/spack/gitlab/cloud_pipelines/configs/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/ci.yaml
index c27065b3be..10eb7459a7 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/ci.yaml
@@ -2,7 +2,6 @@ ci:
target: gitlab
broken-tests-packages:
- - gptune
- superlu-dist # srun -n 4 hangs
- papyrus
@@ -11,7 +10,9 @@ ci:
pipeline-gen:
- build-job:
before_script-:
- - - spack list --count # ensure that spack's cache is populated
+ - - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
+ - - touch ${SPACK_USER_CACHE_PATH}/cache/*/* # bump mtime of cache so it is not invalidated
- - spack env activate --without-view ${SPACK_CONCRETE_ENV_DIR}
- spack compiler list
- if [ -n "$SPACK_BUILD_JOBS" ]; then spack config add "config:build_jobs:$SPACK_BUILD_JOBS"; fi
@@ -24,12 +25,13 @@ ci:
script::
- - spack config blame mirrors
- spack --color=always --backtrace ci rebuild --tests > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
- - - spack python ${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
- --prefix /home/software/spack:${CI_PROJECT_DIR}/opt/spack
- --log install_times.json
- ${SPACK_ARTIFACTS_ROOT}/user_data/install_times.json
after_script:
- - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
+ - - time ./bin/spack python ${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
+ --prefix /home/software/spack:${CI_PROJECT_DIR}/opt/spack
+ --log install_times.json
+ ${SPACK_ARTIFACTS_ROOT}/user_data/install_times.json || true
variables:
CI_JOB_SIZE: "default"
CI_GPG_KEY_ROOT: /mnt/key
@@ -104,10 +106,15 @@ ci:
- noop-job:
tags: ["service"]
+ image: busybox:latest
variables:
+ CI_OIDC_REQUIRED: 0
+ GIT_STRATEGY: "none"
CI_JOB_SIZE: "small"
- KUBERNETES_CPU_REQUEST: "500m"
- KUBERNETES_MEMORY_REQUEST: "500M"
+ KUBERNETES_CPU_REQUEST: "100m"
+ KUBERNETES_MEMORY_REQUEST: "5M"
+ before_script:: []
+ after_script:: []
- any-job:
tags: ["spack"]
@@ -116,7 +123,7 @@ ci:
# Disable local configs to avoid issues on shell runners
SPACK_DISABLE_LOCAL_CONFIG: "1"
before_script:
- - - export SPACK_USER_CACHE_PATH="${CI_PROJECT_DIR}/_user_cache/"
+ - - export SPACK_USER_CACHE_PATH="${CI_PROJECT_DIR}/tmp/_user_cache/"
- - uname -a || true
- grep -E "vendor|model name" /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
- nproc || true
diff --git a/share/spack/gitlab/cloud_pipelines/configs/concretizer.yaml b/share/spack/gitlab/cloud_pipelines/configs/concretizer.yaml
index 3e98ced6fd..9006e2ec56 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/concretizer.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/concretizer.yaml
@@ -1,4 +1,3 @@
concretizer:
reuse: false
unify: false
-
diff --git a/share/spack/gitlab/cloud_pipelines/configs/config.yaml b/share/spack/gitlab/cloud_pipelines/configs/config.yaml
index 9ed4118e3e..fef23ade4b 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/config.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/config.yaml
@@ -1,5 +1,4 @@
config:
- concretizer: clingo
db_lock_timeout: 120
install_tree:
root: /home/software/spack
diff --git a/share/spack/gitlab/cloud_pipelines/configs/cray-rhel/config.yaml b/share/spack/gitlab/cloud_pipelines/configs/cray-rhel/config.yaml
index 6cf3846bdd..893ff7e11a 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/cray-rhel/config.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/cray-rhel/config.yaml
@@ -1,5 +1,4 @@
config:
- concretizer: clingo
db_lock_timeout: 120
install_tree:
root: $spack/opt/spack
diff --git a/share/spack/gitlab/cloud_pipelines/configs/darwin/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/darwin/ci.yaml
index 8dfb169a3e..c826c0ea3d 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/darwin/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/darwin/ci.yaml
@@ -1,4 +1,4 @@
ci:
pipeline-gen:
- build-job-remove:
- image: macos-run-on-metal
+ image:: macos-run-on-metal
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml
index 986277bfdd..b6e41a9af0 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml
@@ -8,77 +8,120 @@ ci:
- match_behavior: first
submapping:
- match:
- - hipblas
- - llvm
- - llvm-amdgpu
- - pango
- - paraview
- - py-tensorflow
- py-torch
- - qt
+ build-job:
+ tags: [ "spack", "huge" ]
+ variables:
+ CI_JOB_SIZE: huge
+ SPACK_BUILD_JOBS: "12"
+ KUBERNETES_CPU_REQUEST: 12000m
+ KUBERNETES_MEMORY_REQUEST: 48G
+
+ - match:
+ - rust
+ build-job:
+ tags: [ "spack", "huge" ]
+ variables:
+ CI_JOB_SIZE: huge
+ SPACK_BUILD_JOBS: "12"
+ KUBERNETES_CPU_REQUEST: 12000m
+ KUBERNETES_MEMORY_REQUEST: 35G
+
+ - match:
+ - py-tensorflow
+ - py-torchaudio
+ build-job:
+ tags: [ "spack", "huge" ]
+ variables:
+ CI_JOB_SIZE: huge
+ SPACK_BUILD_JOBS: "12"
+ KUBERNETES_CPU_REQUEST: 12000m
+ KUBERNETES_MEMORY_REQUEST: 32G
+
+ - match:
+ - py-jaxlib
+ build-job:
+ tags: [ "spack", "huge" ]
+ variables:
+ CI_JOB_SIZE: huge
+ SPACK_BUILD_JOBS: "12"
+ KUBERNETES_CPU_REQUEST: 12000m
+ KUBERNETES_MEMORY_REQUEST: 29G
+
+ - match:
+ - nvhpc
+ - paraview
+ build-job:
+ tags: [ "spack", "huge" ]
+ variables:
+ CI_JOB_SIZE: huge
+ SPACK_BUILD_JOBS: "12"
+ KUBERNETES_CPU_REQUEST: 12000m
+ KUBERNETES_MEMORY_REQUEST: 24G
+
+ - match:
+ - llvm
+ build-job:
+ tags: [ "spack", "huge" ]
+ variables:
+ CI_JOB_SIZE: huge
+ SPACK_BUILD_JOBS: "12"
+ KUBERNETES_CPU_REQUEST: 12000m
+ KUBERNETES_MEMORY_REQUEST: 21G
+
+ - match:
+ - dealii
- rocblas
- - visit
build-job:
tags: [ "spack", "huge" ]
variables:
CI_JOB_SIZE: huge
SPACK_BUILD_JOBS: "12"
KUBERNETES_CPU_REQUEST: 12000m
- KUBERNETES_MEMORY_REQUEST: 42G
+ KUBERNETES_MEMORY_REQUEST: 19G
+
+ - match:
+ - ecp-data-vis-sdk
+ - intel-tbb
+ - llvm-amdgpu
+ - salmon
+ - trilinos
+ build-job:
+ tags: [ "spack", "large" ]
+ variables:
+ CI_JOB_SIZE: large
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: 8000m
+ KUBERNETES_MEMORY_REQUEST: 15G
- match:
- ascent
- - atk
- axom
- cistem
- - cmake
- - ctffind
- cuda
- - dealii
- dray
- - dyninst
- ecp-data-vis-sdk
- gcc
- ginkgo
- hdf5
- - hpx
- kokkos-kernels
- - kokkos-nvcc-wrapper
- - lbann
- - magma
- - mesa
- mfem
- mpich
- netlib-lapack
- - nvhpc
- - oce
- openblas
- openfoam
- openturns
- - parallelio
- - plumed
- - precice
- #- py-tensorflow
- #- qt
- raja
- relion
- #- rocblas
- - rocfft
- rocsolver
- rocsparse
- - rust
- - slate
- strumpack
- sundials
- trilinos
- - umpire
- #- visit
+ - visit
- vtk
- vtk-h
- vtk-m
- - warpx
- - wrf
- - wxwidgets
build-job:
tags: [ "spack", "large" ]
variables:
@@ -88,14 +131,82 @@ ci:
KUBERNETES_MEMORY_REQUEST: 12G
- match:
+ - hpx
+ - slate
+ - warpx
+ build-job:
+ tags: [ "spack", "large" ]
+ variables:
+ CI_JOB_SIZE: "large"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "9G"
+
+ - match:
+ - hipblas
+ - rocfft
+ - umpire
+ build-job:
+ tags: [ "spack", "large" ]
+ variables:
+ CI_JOB_SIZE: "large"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "8G"
+
+ - match:
+ - lbann
+ - magma
+ - mesa
+ - qt
+ build-job:
+ tags: [ "spack", "large" ]
+ variables:
+ CI_JOB_SIZE: "large"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "7G"
+
+ - match:
+ - dyninst
+ - precice
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "6G"
+
+ - match:
+ - cmake
+ - plumed
+ - wrf
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "5G"
+
+ - match:
+ - parallelio
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "3G"
+
+ - match:
- adios2
- amrex
- archer
- ascent
- autoconf-archive
- axom
- - binutils
- - blaspp
- blt
- boost
- butterflypack
@@ -106,15 +217,10 @@ ci:
- conduit
- curl
- datatransferkit
- - double-conversion
- dray
- - eigen
- faodel
- - ffmpeg
- - fftw
- fortrilinos
- gettext
- - gperftools
- gptune
- hdf5
- heffte
@@ -126,7 +232,6 @@ ci:
- lammps
- lapackpp
- legion
- - libtool
- libxml2
- libzmq
- llvm-openmp-ompt
@@ -134,18 +239,14 @@ ci:
- mfem
- mpich
- mvapich2
- - nasm
- netlib-scalapack
- omega-h
- - openblas
- openjpeg
- openmpi
- openpmd-api
- pagmo2
- papyrus
- parsec
- - pdt
- - pegtl
- petsc
- pumi
- py-beniget
@@ -157,9 +258,7 @@ ci:
- py-scipy
- py-statsmodels
- py-warlock
- - py-warpx
- raja
- - samrai
- slepc
- slurm
- sqlite
@@ -172,6 +271,7 @@ ci:
- vtk
- vtk-h
- vtk-m
+ - warpx +python
- zfp
build-job:
tags: [ "spack", "medium" ]
@@ -182,6 +282,56 @@ ci:
KUBERNETES_MEMORY_REQUEST: "4G"
- match:
+ - oce
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "3G"
+
+ - match:
+ - binutils
+ - blaspp
+ - double-conversion
+ - eigen
+ - fftw
+ - libtool
+ - nasm
+ - pegtl
+ - pdt
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "2"
+ KUBERNETES_CPU_REQUEST: "2000m"
+ KUBERNETES_MEMORY_REQUEST: "2G"
+
+ - match:
+ - kokkos-nvcc-wrapper
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "8"
+ KUBERNETES_CPU_REQUEST: "8000m"
+ KUBERNETES_MEMORY_REQUEST: "1G"
+
+ - match:
+ - ffmpeg
+ - gperftools
+ - samrai
+ build-job:
+ tags: [ "spack", "medium" ]
+ variables:
+ CI_JOB_SIZE: "medium"
+ SPACK_BUILD_JOBS: "2"
+ KUBERNETES_CPU_REQUEST: "2000m"
+ KUBERNETES_MEMORY_REQUEST: "1G"
+
+ - match:
- alsa-lib
- ant
- antlr
@@ -243,7 +393,6 @@ ci:
- ncurses
- ninja
- numactl
- - openblas
- openjdk
- openssh
- openssl
@@ -280,7 +429,6 @@ ci:
- tar
- tcl
- texinfo
- - tut
- unzip
- util-linux-uuid
- util-macros
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_n1/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_n1/ci.yaml
deleted file mode 100644
index 9ba2680702..0000000000
--- a/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_n1/ci.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-ci:
- pipeline-gen:
- - any-job:
- variables:
- SPACK_TARGET_ARCH: neoverse_n1
- - build-job:
- tags: ["aarch64", "graviton2"]
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v1/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v1/ci.yaml
index e874fc6522..82aa1eae7b 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v1/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v1/ci.yaml
@@ -1,7 +1,4 @@
ci:
pipeline-gen:
- - any-job:
- variables:
- SPACK_TARGET_ARCH: neoverse_v1
- build-job:
tags: ["aarch64", "graviton3"]
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml
new file mode 100644
index 0000000000..b5136835b2
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml
@@ -0,0 +1,7 @@
+ci:
+ pipeline-gen:
+ - any-job:
+ variables:
+ SPACK_TARGET_ARCH: neoverse_v2
+ - build-job:
+ tags: ["neoverse_v2"]
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/ppc64le/concretizer.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/ppc64le/concretizer.yaml
new file mode 100644
index 0000000000..3050c32a17
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/ppc64le/concretizer.yaml
@@ -0,0 +1,3 @@
+concretizer:
+ targets:
+ granularity: generic
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/skylake_avx512/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/skylake_avx512/ci.yaml
deleted file mode 100644
index 0a7bbb6f19..0000000000
--- a/share/spack/gitlab/cloud_pipelines/configs/linux/skylake_avx512/ci.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-ci:
- pipeline-gen:
- - any-job:
- variables:
- SPACK_TARGET_ARCH: skylake_avx512
- - build-job:
- before_script:
- - - curl -LfsS "https://github.com/JuliaBinaryWrappers/GNUMake_jll.jl/releases/download/GNUMake-v4.3.0+1/GNUMake.v4.3.0.x86_64-linux-gnu.tar.gz" -o gmake.tar.gz
- - printf "fef1f59e56d2d11e6d700ba22d3444b6e583c663d6883fd0a4f63ab8bd280f0f gmake.tar.gz" | sha256sum --check --strict --quiet
- - tar -xzf gmake.tar.gz -C /usr bin/make 2> /dev/null
- tags: ["x86_64_v4"]
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v3/concretizer.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v3/concretizer.yaml
new file mode 100644
index 0000000000..3050c32a17
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v3/concretizer.yaml
@@ -0,0 +1,3 @@
+concretizer:
+ targets:
+ granularity: generic
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/icelake/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/ci.yaml
index 036a441946..ae14967dd5 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/linux/icelake/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/ci.yaml
@@ -1,8 +1,5 @@
ci:
pipeline-gen:
- - any-job:
- variables:
- SPACK_TARGET_ARCH: icelake
- build-job:
before_script:
- - curl -LfsS "https://github.com/JuliaBinaryWrappers/GNUMake_jll.jl/releases/download/GNUMake-v4.3.0+1/GNUMake.v4.3.0.x86_64-linux-gnu.tar.gz" -o gmake.tar.gz
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/concretizer.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/concretizer.yaml
new file mode 100644
index 0000000000..3050c32a17
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v4/concretizer.yaml
@@ -0,0 +1,3 @@
+concretizer:
+ targets:
+ granularity: generic
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml
new file mode 100644
index 0000000000..2d8aedf6d4
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/ci.yaml
@@ -0,0 +1,18 @@
+ci:
+ pipeline-gen:
+ - build-job:
+ after_script::
+ - Write-Output "Done"
+
+ before_script::
+ - fsutil 8dot3name set C:\ 0
+ - . .\share\spack\setup-env.ps1
+ - If (Test-Path -path C:\\key\intermediate_ci_signing_key.gpg) { spack.ps1 gpg trust C:\\key\intermediate_ci_signing_key.gpg }
+ - If (Test-Path -path C:\\key\spack_public_key.gpg) { spack.ps1 gpg trust C:\\key\spack_public_key.gpg }
+
+ script::
+ - spack.ps1 env activate --without-view ${SPACK_CONCRETE_ENV_DIR}
+ - spack.ps1 config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{hash}'"
+ - mkdir ${SPACK_ARTIFACTS_ROOT}/user_data
+ - spack.ps1 --backtrace ci rebuild | Tee-Object -FilePath "${env:SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt" 2>&1 | Tee-Object -FilePath "${env:SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt"
+ image: "ghcr.io/johnwparent/windows-server21h2:sha-1c12b61"
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml
new file mode 100644
index 0000000000..dcabcb2c8a
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/config.yaml
@@ -0,0 +1,10 @@
+config:
+ build_stage::
+ - 'C:/spack stage'
+ install_tree:
+ root: "C:/spack install"
+ # Path lengths on windows doesn't support much padding
+ padded_length: 0
+ # Reduce the projections to only including the hash to avoid path length issues
+ projections:
+ all: '{hash}'
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml
new file mode 100644
index 0000000000..b6d0089c5a
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/packages.yaml
@@ -0,0 +1,25 @@
+packages:
+ all:
+ target: [x86_64]
+ tbb:
+ require: "intel-tbb"
+ cmake:
+ externals:
+ - spec: cmake@3.28.0-msvc1
+ prefix: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake"
+ buildable: False
+ ninja:
+ externals:
+ - spec: ninja@1.11.0
+ prefix: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\Ninja"
+ buildable: False
+ wgl:
+ externals:
+ - spec: wgl@10.0.22621 plat=x64
+ prefix: "C:\\Program Files (x86)\\Windows Kits\\10"
+ buildable: False
+ win-sdk:
+ externals:
+ - spec: win-sdk@10.0.22621 plat=x64
+ prefix: "C:\\Program Files (x86)\\Windows Kits\\10"
+ buildable: False
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml
new file mode 100644
index 0000000000..8e3b45c336
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/ci.yaml
@@ -0,0 +1,4 @@
+ci:
+ pipeline-gen:
+ - build-job:
+ tags: [x86_64-win]
diff --git a/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml
new file mode 100644
index 0000000000..a08b7cdcfb
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/win64/x86_64/packages.yaml
@@ -0,0 +1,3 @@
+packages:
+ all:
+ target: [x86_64]
diff --git a/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py b/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
index ec40c4c230..d27d1656ba 100644
--- a/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
+++ b/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
@@ -37,10 +37,14 @@ if __name__ == "__main__":
# Look in the list of prefixes for logs
for prefix in prefixes:
- logs = find_logs(prefix, args.log)
+ print(f"Walking {prefix}")
+ logs = [log for log in find_logs(prefix, args.log)]
+ print(f" * found {len(logs)} logs")
for log in logs:
+ print(f" * appending data for {log}")
with open(log) as fd:
data.append(json.load(fd))
+ print(f"Writing {args.output_file}")
with open(args.output_file, "w") as fd:
json.dump(data, fd)
diff --git a/share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py b/share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py
new file mode 100644
index 0000000000..7806e10201
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/scripts/common/expand_vars.py
@@ -0,0 +1,10 @@
+import argparse
+import os
+
+parser = argparse.ArgumentParser()
+parser.add_argument("input", type=argparse.FileType("r"))
+parser.add_argument("out", type=argparse.FileType("w"))
+
+args = parser.parse_args()
+
+args.out.write(os.path.expandvars(args.input.read()))
diff --git a/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh b/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh
new file mode 100755
index 0000000000..fc77f56e76
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh
@@ -0,0 +1,112 @@
+#!/usr/bin/env bash
+#
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+set -e
+
+set_pcluster_defaults() {
+ # Set versions of pre-installed software in packages.yaml
+ [ -z "${SLURM_ROOT}" ] && ls /etc/systemd/system/slurm* &>/dev/null && \
+ SLURM_ROOT=$(dirname $(dirname "$(awk '/ExecStart=/ {print $1}' /etc/systemd/system/slurm* | sed -e 's?^.*=??1' | head -n1)"))
+ # Fallback to default location if SLURM not in systemd
+ [ -z "${SLURM_ROOT}" ] && [ -d "/opt/slurm" ] && SLURM_ROOT=/opt/slurm
+ [ -z "${SLURM_VERSION}" ] && SLURM_VERSION=$(strings "${SLURM_ROOT}"/lib/libslurm.so | grep -e '^VERSION' | awk '{print $2}' | sed -e 's?"??g')
+ [ -z "${LIBFABRIC_VERSION}" ] && LIBFABRIC_VERSION=$(awk '/Version:/{print $2}' "$(find /opt/amazon/efa/ -name libfabric.pc | head -n1)" | sed -e 's?~??g' -e 's?amzn.*??g')
+ export SLURM_ROOT SLURM_VERSION LIBFABRIC_VERSION
+
+ envsubst < "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}/packages.yaml" > "${SPACK_ROOT}"/etc/spack/packages.yaml
+}
+
+patch_compilers_yaml() {
+ # Graceful exit if package not found by spack
+ set -o pipefail
+ compilers_yaml="${SPACK_ROOT}/etc/spack/compilers.yaml"
+ [ -f "${compilers_yaml}" ] || {
+ echo "Cannot find ${compilers_yaml}, compiler setup might now be optimal."
+ return
+ }
+
+ # System ld is too old for amzn linux2
+ spack_gcc_version=$(spack find --format '{version}' gcc)
+ binutils_path=$(spack find -p binutils | awk '/binutils/ {print $2}' | head -n1)
+ if [ -d "${binutils_path}" ] && [ -n "${spack_gcc_version}" ]; then python3 <<EOF
+import yaml
+
+with open("${compilers_yaml}",'r') as f:
+ compilers=yaml.safe_load(f)
+
+for c in compilers["compilers"]:
+ if "arm" in c["compiler"]["spec"] or "intel" in c["compiler"]["spec"] or "oneapi" in c["compiler"]["spec"] \
+ or "${spack_gcc_version}" in c["compiler"]["spec"]:
+ compilers["compilers"][compilers["compilers"].index(c)]["compiler"]["environment"] = {"prepend_path":{"PATH":"${binutils_path}/bin"}}
+
+with open("${compilers_yaml}",'w') as f:
+ yaml.dump(compilers, f)
+EOF
+ fi
+ # Oneapi needs extra_rpath to gcc libstdc++.so.6
+ if [ "x86_64" == "$(arch)" ] && oneapi_gcc_version=$(spack find --format '{compiler}' intel-oneapi-compilers | sed -e 's/=//g') && \
+ [ -n "${oneapi_gcc_version}" ] && oneapi_gcc_path=$(spack find -p "${oneapi_gcc_version}" | grep "${oneapi_gcc_version}" | awk '{print $2}' | head -n1) && \
+ [ -d "${oneapi_gcc_path}" ]; then python3 <<EOF
+import yaml
+
+with open("${compilers_yaml}",'r') as f:
+ compilers=yaml.safe_load(f)
+
+for c in compilers["compilers"]:
+ if "oneapi" in c["compiler"]["spec"]:
+ compilers["compilers"][compilers["compilers"].index(c)]["compiler"]["extra_rpaths"] = ["${oneapi_gcc_path}/lib64"]
+
+with open("${compilers_yaml}",'w') as f:
+ yaml.dump(compilers, f)
+EOF
+ fi
+}
+
+install_compilers() {
+ # Install Intel compilers through a static spack version such that the compiler's hash does not change.
+ # The compilers needs to be in the same install tree as the rest of the software such that the path
+ # relocation works correctly. This holds the danger that this part will fail when the current spack gets
+ # incompatible with the one in $spack_intel_compiler_commit. Therefore, we make intel installations optional
+ # in packages.yaml files and add a fallback `%gcc` version for each application.
+ if [ -f "/bootstrap-compilers/spack/etc/spack/compilers.yaml" ]; then
+ # Running inside a gitlab CI container
+ # Intel and gcc@12 compiler are pre-installed and their location is known in
+ cp /bootstrap-compilers/spack/etc/spack/compilers.yaml "${SPACK_ROOT}"/etc/spack/
+ else
+ spack compiler add --scope site
+ # We need to treat compilers as essentially external, i.e. their installation location
+ # (including hash) must not change when any changes are pushed to spack. The reason is that
+ # changes in the compilers are not reflected in the package hashes built in the CI. Hence, those
+ # packages will reference a wrong compiler path once the path changes.
+
+ # `gcc@12.4.0%gcc@7.3.1` is created as part of building the pipeline containers.
+ # `ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07` produced the following hashes.
+ if [ "x86_64" == "$(arch)" ]; then
+ gcc_hash="pttzchh7o54nhmycj4wgzw5mic6rk2nb"
+ else
+ gcc_hash="v6wxye6ijzrxnzxftcwnpu3psohsjl2b"
+ fi
+
+ spack install /${gcc_hash}
+ (
+ spack load gcc
+ spack compiler add --scope site
+ )
+
+ if [ "x86_64" == "$(arch)" ]; then
+ # 2024.1.0 is the last oneapi compiler that works on AL2 and is the one used to compile packages in the build cache.
+ spack install intel-oneapi-compilers@2024.1.0
+ (
+ . "$(spack location -i intel-oneapi-compilers)"/setvars.sh; spack compiler add --scope site \
+ || true
+ )
+ fi
+ fi
+}
+
+set_pcluster_defaults
+install_compilers
+patch_compilers_yaml
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml
index abd8f4d024..86385c90d4 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml
@@ -4,24 +4,24 @@ spack:
all:
providers:
blas:
- - openblas
+ - openblas
mkl:
- - intel-oneapi-mkl
+ - intel-oneapi-mkl
mpi:
- - openmpi
- - mpich
+ - openmpi
+ - mpich
variants: +mpi
tbb:
- require: "intel-tbb"
+ require: intel-tbb
binutils:
variants: +ld +gold +headers +libiberty ~nls
version:
- - 2.36.1
+ - 2.36.1
doxygen:
version:
- - 1.8.20
+ - 1.8.20
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -30,8 +30,6 @@ spack:
variants: +pic +xz
mesa:
variants: ~llvm
- mesa18:
- variants: ~llvm
mpich:
variants: ~wrapperrpath netmod=ofi device=ch4
ncurses:
@@ -41,13 +39,17 @@ spack:
openmpi:
variants: fabrics=ofi +legacylaunchers
openturns:
- version: [1.18]
+ version:
+ - '1.18'
relion:
variants: ~mklfft
# texlive:
# version: [20210325]
trilinos:
- variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
+ +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+ +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+ +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
@@ -81,7 +83,7 @@ spack:
- openfoam
- osu-micro-benchmarks
- parallel
- - paraview
+ # - paraview
- picard
- quantum-espresso
- raja
@@ -110,8 +112,8 @@ spack:
- '%gcc@7.3.1'
- target:
- - 'target=aarch64'
- - 'target=neoverse_n1'
+ - target=aarch64
+ - target=neoverse_n1
specs:
@@ -134,7 +136,7 @@ spack:
ci:
pipeline-gen:
- build-job:
- image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09", "entrypoint": [""] }
+ image: {name: ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09, entrypoint: ['']}
cdash:
build-group: AWS Packages
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml
index 038761ac18..2da054256c 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml
@@ -4,24 +4,24 @@ spack:
all:
providers:
blas:
- - openblas
+ - openblas
mkl:
- - intel-oneapi-mkl
+ - intel-oneapi-mkl
mpi:
- - openmpi
- - mpich
+ - openmpi
+ - mpich
variants: +mpi
tbb:
- require: "intel-tbb"
+ require: intel-tbb
binutils:
variants: +ld +gold +headers +libiberty ~nls
version:
- - 2.36.1
+ - 2.36.1
doxygen:
version:
- - 1.8.20
+ - 1.8.20
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -30,8 +30,6 @@ spack:
variants: +pic +xz
mesa:
variants: ~llvm
- mesa18:
- variants: ~llvm
mpich:
variants: ~wrapperrpath netmod=ofi device=ch4
ncurses:
@@ -41,13 +39,17 @@ spack:
openmpi:
variants: fabrics=ofi +legacylaunchers
openturns:
- version: [1.18]
+ version:
+ - '1.18'
relion:
variants: ~mklfft
# texlive:
# version: [20210325]
trilinos:
- variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
+ +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+ +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+ +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
@@ -87,7 +89,7 @@ spack:
- openfoam
- osu-micro-benchmarks
- parallel
- - paraview
+ # - paraview
- picard
- quantum-espresso
# Build broken for gcc@7.3.1 x86_64_v4 (error: '_mm512_loadu_epi32' was not declared in this scope)
@@ -117,7 +119,7 @@ spack:
- '%gcc@7.3.1'
- target:
- - 'target=x86_64_v3'
+ - target=x86_64_v3
specs:
@@ -145,7 +147,7 @@ spack:
ci:
pipeline-gen:
- build-job:
- image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09", "entrypoint": [""] }
+ image: {name: ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09, entrypoint: ['']}
cdash:
build-group: AWS Packages
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-icelake/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-icelake/spack.yaml
deleted file mode 100644
index 85cf766068..0000000000
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-icelake/spack.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-spack:
- view: false
-
- definitions:
- - compiler_specs:
- - gcc
- - gettext
-
- - compiler_target:
- - '%gcc@7.3.1 target=x86_64_v3'
-
- - optimized_configs:
- # - gromacs
- - lammps
- # - mpas-model
- - openfoam
- # - palace
- # - py-devito
- # - quantum-espresso
- # - wrf
-
- - optimized_libs:
- - mpich
- - openmpi
-
- specs:
- - matrix:
- - - $compiler_specs
- - - $compiler_target
- - $optimized_configs
- # - $optimized_libs
-
- ci:
- pipeline-gen:
- - build-job:
- image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2023-05-25", "entrypoint": [""] }
- before_script:
- - - . "./share/spack/setup-env.sh"
- - . /etc/profile.d/modules.sh
- - spack --version
- - spack arch
- # Use gcc from local container buildcache
- - - spack buildcache rebuild-index /bootstrap/local-cache/
- - sed -i.bkp s/"spack install gcc"/"spack install --cache-only --reuse gcc"/ /bootstrap/postinstall.sh
- - spack mirror add local-cache /bootstrap/local-cache
- - spack gpg trust /bootstrap/public-key
- - diff /bootstrap/postinstall.sh /bootstrap/postinstall.sh.bkp || echo Done
- - - /bin/bash "${SPACK_ARTIFACTS_ROOT}/postinstall.sh" -fg
- - spack config --scope site add "packages:all:target:[${SPACK_TARGET_ARCH}]"
- - signing-job:
- before_script:
- # Do not distribute Intel & ARM binaries
- - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep intel-oneapi | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
- - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep armpl | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
- cdash:
- build-group: AWS Packages
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_n1/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_n1/spack.yaml
deleted file mode 100644
index 50ba40992a..0000000000
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_n1/spack.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-spack:
- view: false
-
- definitions:
- - compiler_specs:
- - gcc
- - gettext
-
- - compiler_target:
- - '%gcc@7.3.1 target=aarch64'
-
- - optimized_configs:
- - gromacs
- # - lammps
- # - mpas-model
- - openfoam
- - palace
- # - py-devito
- # - quantum-espresso
- # - wrf
-
- - optimized_libs:
- - mpich
- - openmpi
-
- specs:
- - matrix:
- - - $compiler_specs
- - - $compiler_target
- - $optimized_configs
- - $optimized_libs
-
- ci:
- pipeline-gen:
- - build-job:
- image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2023-05-25", "entrypoint": [""] }
- tags: ["aarch64"]
- before_script:
- - - . "./share/spack/setup-env.sh"
- - . /etc/profile.d/modules.sh
- - spack --version
- - spack arch
- # Use gcc from local container buildcache
- - - spack buildcache rebuild-index /bootstrap/local-cache/
- - sed -i.bkp s/"spack install gcc"/"spack install --cache-only --reuse gcc"/ /bootstrap/postinstall.sh
- - spack mirror add local-cache /bootstrap/local-cache
- - spack gpg trust /bootstrap/public-key
- - diff /bootstrap/postinstall.sh /bootstrap/postinstall.sh.bkp || echo Done
- - - /bin/bash "${SPACK_ARTIFACTS_ROOT}/postinstall.sh" -fg
- - spack config --scope site add "packages:all:target:[${SPACK_TARGET_ARCH}]"
- - signing-job:
- before_script:
- # Do not distribute Intel & ARM binaries
- - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep intel-oneapi | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
- - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep armpl | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
-
- cdash:
- build-group: AWS Packages
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/packages.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/packages.yaml
new file mode 100644
index 0000000000..7cad892b4b
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/packages.yaml
@@ -0,0 +1,67 @@
+--- # Neoverse N1 / V1 packages
+packages:
+ acfl:
+ require:
+ - one_of: ["%gcc target=aarch64"]
+ message: "Clang based compilers need GCC libraries and they should be made available for the wide range of CPUs they actually support.
+ Edit $SPACK_ROOT/etc/spack/packages.yaml to change this default."
+ gromacs:
+ require:
+ - one_of:
+ - "gromacs@2024.3 %arm ^fftw ^openmpi"
+ - "gromacs@2024.3 %gcc ^armpl-gcc ^openmpi"
+ libfabric:
+ buildable: true
+ externals:
+ - prefix: /opt/amazon/efa/
+ spec: libfabric@${LIBFABRIC_VERSION}
+ require: ['fabrics=shm,efa']
+ llvm:
+ variants: ~lldb
+ mpas-model:
+ require:
+ - one_of:
+ - "precision=single make_target=llvm %arm ^parallelio+pnetcdf"
+ - "precision=single %gcc ^parallelio+pnetcdf"
+ mpich:
+ require: "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm"
+ nvhpc:
+ require:
+ - one_of:
+ - "nvhpc %gcc target=aarch64"
+ message: "NVHPC should be built with GCC and should be made available for the wide range of CPUs they actually support.
+ Edit $SPACK_ROOT/etc/spack/packages.yaml to change this default."
+ openfoam:
+ require: "openfoam %gcc ^scotch@6.0.9"
+ openmpi:
+ variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
+ require: '@4:'
+ # Palace does not build correctly with armpl until https://github.com/awslabs/palace/pull/207 is merged into a version.
+ # palace:
+ # require:
+ # - one_of: ["palace cxxflags=\"-include cstdint\" ^fmt@9.1.0"]
+ pmix:
+ require: "pmix@3:"
+ quantum-espresso:
+ require: "quantum-espresso@6.6 %gcc ^armpl-gcc"
+ slurm:
+ buildable: false
+ externals:
+ - prefix: ${SLURM_ROOT}
+ spec: slurm@${SLURM_VERSION} +pmix
+ wrf:
+ require:
+ - one_of:
+ - "wrf%arm"
+ - "wrf%gcc"
+ all:
+ compiler: [gcc, arm, nvhpc, clang]
+ providers:
+ blas: [armpl-gcc, openblas]
+ fftw-api: [armpl-gcc, fftw]
+ lapack: [armpl-gcc, openblas]
+ mpi: [openmpi, mpich]
+ scalapack: [netlib-scalapack]
+ permissions:
+ read: world
+ write: user
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/spack.yaml
index 50ba40992a..f4080b1e65 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-neoverse_v1/spack.yaml
@@ -2,52 +2,36 @@ spack:
view: false
definitions:
- - compiler_specs:
- - gcc
- - gettext
-
- - compiler_target:
- - '%gcc@7.3.1 target=aarch64'
-
- - optimized_configs:
+ - apps:
- gromacs
- # - lammps
- # - mpas-model
+ - mpas-model
+ - mpich
- openfoam
- - palace
- # - py-devito
- # - quantum-espresso
- # - wrf
+ - quantum-espresso
+ - wrf
- - optimized_libs:
- - mpich
- - openmpi
+ - targets:
+ - 'target=neoverse_v1'
+ - 'target=neoverse_n1'
specs:
- matrix:
- - - $compiler_specs
- - - $compiler_target
- - $optimized_configs
- - $optimized_libs
-
+ - [$apps]
+ - [$targets]
ci:
pipeline-gen:
- build-job:
- image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2023-05-25", "entrypoint": [""] }
+ image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07", "entrypoint": [""] }
tags: ["aarch64"]
before_script:
- - . "./share/spack/setup-env.sh"
- . /etc/profile.d/modules.sh
- spack --version
- spack arch
- # Use gcc from local container buildcache
- - - spack buildcache rebuild-index /bootstrap/local-cache/
- - sed -i.bkp s/"spack install gcc"/"spack install --cache-only --reuse gcc"/ /bootstrap/postinstall.sh
- - spack mirror add local-cache /bootstrap/local-cache
- - spack gpg trust /bootstrap/public-key
- - diff /bootstrap/postinstall.sh /bootstrap/postinstall.sh.bkp || echo Done
- - - /bin/bash "${SPACK_ARTIFACTS_ROOT}/postinstall.sh" -fg
- - spack config --scope site add "packages:all:target:[${SPACK_TARGET_ARCH}]"
+ # Use gcc from pre-installed spack store
+ - - cp share/spack/gitlab/cloud_pipelines/configs/config.yaml etc/spack/
+ - /bin/bash "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh"
+ - rm etc/spack/config.yaml
- signing-job:
before_script:
# Do not distribute Intel & ARM binaries
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-skylake/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-skylake/spack.yaml
deleted file mode 100644
index 85cf766068..0000000000
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-skylake/spack.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-spack:
- view: false
-
- definitions:
- - compiler_specs:
- - gcc
- - gettext
-
- - compiler_target:
- - '%gcc@7.3.1 target=x86_64_v3'
-
- - optimized_configs:
- # - gromacs
- - lammps
- # - mpas-model
- - openfoam
- # - palace
- # - py-devito
- # - quantum-espresso
- # - wrf
-
- - optimized_libs:
- - mpich
- - openmpi
-
- specs:
- - matrix:
- - - $compiler_specs
- - - $compiler_target
- - $optimized_configs
- # - $optimized_libs
-
- ci:
- pipeline-gen:
- - build-job:
- image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2023-05-25", "entrypoint": [""] }
- before_script:
- - - . "./share/spack/setup-env.sh"
- - . /etc/profile.d/modules.sh
- - spack --version
- - spack arch
- # Use gcc from local container buildcache
- - - spack buildcache rebuild-index /bootstrap/local-cache/
- - sed -i.bkp s/"spack install gcc"/"spack install --cache-only --reuse gcc"/ /bootstrap/postinstall.sh
- - spack mirror add local-cache /bootstrap/local-cache
- - spack gpg trust /bootstrap/public-key
- - diff /bootstrap/postinstall.sh /bootstrap/postinstall.sh.bkp || echo Done
- - - /bin/bash "${SPACK_ARTIFACTS_ROOT}/postinstall.sh" -fg
- - spack config --scope site add "packages:all:target:[${SPACK_TARGET_ARCH}]"
- - signing-job:
- before_script:
- # Do not distribute Intel & ARM binaries
- - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep intel-oneapi | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
- - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep armpl | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
- cdash:
- build-group: AWS Packages
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/packages.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/packages.yaml
new file mode 100644
index 0000000000..eafcd37e58
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/packages.yaml
@@ -0,0 +1,143 @@
+--- # x86_64_v4 packages (ice/skylake) & x86_64_v3 packages (zen2/3)
+packages:
+ cpio:
+ require:
+ - one_of:
+ - "cflags=-std=c18 target=x86_64_v4"
+ - "cflags=-std=c18 target=x86_64_v3"
+ when: "%intel"
+ gettext:
+ # Newer gettext cannot build with gcc@12 and old AL2 glibc headers
+ # Older gettext versions do not build correctly with oneapi.
+ require:
+ - one_of:
+ - '@:0.20'
+ - '%oneapi'
+ gromacs:
+ require:
+ - one_of:
+ - "+intel_provided_gcc ^intel-oneapi-mkl target=x86_64_v4"
+ - "+intel_provided_gcc ^intel-oneapi-mkl target=x86_64_v3"
+ when: "%intel"
+ - one_of:
+ - "+intel_provided_gcc target=x86_64_v4 ^intel-oneapi-mkl"
+ - "+intel_provided_gcc target=x86_64_v3 ^intel-oneapi-mkl"
+ when: "%oneapi"
+ intel-oneapi-compilers:
+ require: "intel-oneapi-compilers %gcc target=x86_64_v3"
+ intel-oneapi-mpi:
+ variants: +external-libfabric generic-names=True
+ lammps:
+ require:
+ - one_of:
+ - "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel fft=mkl ^intel-oneapi-mkl target=x86_64_v4"
+ - "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl target=x86_64_v3"
+ when: "%intel"
+ - one_of:
+ - "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel fft=mkl ^intel-oneapi-mkl target=x86_64_v4"
+ - "lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl target=x86_64_v3"
+ when: "%oneapi"
+ libidn2:
+ require:
+ - one_of:
+ - "cflags=-std=c18 target=x86_64_v4"
+ - "cflags=-std=c18 target=x86_64_v3"
+ when: "%intel"
+ libfabric:
+ buildable: true
+ externals:
+ - prefix: /opt/amazon/efa/
+ spec: libfabric@${LIBFABRIC_VERSION}
+ require: ['fabrics=shm,efa']
+ libunistring:
+ require:
+ - one_of:
+ - "cflags=-std=c18 target=x86_64_v4"
+ - "cflags=-std=c18 target=x86_64_v3"
+ when: "%intel"
+ mpas-model:
+ require:
+ - one_of:
+ - "precision=single ^parallelio+pnetcdf target=x86_64_v4"
+ - "precision=single ^parallelio+pnetcdf target=x86_64_v3"
+ when: "%intel"
+ - one_of:
+ - "precision=single ^parallelio+pnetcdf target=x86_64_v4"
+ - "precision=single ^parallelio+pnetcdf target=x86_64_v3"
+ when: "%oneapi"
+ mpich:
+ require:
+ - one_of:
+ - "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm target=x86_64_v4"
+ - "mpich pmi=pmi2 device=ch4 netmod=ofi +slurm target=x86_64_v3"
+ openfoam:
+ require:
+ - one_of:
+ - "openfoam %gcc ^scotch@6.0.9 target=x86_64_v4"
+ - "openfoam %gcc ^scotch@6.0.9 target=x86_64_v3"
+ openmpi:
+ variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
+ require:
+ - one_of:
+ - "openmpi @4: target=x86_64_v4"
+ - "openmpi @4: target=x86_64_v3"
+ palace:
+ require:
+ - one_of:
+ - "palace ^fmt@9.1.0 target=x86_64_v4"
+ - "palace ^fmt@9.1.0 target=x86_64_v3"
+ when: "%oneapi"
+ - one_of:
+ - "palace ^fmt@9.1.0"
+ when: "%gcc"
+ pmix:
+ require:
+ - one_of:
+ - "pmix@3: target=x86_64_v4"
+ - "pmix@3: target=x86_64_v3"
+ quantum-espresso:
+ require:
+ - one_of:
+ - "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v4"
+ - "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v3"
+ when: "%intel"
+ - one_of:
+ - "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v4"
+ - "quantum-espresso@6.6 ^intel-oneapi-mkl+cluster target=x86_64_v3"
+ when: "%oneapi"
+ slurm:
+ buildable: false
+ externals:
+ - prefix: ${SLURM_ROOT}
+ spec: slurm@${SLURM_VERSION} +pmix
+ wrf:
+ require:
+ - one_of:
+ - "wrf@4 build_type=dm+sm target=x86_64_v4"
+ - "wrf@4 build_type=dm+sm target=x86_64_v3"
+ - "wrf@4.2.2 +netcdf_classic fflags=\"-fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common\" build_type=dm+sm target=x86_64_v3"
+ when: "%intel"
+ - one_of:
+ - "wrf@4 build_type=dm+sm target=x86_64_v4"
+ - "wrf@4 build_type=dm+sm target=x86_64_v3"
+ - "wrf@4.2.2 +netcdf_classic fflags=\"-fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common\" build_type=dm+sm target=x86_64_v3"
+ when: "%oneapi"
+
+ all:
+ compiler: [oneapi, gcc]
+ permissions:
+ read: world
+ write: user
+ providers:
+ blas: [intel-oneapi-mkl]
+ daal: [intel-oneapi-dal]
+ fftw-api: [intel-oneapi-mkl]
+ ipp: [intel-oneapi-ipp]
+ lapack: [intel-oneapi-mkl]
+ mkl: [intel-oneapi-mkl]
+ mpi: [intel-oneapi-mpi, openmpi, mpich]
+ tbb: [intel-oneapi-tbb, intel-tbb]
+ scalapack: [intel-oneapi-mkl]
+
+
+
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/spack.yaml
new file mode 100644
index 0000000000..f81bbf2537
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-pcluster-x86_64_v4/spack.yaml
@@ -0,0 +1,45 @@
+spack:
+ view: false
+
+ definitions:
+ - apps:
+ - gromacs %oneapi
+ - lammps %oneapi
+ # earliest oneapi version with fix does not run on AmazonLinux2, see https://github.com/spack/spack/pull/46457
+ # - mpas-model %oneapi
+ - openfoam %gcc
+ - palace %oneapi ^superlu-dist%oneapi # hack: force fortran-rt provider through superlu-dist
+ # TODO: Find out how to make +ipo cmake flag work.
+ # - quantum-espresso %oneapi
+ - openmpi %oneapi
+ - wrf %oneapi
+
+ - targets:
+ - 'target=x86_64_v4'
+ - 'target=x86_64_v3'
+
+ specs:
+ - matrix:
+ - [$apps]
+ - [$targets]
+ ci:
+ pipeline-gen:
+ - build-job:
+ image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07", "entrypoint": [""] }
+ before_script:
+ - - . "./share/spack/setup-env.sh"
+ - . /etc/profile.d/modules.sh
+ - spack --version
+ - spack arch
+ # Use gcc from pre-installed spack store
+ - - cp share/spack/gitlab/cloud_pipelines/configs/config.yaml etc/spack/
+ - /bin/bash "${SPACK_ROOT}/share/spack/gitlab/cloud_pipelines/scripts/pcluster/setup-pcluster.sh"
+ - rm etc/spack/config.yaml
+ - signing-job:
+ before_script:
+ # Do not distribute Intel & ARM binaries
+ - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep intel-oneapi | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
+ - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/ | grep armpl | awk '{print $4}' | sed -e 's?^.*build_cache/??g'); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/$i; done
+
+ cdash:
+ build-group: AWS Packages
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/bootstrap-aarch64-darwin/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/bootstrap-aarch64-darwin/spack.yaml
new file mode 100644
index 0000000000..d267db430e
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/bootstrap-aarch64-darwin/spack.yaml
@@ -0,0 +1,33 @@
+spack:
+ view: false
+
+ packages:
+ all:
+ require: target=aarch64
+
+ config:
+ deprecated: true # allow old python versions
+
+ specs:
+ - clingo-bootstrap +optimized ^python@3.13
+ - clingo-bootstrap +optimized ^python@3.12
+ - clingo-bootstrap +optimized ^python@3.11
+ - clingo-bootstrap +optimized ^python@3.10
+ - clingo-bootstrap +optimized ^python@3.9
+ - clingo-bootstrap +optimized ^python@3.8
+
+ - clingo-bootstrap@spack +optimized ^python@3.13
+ - clingo-bootstrap@spack +optimized ^python@3.12
+ - clingo-bootstrap@spack +optimized ^python@3.11
+ - clingo-bootstrap@spack +optimized ^python@3.10
+ - clingo-bootstrap@spack +optimized ^python@3.9
+ - clingo-bootstrap@spack +optimized ^python@3.8
+
+ ci:
+ pipeline-gen:
+ - build-job-remove:
+ tags: [spack, public]
+ - build-job:
+ variables:
+ CI_GPG_KEY_ROOT: /etc/protected-runner
+ tags: [macos-ventura, apple-clang-15, aarch64-macos]
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/bootstrap-x86_64-linux-gnu/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/bootstrap-x86_64-linux-gnu/spack.yaml
new file mode 100644
index 0000000000..67d5b20fa3
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/bootstrap-x86_64-linux-gnu/spack.yaml
@@ -0,0 +1,35 @@
+spack:
+ view: false
+
+ packages:
+ all:
+ require: target=x86_64_v3
+
+ config:
+ deprecated: true # allow old python versions
+
+ specs:
+ - clingo-bootstrap +optimized ^python@3.13
+ - clingo-bootstrap +optimized ^python@3.12
+ - clingo-bootstrap +optimized ^python@3.11
+ - clingo-bootstrap +optimized ^python@3.10
+ - clingo-bootstrap +optimized ^python@3.9
+ - clingo-bootstrap +optimized ^python@3.8
+ - clingo-bootstrap +optimized ^python@3.7
+ - clingo-bootstrap +optimized ^python@3.6
+
+ - clingo-bootstrap@spack +optimized ^python@3.13
+ - clingo-bootstrap@spack +optimized ^python@3.12
+ - clingo-bootstrap@spack +optimized ^python@3.11
+ - clingo-bootstrap@spack +optimized ^python@3.10
+ - clingo-bootstrap@spack +optimized ^python@3.9
+ - clingo-bootstrap@spack +optimized ^python@3.8
+ - clingo-bootstrap@spack +optimized ^python@3.7
+ - clingo-bootstrap@spack +optimized ^python@3.6
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image:
+ name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
+ entrypoint: ['']
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
index bf298d606d..02594f3b61 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
@@ -1,42 +1,50 @@
spack:
view: false
packages:
+ all:
+ require: target=x86_64_v3
cmake:
variants: ~ownlibs
ecp-data-vis-sdk:
- require: "+ascent +adios2 +cinema +darshan +faodel +hdf5 +pnetcdf +sensei +sz +unifyfs +veloc +vtkm +zfp"
+ require:
+ - "+ascent +adios2 +cinema +darshan +faodel +hdf5 +pnetcdf +sensei +sz +unifyfs +veloc +vtkm +zfp"
hdf5:
require:
- - one_of: ['@1.14', '@1.12']
+ - "@1.14"
mesa:
- require: "+glx +osmesa +opengl ~opengles +llvm"
- libosmesa:
- require: "mesa +osmesa"
+ require:
+ - "+glx +osmesa +opengl ~opengles +llvm"
libglx:
require: "mesa +glx"
ospray:
- require: '@2.8.0 +denoiser +mpi'
+ require:
+ - "@2.8.0"
+ - "+denoiser +mpi"
llvm:
- require: '@14:'
+ require: ["@14:"]
# Minimize LLVM
variants: ~lldb~lld~libomptarget~polly~gold libunwind=none compiler-rt=none
- all:
- require: target=x86_64_v3
+ libllvm:
+ require: ["^llvm"]
+ visit:
+ require: ["@3.4.1"]
+
+ concretizer:
+ unify: when_possible
definitions:
- paraview_specs:
- matrix:
- - - paraview +raytracing
- - - +qt~osmesa # GUI Support w/ GLX Rendering
- - ~qt~osmesa # GLX Rendering
- - ~qt+osmesa # OSMesa Rendering
+ - - paraview +raytracing +adios2 +fides
+ - - +qt ^[virtuals=gl] glx # GUI Support w/ GLX Rendering
+ - ~qt ^[virtuals=gl] glx # GLX Rendering
+ - ^[virtuals=gl] osmesa # OSMesa Rendering
- visit_specs:
- matrix:
- - visit
- - - ~gui~osmesa # GLX Rendering
- - ~gui+osmesa # OSMesa Rendering
- # VisIt GUI does not work with Qt 5.14.2
- # - +gui~osmesa # GUI Support w/ GLX Rendering
+ - - ~gui ^[virtuals=gl] glx
+ - ~gui ^[virtuals=gl] osmesa
+ - +gui ^[virtuals=gl] glx # GUI Support w/ GLX Rendering
- sdk_base_spec:
- matrix:
- - ecp-data-vis-sdk +ascent +adios2 +cinema +darshan +faodel +hdf5 +pnetcdf
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml
deleted file mode 100644
index 0c6bf0b05b..0000000000
--- a/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-###
-# Spack pipeline for testing deprecated gitlab-ci configuration
-###
-spack:
- view: false
- concretizer:
- reuse: false
- unify: false
- config:
- concretizer: clingo
- db_lock_timeout: 120
- install_tree:
- padded_length: 256
- projections:
- all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
- deprecated: true
- packages:
- all:
- require: target=x86_64
- specs:
- - readline
-
- mirrors:
- mirror: s3://spack-binaries/develop/deprecated
- gitlab-ci:
- broken-tests-packages:
- - gptune
- broken-specs-url: s3://spack-binaries/broken-specs
- image: ghcr.io/spack/tutorial-ubuntu-18.04:v2021-11-02
- before_script:
- - uname -a || true
- - grep -E "vendor|model name" /proc/cpuinfo 2>/dev/null | sort -u || head -n10
- /proc/cpuinfo 2>/dev/null || true
- - nproc
- - . "./share/spack/setup-env.sh"
- - spack --version
- - spack arch
- script:
- - spack compiler find
- - cd ${SPACK_CONCRETE_ENV_DIR}
- - spack env activate --without-view .
- - if [ -n "$SPACK_BUILD_JOBS" ]; then spack config add "config:build_jobs:$SPACK_BUILD_JOBS";
- fi
- - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
- - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data
- # AWS runners mount E4S public key (verification), UO runners mount public/private (signing/verification)
- - if [[ -r /mnt/key/e4s.gpg ]]; then spack gpg trust /mnt/key/e4s.gpg; fi
- # UO runners mount intermediate ci public key (verification), AWS runners mount public/private (signing/verification)
- - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg;
- fi
- - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg;
- fi
- - spack --color=always --backtrace ci rebuild --tests > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt)
- 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
- after_script:
- - cat /proc/loadavg || true
- match_behavior: first
- mappings:
- - match:
- - '@:'
- runner-attributes:
- tags: [spack, public, small, x86_64]
- variables:
- CI_JOB_SIZE: small
- SPACK_BUILD_JOBS: '1'
- KUBERNETES_CPU_REQUEST: 500m
- KUBERNETES_MEMORY_REQUEST: 500M
- signing-job-attributes:
- image: {name: 'ghcr.io/spack/notary:latest', entrypoint: ['']}
- tags: [aws]
- script:
- - aws s3 sync --exclude "*" --include "*spec.json*" ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache
- /tmp
- - /sign.sh
- - aws s3 sync --exclude "*" --include "*spec.json.sig*" /tmp ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache
- - aws s3 cp /tmp/public_keys ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache/_pgp
- --recursive --exclude "*" --include "*.pub"
-
- service-job-attributes:
- image: ghcr.io/spack/tutorial-ubuntu-18.04:v2021-11-02
- before_script:
- - . "./share/spack/setup-env.sh"
- - spack --version
- tags: [spack, public, x86_64]
- cdash:
- build-group: Spack Deprecated CI
- url: https://cdash.spack.io
- project: Spack Testing
- site: Cloud Gitlab Infrastructure
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/developer-tools-darwin/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools-darwin/spack.yaml
new file mode 100644
index 0000000000..48ab265a51
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools-darwin/spack.yaml
@@ -0,0 +1,75 @@
+spack:
+ view: false
+ packages:
+ all:
+ require:
+ - target=aarch64
+ concretizer:
+ unify: true
+ reuse: false
+ specs:
+ # editors
+ - neovim~no_luajit
+ - py-pynvim
+ - emacs+json~native+treesitter # TODO native not supported until gcc builds on darwin
+ # - tree-sitter is a dep, should also have cli but no package
+ - nano # just in case
+ # tags and scope search helpers
+ - universal-ctags # only maintained ctags, works better with c++
+ - direnv
+ # runtimes and compilers
+ - python
+ - llvm+link_llvm_dylib+lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format
+ - node-js # for editor plugins etc., pyright language server
+ - npm
+ - cmake
+ - libtool
+ - go # to build fzf, gh, hub
+ - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer
+ # styling and lints
+ - astyle
+ - cppcheck
+ - uncrustify
+ - py-fprettify
+ - py-fortran-language-server
+ - py-python-lsp-server
+ # cli dev tools
+ - ripgrep
+ - gh
+ - fd
+ # - bfs # liburing: /usr/include/linux/ipv6.h:19:8: error: redefinition of 'struct in6_pktinfo'
+ - fzf
+ - tree
+ - jq
+ - py-yq
+ - hub
+ - ncdu
+ - eza
+ - lsd
+ - hyperfine
+ - htop
+ - tmux
+ - ccache
+ # ensure we can use a jobserver build and do this fast
+ - gmake
+ - ninja # should be @kitware, can't be because of meson requirement
+ - libtree
+ - sed
+ - which
+ - flex
+ - graphviz
+ - doxygen
+ - meson
+ - lima
+
+ ci:
+ pipeline-gen:
+ - build-job-remove:
+ tags: [ spack, public ]
+ - build-job:
+ variables:
+ CI_GPG_KEY_ROOT: /etc/protected-runner
+ tags: [ "macos-ventura", "apple-clang-15", "aarch64-macos" ]
+
+ cdash:
+ build-group: Developer Tools Darwin
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/developer-tools-manylinux2014/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools-manylinux2014/spack.yaml
new file mode 100644
index 0000000000..e2a3c0bf5e
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools-manylinux2014/spack.yaml
@@ -0,0 +1,100 @@
+spack:
+ view: false
+ packages:
+ all:
+ require: target=x86_64_v3
+ concretizer:
+ unify: true
+ reuse: false
+ definitions:
+ - default_specs:
+ # editors
+ - neovim~no_luajit
+ - py-pynvim
+ - emacs+json+native+treesitter # note, pulls in gcc
+ # - tree-sitter is a dep, should also have cli but no package
+ - nano # just in case
+ # tags and scope search helpers
+ - universal-ctags # only maintained ctags, works better with c++
+ - direnv
+ # runtimes and compilers
+ - python
+ - llvm+link_llvm_dylib~lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format
+ - node-js # for editor plugins etc., pyright language server
+ - npm
+ - cmake
+ - libtool
+ - go # to build fzf, gh, hub
+ - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer
+ - binutils+ld+gold+plugins # support linking with built gcc
+ # styling and lints
+ - astyle
+ - cppcheck
+ - uncrustify
+ - py-fprettify
+ - py-fortran-language-server
+ - py-python-lsp-server
+ # cli dev tools
+ - ripgrep
+ - gh
+ - fd
+ # - bfs # liburing: /usr/include/linux/ipv6.h:19:8: error: redefinition of 'struct in6_pktinfo'
+ - fzf
+ - tree
+ - jq
+ - py-yq
+ - hub
+ - ncdu
+ - eza
+ - lsd
+ - hyperfine
+ - htop
+ - tmux
+ - ccache
+ # ensure we can use a jobserver build and do this fast
+ - gmake
+ - ninja # should be @kitware, can't be because of meson requirement
+ - openssl certs=system # must be this, system external does not work
+ - libtree
+ - patchelf
+ - sed
+ - which
+ - elfutils
+ - fontconfig
+ - font-util
+ - gdb
+ - flex
+ - graphviz
+ - doxygen
+ - meson
+
+ - arch:
+ - '%gcc target=x86_64_v3'
+
+ specs:
+ - matrix:
+ - - $default_specs
+ - - $arch
+
+ compilers:
+ - compiler:
+ spec: gcc@=10.2.1
+ paths:
+ cc: /opt/rh/devtoolset-10/root/usr/bin/gcc
+ cxx: /opt/rh/devtoolset-10/root/usr/bin/g++
+ f77: /opt/rh/devtoolset-10/root/usr/bin/gfortran
+ fc: /opt/rh/devtoolset-10/root/usr/bin/gfortran
+ flags: {}
+ operating_system: centos7
+ target: x86_64
+ modules: []
+ environment: {}
+ extra_rpaths: []
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image: ghcr.io/spack/spack/manylinux2014:2024.03.28
+
+ cdash:
+ build-group: Developer Tools Manylinux2014
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml
deleted file mode 100644
index cc4c27261f..0000000000
--- a/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-spack:
- view: false
- packages:
- all:
- require: target=x86_64_v3
- concretizer:
- unify: true
- definitions:
- - default_specs:
- # editors
- - neovim~no_luajit
- - py-pynvim
- - emacs@29.1+json+native+treesitter # note, pulls in gcc
- # - tree-sitter is a dep, should also have cli but no package
- - nano # just in case
- # tags and scope search helpers
- - universal-ctags # only maintained ctags, works better with c++
- - direnv
- # runtimes and compilers
- - python
- - llvm+link_llvm_dylib~lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format
- - node-js # for editor plugins etc., pyright language server
- - npm
- - go # to build fzf, gh, hub
- - rust+analysis # fd, ripgrep, hyperfine, exa, rust-analyzer
- - binutils+ld+gold+plugins # support linking with built gcc
- # styling and lints
- - astyle
- - cppcheck
- - uncrustify
- - py-fprettify
- - py-fortran-language-server
- - py-python-lsp-server
- # cli dev tools
- - ripgrep
- - gh
- - fd
- - bfs
- - fzf
- - tree
- - jq
- - py-yq
- - hub
- - ncdu
- - eza
- - lsd
- - hyperfine
- - htop
- - tmux
- - ccache
- # ensure we can use a jobserver build and do this fast
- - gmake
- - ninja # should be @kitware, can't be because of meson requirement
- - "openssl certs=system" # must be this, system external does not work
- - arch:
- - '%gcc target=x86_64_v3'
-
- specs:
- - matrix:
- - - $default_specs
- - - $arch
-
- ci:
- pipeline-gen:
- - build-job:
- image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01"
-
- cdash:
- build-group: Developer Tools
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml
index 5cd3178d66..1f4e526dca 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml
@@ -10,8 +10,8 @@ spack:
packages:
all:
- require:
- - any_of: ["%cce", "@:"] # cce as a strong preference; not all packages support it
+ prefer:
+ - "%cce"
compiler: [cce]
providers:
blas: [cray-libsci]
@@ -31,7 +31,7 @@ spack:
cuda:
version: [11.7.0]
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
require: "%gcc"
gcc-runtime:
require: "%gcc"
@@ -41,13 +41,16 @@ spack:
variants: fabrics=sockets,tcp,udp,rxm
libunwind:
variants: +pic +xz
+ mgard:
+ require:
+ - "@2023-01-10:"
mpich:
variants: ~wrapperrpath
ncurses:
variants: +termlib
paraview:
# Don't build GUI support or GLX rendering for HPC/container deployments
- require: "@5.11 ~qt+osmesa"
+ require: "@5.11 ~qt ^[virtuals=gl] osmesa"
python:
version: [3.8.13]
trilinos:
@@ -78,9 +81,10 @@ spack:
- boost +python +filesystem +iostreams +system
- cabana
- caliper
- - chai ~benchmarks ~tests
+ - chai
- charliecloud
- conduit
+ # - cp2k +mpi # libxsmm: ftn-78 ftn: ERROR in command linel; The -f option has an invalid argument, "tree-vectorize".
- datatransferkit
- flecsi
- flit
@@ -102,14 +106,13 @@ spack:
- lammps
- legion
- libnrm
- - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed
- +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +mgard
+ #- libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +mgard # mgard:
- libquo
- libunwind
- mercury
- metall
- mfem
- - mgard +serial +openmp +timing +unstructured ~cuda
+ # - mgard +serial +openmp +timing +unstructured ~cuda # mgard
- mpark-variant
- mpifileutils ~xattr
- nccmp
@@ -117,7 +120,7 @@ spack:
- netlib-scalapack
- omega-h
- openmpi
- - openpmd-api
+ - openpmd-api ^adios2~mgard
- papi
- papyrus
- pdt
@@ -151,7 +154,6 @@ spack:
# - alquimia # pflotran: petsc-3.19.4-c6pmpdtpzarytxo434zf76jqdkhdyn37/lib/petsc/conf/rules:169: material_aux.o] Error 1: fortran errors
# - amrex # disabled temporarily pending resolution of unreproducible CI failure
- # - archer # subsumed by llvm +omp_tsan
# - axom # axom: CMake Error at axom/sidre/cmake_install.cmake:154 (file): file INSTALL cannot find "/tmp/gitlab-runner-2/spack-stage/spack-stage-axom-0.8.1-jvol6riu34vuyqvrd5ft2gyhrxdqvf63/spack-build-jvol6ri/lib/fortran/axom_spio.mod": No such file or directory.
# - bricks # bricks: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
# - dealii # llvm@14.0.6: ?; intel-tbb@2020.3: clang-15: error: unknown argument: '-flifetime-dse=1'; assimp@5.2.5: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
@@ -167,13 +169,13 @@ spack:
# - phist # fortran_bindings/CMakeFiles/phist_fort.dir/phist_testing.F90.o: ftn-78 ftn: ERROR in command line. The -f option has an invalid argument, "no-math-errno".
# - plasma # %cce conflict
# - py-jupyterhub # rust: ld.lld: error: relocation R_X86_64_32 cannot be used against local symbol; recompile with -fPIC'; defined in /opt/cray/pe/cce/15.0.1/cce/x86_64/lib/no_mmap.o, referenced by /opt/cray/pe/cce/15.0.1/cce/x86_64/lib/no_mmap.o:(__no_mmap_for_malloc)
- # - py-warpx # py-scipy: meson.build:82:0: ERROR: Unknown compiler(s): [['/home/gitlab-runner-3/builds/dWfnZWPh/0/spack/spack/lib/spack/env/cce/ftn']]
# - quantum-espresso # quantum-espresso: CMake Error at cmake/FindSCALAPACK.cmake:503 (message): A required library with SCALAPACK API not found. Please specify library
# - scr # scr: make[2]: *** [examples/CMakeFiles/test_ckpt_F.dir/build.make:112: examples/test_ckpt_F] Error 1: /opt/cray/pe/cce/15.0.1/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: /opt/cray/pe/mpich/8.1.25/ofi/cray/10.0/lib/libmpi_cray.so: undefined reference to `PMI_Barrier'
# - strumpack ~slate # strumpack: [test/CMakeFiles/test_HSS_seq.dir/build.make:117: test/test_HSS_seq] Error 1: ld.lld: error: undefined reference due to --no-allow-shlib-undefined: mpi_abort_
# - upcxx # upcxx: configure error: User requested --enable-ofi but I don't know how to build ofi programs for your system
# - variorum # variorum: /opt/cray/pe/cce/15.0.1/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: /opt/cray/pe/lib64/libpals.so.0: undefined reference to `json_array_append_new@@libjansson.so.4'
# - xyce +mpi +shared +pymi +pymi_static_tpls ^trilinos~shylu # openblas: ftn-2307 ftn: ERROR in command line: The "-m" option must be followed by 0, 1, 2, 3 or 4.; make[2]: *** [<builtin>: spotrf2.o] Error 1; make[1]: *** [Makefile:27: lapacklib] Error 2; make: *** [Makefile:250: netlib] Error 2
+ # - warpx +python # py-scipy: meson.build:82:0: ERROR: Unknown compiler(s): [['/home/gitlab-runner-3/builds/dWfnZWPh/0/spack/spack/lib/spack/env/cce/ftn']]
cdash:
build-group: E4S Cray
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml
index c141cd9bf9..d7ca80212a 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml
@@ -29,7 +29,7 @@ spack:
cuda:
version: [11.7.0]
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
require: "%gcc"
hdf5:
variants: +fortran +hl +shared
@@ -43,7 +43,7 @@ spack:
variants: +termlib
paraview:
# Don't build GUI support or GLX rendering for HPC/container deployments
- require: "@5.11 ~qt+osmesa"
+ require: "@5.11 ~qt ^[virtuals=gl] osmesa"
python:
version: [3.8.13]
trilinos:
@@ -71,8 +71,9 @@ spack:
- butterflypack
- boost +python +filesystem +iostreams +system
- cabana
- - chai ~benchmarks ~tests
+ - chai
- conduit
+ # - cp2k +mpi # cp2k: Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/COMPLEX(4)).
- datatransferkit
- flecsi
- fortrilinos
@@ -147,7 +148,6 @@ spack:
# HOLDING THESE BACK UNTIL CRAY SLES CAPACITY IS EXPANDED AT UO
# - alquimia
# - amrex
- # - archer
# - axom
# - bricks
# - dealii
@@ -163,13 +163,13 @@ spack:
# - phist
# - plasma
# - py-jupyterhub
- # - py-warpx
# - quantum-espresso
# - scr
# - strumpack ~slate
# - upcxx
# - variorum
# - xyce +mpi +shared +pymi +pymi_static_tpls ^trilinos~shylu
+ # - warpx +python
cdash:
build-group: E4S Cray SLES
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml
new file mode 100644
index 0000000000..1eb61ec5e9
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml
@@ -0,0 +1,235 @@
+spack:
+ view: false
+
+ concretizer:
+ reuse: false
+ unify: false
+
+ packages:
+ all:
+ require: '%gcc target=neoverse_v2'
+ providers:
+ blas: [openblas]
+ mpi: [mpich]
+ variants: +mpi
+ binutils:
+ variants: +ld +gold +headers +libiberty ~nls
+ hdf5:
+ variants: +fortran +hl +shared
+ libfabric:
+ variants: fabrics=sockets,tcp,udp,rxm
+ openblas:
+ variants: threads=openmp
+ trilinos:
+ variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
+ +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+ +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+ +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ mpi:
+ require: mpich
+ mpich:
+ require: '~wrapperrpath ~hwloc %gcc target=neoverse_v2'
+ tbb:
+ require: intel-tbb
+ vtk-m:
+ require: "+examples %gcc target=neoverse_v2"
+ paraview:
+ require: "+examples %gcc target=neoverse_v2"
+
+ specs:
+ # CPU
+ # - adios
+ # - alquimia
+ # - aml
+ - amrex
+ - arborx
+ # - argobots
+ - ascent # ecp dav
+ - axom
+ # - bolt
+ # - boost
+ - butterflypack
+ - cabana
+ - caliper
+ - chai
+ # - charliecloud
+ - conduit
+ - cp2k +mpi
+ - datatransferkit
+ - dyninst
+ - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: ?
+ - exaworks
+ - fftx
+ - flecsi
+ # - flit
+ # - flux-core
+ - fortrilinos
+ # - gasnet
+ - ginkgo
+ # - globalarrays
+ # - gmp
+ # - gotcha
+ # - gptune ~mpispawn
+ - gromacs +cp2k ^cp2k +mpi +dlaf build_system=cmake
+ - h5bench
+ - hdf5-vol-async
+ - hdf5-vol-cache
+ - hdf5-vol-log
+ - heffte +fftw
+ - hpctoolkit
+ - hpx networking=mpi
+ - hypre
+ - kokkos +openmp
+ - kokkos-kernels +openmp
+ - lammps
+ - lbann
+ - legion
+ - libnrm
+ - libquo
+ - libunwind
+ - loki
+ - mercury
+ - metall
+ - mfem
+ - mgard +serial +openmp +timing +unstructured ~cuda
+ - mpark-variant
+ - mpifileutils ~xattr
+ - nccmp
+ - nco
+ - netlib-scalapack
+ - nrm
+ # - nvhpc
+ - nwchem
+ - omega-h
+ - openfoam
+ # - openmpi
+ - openpmd-api
+ - papi
+ - papyrus
+ - parsec ~cuda
+ - pdt
+ - petsc
+ - phist
+ - plasma
+ - plumed
+ - precice
+ - pruners-ninja
+ - pumi
+ - py-amrex
+ - py-h5py
+ - py-jupyterhub
+ - py-libensemble
+ - py-petsc4py
+ - qthreads scheduler=distrib
+ - quantum-espresso
+ - raja
+ - rempi
+ - scr
+ - slate ~cuda
+ - slepc
+ - stc
+ - strumpack ~slate
+ - sundials
+ - superlu
+ - superlu-dist
+ # - swig@4.0.2-fortran
+ - sz3
+ - tasmanian
+ - tau +mpi +python +syscall
+ - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ - turbine
+ # - umap
+ - umpire
+ - upcxx
+ # - veloc
+ - wannier90
+ - warpx +python
+ - xyce +mpi +shared +pymi +pymi_static_tpls
+ # INCLUDED IN ECP DAV CPU
+ # - adios2
+ # - darshan-runtime
+ # - darshan-util
+ # - faodel
+ # - hdf5
+ # - libcatalyst
+ # - parallel-netcdf
+ # - paraview
+ # - py-cinemasci
+ # - sz
+ # - unifyfs
+ # - visit # silo: https://github.com/spack/spack/issues/39538
+ # - vtk-m
+ # - zfp
+ # --
+ - laghos
+ # - bricks ~cuda # not respecting target=aarch64?
+ # - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - geopm # geopm: https://github.com/spack/spack/issues/38795
+ # - glvis # glvis: https://github.com/spack/spack/issues/42839
+ # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
+ # - variorum # variorum: https://github.com/spack/spack/issues/38786
+
+ # CUDA NOARCH
+ - flux-core +cuda
+ - hpctoolkit +cuda
+ - papi +cuda
+ - tau +mpi +cuda +syscall
+ # --
+ # - bricks +cuda # not respecting target=aarch64?
+ # - legion +cuda # legion: needs NVIDIA driver
+
+ # CUDA 90
+ - amrex +cuda cuda_arch=90
+ - arborx +cuda cuda_arch=90 ^kokkos +wrapper
+ - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
+ - caliper +cuda cuda_arch=90
+ - chai +cuda cuda_arch=90 ^umpire ~shared
+ - fftx +cuda cuda_arch=90
+ - flecsi +cuda cuda_arch=90
+ - ginkgo +cuda cuda_arch=90
+ - gromacs +cuda cuda_arch=90
+ - heffte +cuda cuda_arch=90
+ - hpx +cuda cuda_arch=90
+ - kokkos +wrapper +cuda cuda_arch=90
+ - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
+ - magma +cuda cuda_arch=90
+ - mfem +cuda cuda_arch=90
+ - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
+ - parsec +cuda cuda_arch=90
+ - petsc +cuda cuda_arch=90
+ - raja +cuda cuda_arch=90
+ - slate +cuda cuda_arch=90
+ - strumpack ~slate +cuda cuda_arch=90
+ - sundials +cuda cuda_arch=90
+ - superlu-dist +cuda cuda_arch=90
+ - trilinos +cuda cuda_arch=90
+ - umpire ~shared +cuda cuda_arch=90
+ # INCLUDED IN ECP DAV CUDA
+ - adios2 +cuda cuda_arch=90
+ # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
+ # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
+ - vtk-m +cuda cuda_arch=90
+ - zfp +cuda cuda_arch=90
+ # --
+ # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
+ # - cp2k +mpi +cuda cuda_arch=90 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80')
+ # - cusz +cuda cuda_arch=90 # cusz: https://github.com/spack/spack/issues/38787
+ # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
+ # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # embree: https://github.com/spack/spack/issues/39534
+ # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
+ # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
+ # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=90 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
+ # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
+ # - py-torch +cuda cuda_arch=90 # skipped, installed by other means
+ # - slepc +cuda cuda_arch=90 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
+ # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
+
+ cdash:
+ build-group: E4S ARM Neoverse V2
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
index 82a1f07c8d..886699b54a 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
@@ -7,21 +7,17 @@ spack:
packages:
all:
- require: '%gcc@11.4.0 target=neoverse_v1'
+ require: '%gcc target=neoverse_v1'
providers:
blas: [openblas]
mpi: [mpich]
variants: +mpi
binutils:
variants: +ld +gold +headers +libiberty ~nls
- elfutils:
- variants: +bzip2 ~nls +xz
hdf5:
variants: +fortran +hl +shared
libfabric:
variants: fabrics=sockets,tcp,udp,rxm
- libunwind:
- variants: +pic +xz
openblas:
variants: threads=openmp
trilinos:
@@ -29,30 +25,16 @@ spack:
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
- xz:
- variants: +pic
- mesa:
- version: [21.3.8]
mpi:
require: mpich
mpich:
- require: '~wrapperrpath ~hwloc'
- ncurses:
- require: '@6.3 +termlib'
+ require: '~wrapperrpath ~hwloc %gcc target=neoverse_v1'
tbb:
require: intel-tbb
- boost:
- version: [1.79.0]
- variants: +atomic +chrono +container +date_time +exception +filesystem +graph
- +iostreams +locale +log +math +mpi +multithreaded +program_options +random
- +regex +serialization +shared +signals +stacktrace +system +test +thread +timer
- cxxstd=17 visibility=global
- libffi:
- require: "@3.4.4"
vtk-m:
- require: "+examples"
- cuda:
- version: [11.8.0]
+ require: "+examples %gcc target=neoverse_v1"
+ paraview:
+ require: "+examples %gcc target=neoverse_v1"
specs:
# CPU
@@ -62,20 +44,22 @@ spack:
- amrex
- arborx
- argobots
- - ascent # ecp dav
- axom
- bolt
- boost
- butterflypack
- cabana
- caliper
- - chai ~benchmarks ~tests
+ - chai
+ - chapel ~cuda ~rocm
- charliecloud
- conduit
+ - cp2k +mpi
- datatransferkit
- dyninst
- - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: ?
+ - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: ?
- exaworks
+ - fftx
- flecsi
- flit
- flux-core
@@ -86,7 +70,7 @@ spack:
- gmp
- gotcha
- gptune ~mpispawn
- - gromacs +cp2k ^cp2k build_system=cmake
+ - gromacs +cp2k ^cp2k +mpi +dlaf build_system=cmake
- h5bench
- hdf5-vol-async
- hdf5-vol-cache
@@ -97,6 +81,7 @@ spack:
- hypre
- kokkos +openmp
- kokkos-kernels +openmp
+ - laghos
- lammps
- lbann
- legion
@@ -115,6 +100,7 @@ spack:
- netlib-scalapack
- nrm
- nvhpc
+ - nwchem
- omega-h
- openfoam
- openmpi
@@ -130,11 +116,11 @@ spack:
- precice
- pruners-ninja
- pumi
+ - py-amrex
- py-h5py
- py-jupyterhub
- py-libensemble
- py-petsc4py
- - py-warpx
- qthreads scheduler=distrib
- quantum-espresso
- raja
@@ -157,9 +143,13 @@ spack:
- umpire
- upcxx
- wannier90
+ - warpx +python
+ - wps
+ - wrf
- xyce +mpi +shared +pymi +pymi_static_tpls
# INCLUDED IN ECP DAV CPU
- adios2
+ - ascent
- darshan-runtime
- darshan-util
- faodel
@@ -171,16 +161,37 @@ spack:
- sz
- unifyfs
- veloc
- # - visit # silo: https://github.com/spack/spack/issues/39538
+ # - visit # silo: https://github.com/spack/spack/issues/39538
- vtk-m
- zfp
# --
- # - archer # part of llvm +omp_tsan
- # - bricks ~cuda # not respecting target=aarch64?
- # - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
- # - geopm # geopm: https://github.com/spack/spack/issues/38795
+ # - bricks ~cuda # not respecting target=aarch64?
+ # - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - geopm # geopm: https://github.com/spack/spack/issues/38795
+ # - glvis # glvis: https://github.com/spack/spack/issues/42839
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
- # - variorum # variorum: https://github.com/spack/spack/issues/38786
+ # - variorum # variorum: https://github.com/spack/spack/issues/38786
+
+ # PYTHON PACKAGES
+ - opencv +python3
+ - py-horovod
+ - py-jax
+ - py-jupyterlab
+ - py-matplotlib
+ - py-mpi4py
+ - py-notebook
+ - py-numba
+ - py-numpy
+ - py-openai
+ - py-pandas
+ - py-plotly
+ - py-pooch
+ - py-pytest
+ - py-scikit-learn
+ - py-scipy
+ - py-seaborn
+ - py-tensorflow
+ - py-torch
# CUDA NOARCH
- flux-core +cuda
@@ -188,17 +199,23 @@ spack:
- papi +cuda
- tau +mpi +cuda +syscall
# --
- # - bricks +cuda # not respecting target=aarch64?
- # - legion +cuda # legion: needs NVIDIA driver
+ # - bricks +cuda # not respecting target=aarch64?
+ # - legion +cuda # legion: needs NVIDIA driver
# CUDA 75
- amrex +cuda cuda_arch=75
- arborx +cuda cuda_arch=75 ^kokkos +wrapper
+ - axom +cuda cuda_arch=75
- cabana +cuda cuda_arch=75 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=75
- caliper +cuda cuda_arch=75
- - chai ~benchmarks ~tests +cuda cuda_arch=75 ^umpire ~shared
+ - chai +cuda cuda_arch=75 ^umpire ~shared
+ - chapel +cuda cuda_arch=75
+ - cusz +cuda cuda_arch=75
+ - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=75 # # +paraview: job killed oom?
+ - fftx +cuda cuda_arch=75
- flecsi +cuda cuda_arch=75
- ginkgo +cuda cuda_arch=75
+ - gromacs +cuda cuda_arch=75
- heffte +cuda cuda_arch=75
- hpx +cuda cuda_arch=75
- hypre +cuda cuda_arch=75
@@ -210,8 +227,10 @@ spack:
- omega-h +cuda cuda_arch=75
- parsec +cuda cuda_arch=75
- petsc +cuda cuda_arch=75
+ - py-torch +cuda cuda_arch=75
- raja +cuda cuda_arch=75
- slate +cuda cuda_arch=75
+ - slepc +cuda cuda_arch=75
- strumpack ~slate +cuda cuda_arch=75
- sundials +cuda cuda_arch=75
- superlu-dist +cuda cuda_arch=75
@@ -220,30 +239,32 @@ spack:
- umpire ~shared +cuda cuda_arch=75
# INCLUDED IN ECP DAV CUDA
- adios2 +cuda cuda_arch=75
- - paraview +cuda cuda_arch=75
+ # - ascent +cuda cuda_arch=75 # ascent: https://github.com/spack/spack/issues/38045
- vtk-m +cuda cuda_arch=75
- zfp +cuda cuda_arch=75
# --
- # - ascent +cuda cuda_arch=75 # ascent: https://github.com/spack/spack/issues/38045
- # - axom +cuda cuda_arch=75 # axom: https://github.com/spack/spack/issues/29520
- # - cusz +cuda cuda_arch=75 # cusz: https://github.com/spack/spack/issues/38787
- # - dealii +cuda cuda_arch=75 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
- # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=75 # embree: https://github.com/spack/spack/issues/39534
- # - lammps +cuda cuda_arch=75 # lammps: needs NVIDIA driver
- # - lbann +cuda cuda_arch=75 # lbann: https://github.com/spack/spack/issues/38788
+ # - cp2k +mpi +cuda cuda_arch=75 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80')
+ # - dealii +cuda cuda_arch=75 ~vtk # include/deal.II/base/vectorization.h(1498): error: identifier "vaddvq_f32" is undefined; +vtk: https://github.com/spack/spack/pull/45554#issuecomment-2457255720
+ # - lammps +cuda cuda_arch=75 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=75 # aluminum: include/aluminum/base.hpp:53: multiple definition of `cub::CUB_200400___CUDA_ARCH_LIST___NS::Debug(cudaError,char const*, int)'; lbann: https://github.com/spack/spack/issues/38788
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=75 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
- # - py-torch +cuda cuda_arch=75 # skipped, installed by other means
- # - slepc +cuda cuda_arch=75 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
- # - upcxx +cuda cuda_arch=75 # upcxx: needs NVIDIA driver
+ # - paraview +cuda cuda_arch=75 # paraview: killed oom?
+ # - upcxx +cuda cuda_arch=75 # upcxx: needs NVIDIA driver
# CUDA 80
- amrex +cuda cuda_arch=80
- arborx +cuda cuda_arch=80 ^kokkos +wrapper
+ - axom +cuda cuda_arch=80
- cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
- caliper +cuda cuda_arch=80
- - chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
+ - chai +cuda cuda_arch=80 ^umpire ~shared
+ - chapel +cuda cuda_arch=80
+ - cusz +cuda cuda_arch=80
+ - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=80 # +paraview: job killed oom?
+ - fftx +cuda cuda_arch=80
- flecsi +cuda cuda_arch=80
- ginkgo +cuda cuda_arch=80
+ - gromacs +cuda cuda_arch=80
- heffte +cuda cuda_arch=80
- hpx +cuda cuda_arch=80
- hypre +cuda cuda_arch=80
@@ -255,8 +276,10 @@ spack:
- omega-h +cuda cuda_arch=80
- parsec +cuda cuda_arch=80
- petsc +cuda cuda_arch=80
+ - py-torch +cuda cuda_arch=80
- raja +cuda cuda_arch=80
- slate +cuda cuda_arch=80
+ - slepc +cuda cuda_arch=80
- strumpack ~slate +cuda cuda_arch=80
- sundials +cuda cuda_arch=80
- superlu-dist +cuda cuda_arch=80
@@ -264,33 +287,35 @@ spack:
- trilinos +cuda cuda_arch=80
- umpire ~shared +cuda cuda_arch=80
# INCLUDED IN ECP DAV CUDA
+ # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
- adios2 +cuda cuda_arch=80
- - paraview +cuda cuda_arch=80
- vtk-m +cuda cuda_arch=80
- zfp +cuda cuda_arch=80
# --
- # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
- # - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
- # - cusz +cuda cuda_arch=80 # cusz: https://github.com/spack/spack/issues/38787
- # - dealii +cuda cuda_arch=80 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
- # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # embree: https://github.com/spack/spack/issues/39534
- # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
- # - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
+ # - cp2k +mpi +cuda cuda_arch=80 # cp2k: Error: KeyError: 'Point environment variable LIBSMM_PATH to the absolute path of the libsmm.a file'
+ # - dealii +cuda cuda_arch=80 ~vtk # include/deal.II/base/vectorization.h(1498): error: identifier "vaddvq_f32" is undefined; +vtk: https://github.com/spack/spack/pull/45554#issuecomment-2457255720
+ # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=80 # aluminum: include/aluminum/base.hpp:53: multiple definition of `cub::CUB_200400___CUDA_ARCH_LIST___NS::Debug(cudaError,char const*, int)'; lbann: https://github.com/spack/spack/issues/38788
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=80 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
- # - py-torch +cuda cuda_arch=80 # skipped, installed by other means
- # - slepc +cuda cuda_arch=80 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
- # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
+ # - paraview +cuda cuda_arch=80 # paraview: killed oom?
+ # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
# CUDA 90
- amrex +cuda cuda_arch=90
- arborx +cuda cuda_arch=90 ^kokkos +wrapper
+ - axom +cuda cuda_arch=90
- cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
- caliper +cuda cuda_arch=90
- - chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
+ - chai +cuda cuda_arch=90 ^umpire ~shared
+ - chapel +cuda cuda_arch=90
+ - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=90 # +paraview: vtkm/exec/cuda/internal/ThrustPatches.h(213): error: this declaration has no storage class or type specifier
+ - fftx +cuda cuda_arch=90
- flecsi +cuda cuda_arch=90
- ginkgo +cuda cuda_arch=90
+ - gromacs +cuda cuda_arch=90
- heffte +cuda cuda_arch=90
- hpx +cuda cuda_arch=90
+ - hypre +cuda cuda_arch=90
- kokkos +wrapper +cuda cuda_arch=90
- kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
- magma +cuda cuda_arch=90
@@ -298,38 +323,36 @@ spack:
- mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
- parsec +cuda cuda_arch=90
- petsc +cuda cuda_arch=90
+ - py-torch +cuda cuda_arch=90
- raja +cuda cuda_arch=90
- slate +cuda cuda_arch=90
+ - slepc +cuda cuda_arch=90
- strumpack ~slate +cuda cuda_arch=90
- sundials +cuda cuda_arch=90
- superlu-dist +cuda cuda_arch=90
+ - tasmanian +cuda cuda_arch=90
- trilinos +cuda cuda_arch=90
- umpire ~shared +cuda cuda_arch=90
# INCLUDED IN ECP DAV CUDA
- adios2 +cuda cuda_arch=90
- # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
+ # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
- vtk-m +cuda cuda_arch=90
- zfp +cuda cuda_arch=90
# --
- # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
- # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
- # - cusz +cuda cuda_arch=90 # cusz: https://github.com/spack/spack/issues/38787
- # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
- # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # embree: https://github.com/spack/spack/issues/39534
- # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
- # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
- # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
+ # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
+ # - cp2k +mpi +cuda cuda_arch=90 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80')
+ # - cusz +cuda cuda_arch=90 # cusz: cuda-12.5.1-pil77yk7gsseyqitybr47qmhdtszbcwa/targets/sbsa-linux/include/cub/util_device.cuh:160:63: error: 'blockIdx' was not declared in this scope
+ # - dealii +cuda cuda_arch=90 # dealii: concretize conflict + https://github.com/spack/spack/issues/39532
+ # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=90 # aluminum: include/aluminum/base.hpp:53: multiple definition of `cub::CUB_200400___CUDA_ARCH_LIST___NS::Debug(cudaError,char const*, int)';
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=90 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
- # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
- # - py-torch +cuda cuda_arch=90 # skipped, installed by other means
- # - slepc +cuda cuda_arch=90 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
- # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
- # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
+ # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
+ # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
ci:
pipeline-gen:
- build-job:
- image: "ghcr.io/spack/ubuntu20.04-runner-arm64-gcc-11.4:2023.08.01"
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
cdash:
build-group: E4S ARM Neoverse V1
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
index 75e11a695e..0095fd3ec1 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
@@ -8,19 +8,19 @@ spack:
packages:
all:
require:
- - any_of: ["%oneapi", "@:"] # oneapi as a strong preference; not all packages support it
- "target=x86_64_v3"
+ - "%oneapi"
providers:
blas: [openblas]
- mpi: [mpich]
tbb: [intel-tbb]
variants: +mpi
+ gl:
+ require: osmesa
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
gcc-runtime:
- require: "%gcc"
+ require: "%gcc target=x86_64_v3"
hdf5:
- require: "%gcc"
variants: +fortran +hl +shared
libfabric:
variants: fabrics=sockets,tcp,udp,rxm
@@ -37,44 +37,38 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
- mesa:
- version: [21.3.8]
mpi:
- require: 'mpich@4:'
+ require: 'mpich@4: target=x86_64_v3'
mpich:
- require: '~wrapperrpath ~hwloc'
- py-cryptography:
- require: '@38.0.1'
+ require: '~wrapperrpath ~hwloc target=x86_64_v3'
unzip:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
binutils:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
variants: +ld +gold +headers +libiberty ~nls
llvm:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
ruby:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
rust:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
krb5:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
papi:
- require: '%gcc'
+ require: '%gcc target=x86_64_v3'
openssh:
- require: '%gcc'
- libffi:
- require: "@3.4.4"
+ require: '%gcc target=x86_64_v3'
dyninst:
- require: "%gcc"
+ require: "%gcc target=x86_64_v3"
bison:
- require: '%gcc'
- # sycl abi change means you need 2024 compiler to use 2024 mkl
- intel-oneapi-mkl:
- require: "@2023"
+ require: '%gcc target=x86_64_v3'
+ paraview:
+ require: "+examples %oneapi target=x86_64_v3"
specs:
# CPU
- adios
+ - alquimia
- aml
- amrex
- arborx
@@ -86,11 +80,14 @@ spack:
- butterflypack
- cabana
- caliper
- - chai ~benchmarks ~tests
+ - chai
- charliecloud
- conduit
- datatransferkit
+ - dealii ~vtk ~taskflow cflags=-O0 cxxflags=-O0 # +vtk +taskflow: ^taskflow: CMake Error at CMakeLists.txt:81 (message): Taskflow currently supports the following compilers: g++ v7.0 or above, clang++ v6.0 or above; use -O0 to work around compiler failure
- drishti
+ - dxt-explorer
+ - ecp-data-vis-sdk ~cuda ~rocm +adios2 ~ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +ascent: fides: fides/xgc/XGCCommon.cxx:233:10: error: no member named 'iota' in namespace 'std'; +visit: visit_vtk/lightweight/vtkSkewLookupTable.C:32:10: error: cannot initialize return object of type 'unsigned char *' with an rvalue of type 'const unsigned char *'
- exaworks
- flecsi
- flit
@@ -99,9 +96,11 @@ spack:
- gasnet
- ginkgo
- globalarrays
+ - glvis ^llvm
- gmp
- gotcha
- gptune ~mpispawn
+ - gromacs
- h5bench
- hdf5-vol-async
- hdf5-vol-cache
@@ -111,8 +110,8 @@ spack:
- hypre
- kokkos +openmp
- kokkos-kernels +openmp
+ - laghos
- lammps
- - lbann
- legion
- libnrm
- libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp
@@ -122,32 +121,34 @@ spack:
- mercury
- metall
- mfem
+ - mgard +serial +openmp +timing +unstructured ~cuda
- mpark-variant
- mpifileutils ~xattr
- nccmp
- nco
- netlib-scalapack
- nrm
+ - nwchem
- omega-h
+ - openfoam
- openmpi
+ - openpmd-api
- papi
- papyrus
- parsec ~cuda
- pdt
- petsc
- phist
- - plasma
- plumed
- precice
- pruners-ninja
- pumi
+ - py-amrex ~ipo # oneAPI 2024.2.0 builds do not support IPO/LTO says CMake, even though pybind11 strongly encourages it
- py-h5py
- py-jupyterhub
- py-libensemble
- py-petsc4py
- - py-warpx
- qthreads scheduler=distrib
- - quantum-espresso
- raja
- rempi
- scr
@@ -158,6 +159,7 @@ spack:
- sundials
- superlu
- superlu-dist
+ - swig@4.0.2-fortran
- sz3
- tasmanian
- tau +mpi +python +syscall
@@ -165,11 +167,13 @@ spack:
- turbine
- umap
- umpire
+ - upcxx
- variorum
- wannier90
+ - wrf
- xyce +mpi +shared +pymi +pymi_static_tpls
# INCLUDED IN ECP DAV CPU
- - adios2 # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
+ - adios2
- ascent
- darshan-runtime
- darshan-util
@@ -177,27 +181,46 @@ spack:
- hdf5
- libcatalyst
- parallel-netcdf
- # - paraview # paraview: VTK/ThirdParty/cgns/vtkcgns/src/adfh/ADFH.c:2002:23: error: incompatible function pointer types passing 'herr_t (hid_t, const char *, const H5L_info1_t *, void *)' (aka 'int (long, const char *, const H5L_info1_t *, void *)') to parameter of type 'H5L_iterate2_t' (aka 'int (*)(long, const char *,const H5L_info2_t *, void *)') [-Wincompatible-function-pointer-types]
+ - paraview
- py-cinemasci
- sz
- unifyfs
- veloc
- # - visit # silo: https://github.com/spack/spack/issues/39538
- - vtk-m ~openmp # https://github.com/spack/spack/issues/31830
+ # - visit # visit: +visit: visit_vtk/lightweight/vtkSkewLookupTable.C:32:10: error: cannot initialize return object of type 'unsigned char *' with an rvalue of type 'const unsigned char *'
+ - vtk-m ~openmp
+ - warpx +python ~python_ipo ^py-amrex ~ipo # oneAPI 2024.2.0 builds do not support IPO/LTO says CMake, even though pybind11 strongly encourages it
- zfp
# --
- # - alquimia # pflotran: https://github.com/spack/spack/issues/39474
- # - archer # subsumed under llvm +libomp_tsan
- # - dealii # dealii: https://github.com/spack/spack/issues/39482
- # - dxt-explorer # r: https://github.com/spack/spack/issues/40257
- # - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # embree: CMake Error at CMakeLists.txt:215 (MESSAGE): Unsupported compiler: IntelLLVM; qt: qtbase/src/corelib/global/qendian.h:333:54: error: incomplete type 'std::numeric_limits' used in nested name specifier
- # - geopm # geopm issue: https://github.com/spack/spack/issues/38795
- # - hpctoolkit # dyninst@12.3.0%gcc: /usr/bin/ld: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'; can't mix intel-tbb@%oneapi with dyninst%gcc
- # - mgard +serial +openmp +timing +unstructured ~cuda # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
- # - openfoam # cgal: https://github.com/spack/spack/issues/39481
- # - openpmd-api # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
- # - swig@4.0.2-fortran # ?
- # - upcxx # upcxx: /opt/intel/oneapi/mpi/2021.10.0//libfabric/bin/fi_info: error while loading shared libraries: libfabric.so.1: cannot open shared object file: No such file or directory
+ # - chapel ~cuda ~rocm # llvm: closures.c:(.text+0x305e): undefined reference to `_intel_fast_memset'
+ # - cp2k +mpi # dbcsr: dbcsr_api.F(973): #error: incomplete macro call DBCSR_ABORT.
+ # - fftx # fftx: https://github.com/spack/spack/issues/47048
+ # - geopm-runtime # libelf: configure: error: installation or configuration problem: C compiler cannot create executables.
+ # - hpctoolkit # dyninst@13.0.0%gcc: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'
+ # - lbann # 2024.2 internal compiler error
+ # - plasma # 2024.2 internal compiler error
+ # - quantum-espresso # quantum-espresso: external/mbd/src/mbd_c_api.F90(392): error #6645: The name of the module procedure conflicts with a name in the encompassing scoping unit. [F_C_STRING]
+ # - wps # wps: InstallError: Compiler not recognized nor supported.
+
+ # PYTHON PACKAGES
+ - opencv +python3
+ - py-jupyterlab
+ - py-mpi4py
+ - py-notebook
+ - py-numba
+ - py-numpy
+ - py-openai
+ - py-pandas
+ - py-plotly
+ - py-pooch
+ - py-pytest
+ - py-scikit-learn
+ - py-scipy
+ - py-seaborn
+ # - py-horovod # error
+ # - py-jax # error
+ # - py-matplotlib # error
+ # - py-tensorflow # error
+ # - py-torch # error
# GPU
- aml +ze
@@ -209,20 +232,19 @@ spack:
- kokkos +sycl +openmp cxxstd=17 +examples
- kokkos-kernels build_type=Release %oneapi ^kokkos +sycl +openmp cxxstd=17 +examples
- petsc +sycl
- - slate +sycl
- sundials +sycl cxxstd=17 +examples-install
- - tau +mpi +opencl +level_zero ~pdt +syscall # tau: requires libdrm.so to be installed
+ - tau +mpi +opencl +level_zero ~pdt +syscall # requires libdrm.so to be installed
- upcxx +level_zero
+ - warpx ~qed +python ~python_ipo compute=sycl ^py-amrex ~ipo # qed for https://github.com/ECP-WarpX/picsar/pull/53 prior to 24.09 release; ~ipo for oneAPI 2024.2.0 GPU builds do not support IPO/LTO says CMake, even though pybind11 strongly encourages it
# --
- # - hpctoolkit +level_zero # dyninst@12.3.0%gcc: /usr/bin/ld: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'; can't mix intel-tbb@%oneapi with dyninst%gcc
- # - warpx compute=sycl # warpx: spack-build-wzp6vvo/_deps/fetchedamrex-src/Src/Base/AMReX_RandomEngine.H:18:10: fatal error: 'oneapi/mkl/rng/device.hpp' file not found
+ # - hpctoolkit +level_zero # dyninst@12.3.0%gcc: /usr/bin/ld: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'; can't mix intel-tbb@%oneapi with dyninst%gcc
+ # - slate +sycl # slate: ifx: error #10426: option '-fopenmp-targets' requires '-fiopenmp'
- - py-scipy
ci:
pipeline-gen:
- build-job:
- image: ghcr.io/spack/ubuntu20.04-runner-amd64-oneapi-2023.2.1:2023.08.01
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-oneapi-2024.2:2024.09.06
cdash:
build-group: E4S OneAPI
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
index 511f48e745..a770b0a299 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
@@ -15,14 +15,10 @@ spack:
variants: +mpi cuda_arch=70
binutils:
variants: +ld +gold +headers +libiberty ~nls
- elfutils:
- variants: +bzip2 ~nls +xz
hdf5:
variants: +fortran +hl +shared
libfabric:
variants: fabrics=sockets,tcp,udp,rxm
- libunwind:
- variants: +pic +xz
openblas:
variants: threads=openmp
trilinos:
@@ -32,24 +28,22 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
- mesa:
- version: [21.3.8]
mpi:
require: mpich
mpich:
- require: '~wrapperrpath ~hwloc'
+ require: '~wrapperrpath ~hwloc %gcc@9.4.0 target=ppc64le'
ncurses:
- require: '@6.3 +termlib'
+ require: '@6.3 +termlib %gcc@9.4.0 target=ppc64le'
faodel:
- require: "~tcmalloc"
+ require: "~tcmalloc %gcc@9.4.0 target=ppc64le"
tbb:
require: intel-tbb
- libffi:
- require: "@3.4.4"
vtk-m:
- require: "+examples"
+ require: "+examples %gcc@9.4.0 target=ppc64le"
cuda:
- require: "@11.4.4"
+ require: "@11.4.4 %gcc@9.4.0 target=ppc64le"
+ paraview:
+ require: "+examples %gcc@9.4.0 target=ppc64le"
specs:
@@ -67,15 +61,17 @@ spack:
- butterflypack
- cabana
- caliper
- - chai ~benchmarks ~tests
+ - chai
+ - chapel ~rocm ~cuda
- charliecloud
- conduit
+ - cp2k +mpi
- datatransferkit
- drishti
- dxt-explorer
- dyninst
- # - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
- exaworks
+ - fftx
- flecsi
- flit
- flux-core
@@ -86,7 +82,7 @@ spack:
- gmp
- gotcha
- gptune
- - gromacs +cp2k ^cp2k build_system=cmake
+ - gromacs +cp2k ^cp2k +mpi build_system=cmake
- h5bench
- hdf5-vol-async
- hdf5-vol-cache
@@ -97,6 +93,7 @@ spack:
- hypre
- kokkos +openmp
- kokkos-kernels +openmp
+ - laghos
- lammps
- lbann
- legion
@@ -115,6 +112,7 @@ spack:
- netlib-scalapack
- nrm
- nvhpc
+ - nwchem
- omega-h
- openfoam
- openmpi
@@ -130,11 +128,11 @@ spack:
- precice
- pruners-ninja
- pumi
+ - py-amrex
- py-h5py
- py-jupyterhub
- py-libensemble
- py-petsc4py
- - py-warpx
- qthreads scheduler=distrib
- quantum-espresso
- raja
@@ -157,6 +155,9 @@ spack:
- umpire
- upcxx
- wannier90
+ - warpx +python
+ - wps
+ - wrf
- xyce +mpi +shared +pymi +pymi_static_tpls
# INCLUDED IN ECP DAV CPU
- adios2
@@ -167,7 +168,6 @@ spack:
- hdf5
- libcatalyst
- parallel-netcdf
- - paraview
- py-cinemasci
- sz
- unifyfs
@@ -175,21 +175,43 @@ spack:
# - visit # libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
- vtk-m
- zfp
+ # - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
# --
- # - archer # part of llvm +omp_tsan
# - dealii # fltk: https://github.com/spack/spack/issues/38791
- # - geopm # geopm: https://github.com/spack/spack/issues/38798
+ # - geopm-runtime # cairo: *** No autoreconf found, please install it ***
+ # - glvis # glvis: https://github.com/spack/spack/issues/42839
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs: gcc: error: unrecognized command line option '-mno-sse2'; did you mean '-mno-isel'? gcc: error: unrecognized command line option '-mno-avx2'
# - phist +mpi # ghost@develop: gcc-9: error: unrecognized command line option '-march=native'; did you mean '-mcpu=native'?
# - variorum # variorum: https://github.com/spack/spack/issues/38786
+ # PYTHON PACKAGES
+ - opencv +python3
+ - py-jax
+ - py-jupyterlab
+ - py-matplotlib
+ - py-mpi4py
+ - py-notebook
+ - py-numba
+ - py-numpy
+ - py-openai
+ - py-pandas
+ - py-plotly
+ - py-pooch
+ - py-pytest
+ - py-scikit-learn
+ - py-scipy
+ - py-seaborn
+ # - py-horovod # py-torch, py-tensorflow
+ # - py-tensorflow # error
+ # - py-torch # error
+
# CUDA NOARCH
- bricks +cuda
- cabana +cuda ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=70
- flux-core +cuda
- hpctoolkit +cuda
- papi +cuda
- - tau +mpi +cuda # tau: has issue with `spack env depfile` build
+ - tau +mpi +cuda
# --
# - legion +cuda # legion: needs NVIDIA driver
@@ -197,11 +219,12 @@ spack:
- amrex +cuda cuda_arch=70
- arborx +cuda cuda_arch=70 ^kokkos +wrapper
- caliper +cuda cuda_arch=70
- - chai ~benchmarks ~tests +cuda cuda_arch=70 ^umpire ~shared
+ - chai +cuda cuda_arch=70 ^umpire ~shared
- ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=70
- exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=70 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=70 #^raja@0.14.0
- flecsi +cuda cuda_arch=70
- ginkgo +cuda cuda_arch=70
+ - gromacs +cuda cuda_arch=70
- heffte +cuda cuda_arch=70
- hpx +cuda cuda_arch=70
- hypre +cuda cuda_arch=70
@@ -229,6 +252,7 @@ spack:
- zfp +cuda cuda_arch=70
# --
# - axom +cuda cuda_arch=70 # axom: https://github.com/spack/spack/issues/29520
+ # - cp2k +mpi +cuda cuda_arch=70 # dbcsr
# - cusz +cuda cuda_arch=70 # cusz: https://github.com/spack/spack/issues/38787
# - dealii +cuda cuda_arch=70 # fltk: https://github.com/spack/spack/issues/38791
# - lammps +cuda cuda_arch=70 # lammps: needs NVIDIA driver
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml
index 8f902aa6a8..2098645d1b 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml
@@ -10,237 +10,208 @@ spack:
require: '%gcc target=x86_64_v3'
providers:
blas: [openblas]
- mpi: [mpich]
variants: +mpi
- binutils:
- variants: +ld +gold +headers +libiberty ~nls
- elfutils:
- variants: +bzip2 ~nls +xz
- hdf5:
- variants: +fortran +hl +shared
- libfabric:
- variants: fabrics=sockets,tcp,udp,rxm
- libunwind:
- variants: +pic +xz
- openblas:
- variants: threads=openmp
- trilinos:
- variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
- +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
- +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
- +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
- xz:
- variants: +pic
- mesa:
- version: [21.3.8]
+ tbb:
+ require: intel-tbb
mpi:
require: mpich
mpich:
- require: '~wrapperrpath ~hwloc'
- ncurses:
- require: '@6.3 +termlib'
- tbb:
- require: intel-tbb
- boost:
- version: [1.79.0]
- variants: +atomic +chrono +container +date_time +exception +filesystem +graph
- +iostreams +locale +log +math +mpi +multithreaded +program_options +random
- +regex +serialization +shared +signals +stacktrace +system +test +thread +timer
- cxxstd=17 visibility=global
- libffi:
- require: "@3.4.4"
- vtk-m:
- require: "+examples"
- cuda:
- version: [11.8.0]
+ require: '~wrapperrpath ~hwloc %gcc target=x86_64_v3'
+ openblas:
+ variants: threads=openmp
paraview:
# Don't build GUI support or GLX rendering for HPC/container deployments
- require: "@5.11 ~qt+osmesa"
+ require: "@5.11 +examples ~qt ^[virtuals=gl] osmesa %gcc target=x86_64_v3"
- # ROCm 5.4.3
+ # ROCm
comgr:
buildable: false
externals:
- - spec: comgr@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: comgr@6.2.1
+ prefix: /opt/rocm-6.2.1/
hip-rocclr:
buildable: false
externals:
- - spec: hip-rocclr@5.4.3
- prefix: /opt/rocm-5.4.3/hip
+ - spec: hip-rocclr@6.2.1
+ prefix: /opt/rocm-6.2.1/hip
hipblas:
buildable: false
externals:
- - spec: hipblas@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: hipblas@6.2.1
+ prefix: /opt/rocm-6.2.1/
hipcub:
buildable: false
externals:
- - spec: hipcub@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: hipcub@6.2.1
+ prefix: /opt/rocm-6.2.1/
hipfft:
buildable: false
externals:
- - spec: hipfft@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: hipfft@6.2.1
+ prefix: /opt/rocm-6.2.1/
hipsparse:
buildable: false
externals:
- - spec: hipsparse@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: hipsparse@6.2.1
+ prefix: /opt/rocm-6.2.1/
miopen-hip:
buildable: false
externals:
- - spec: hip-rocclr@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: miopen-hip@6.2.1
+ prefix: /opt/rocm-6.2.1/
miopengemm:
buildable: false
externals:
- - spec: miopengemm@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: miopengemm@6.2.1
+ prefix: /opt/rocm-6.2.1/
rccl:
buildable: false
externals:
- - spec: rccl@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rccl@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocblas:
buildable: false
externals:
- - spec: rocblas@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocblas@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocfft:
buildable: false
externals:
- - spec: rocfft@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocfft@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-clang-ocl:
buildable: false
externals:
- - spec: rocm-clang-ocl@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-clang-ocl@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-cmake:
buildable: false
externals:
- - spec: rocm-cmake@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-cmake@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-dbgapi:
buildable: false
externals:
- - spec: rocm-dbgapi@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-dbgapi@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-debug-agent:
buildable: false
externals:
- - spec: rocm-debug-agent@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-debug-agent@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-device-libs:
buildable: false
externals:
- - spec: rocm-device-libs@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-device-libs@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-gdb:
buildable: false
externals:
- - spec: rocm-gdb@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-gdb@6.2.1
+ prefix: /opt/rocm-6.2.1/
rocm-opencl:
buildable: false
externals:
- - spec: rocm-opencl@5.4.3
- prefix: /opt/rocm-5.4.3/opencl
+ - spec: rocm-opencl@6.2.1
+ prefix: /opt/rocm-6.2.1/opencl
rocm-smi-lib:
buildable: false
externals:
- - spec: rocm-smi-lib@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: rocm-smi-lib@6.2.1
+ prefix: /opt/rocm-6.2.1/
hip:
buildable: false
externals:
- - spec: hip@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: hip@6.2.1
+ prefix: /opt/rocm-6.2.1
extra_attributes:
compilers:
- c: /opt/rocm-5.4.3/llvm/bin/clang++
- c++: /opt/rocm-5.4.3/llvm/bin/clang++
- hip: /opt/rocm-5.4.3/hip/bin/hipcc
+ c: /opt/rocm-6.2.1/llvm/bin/clang++
+ c++: /opt/rocm-6.2.1/llvm/bin/clang++
+ hip: /opt/rocm-6.2.1/hip/bin/hipcc
hipify-clang:
buildable: false
externals:
- - spec: hipify-clang@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: hipify-clang@6.2.1
+ prefix: /opt/rocm-6.2.1
llvm-amdgpu:
buildable: false
externals:
- - spec: llvm-amdgpu@5.4.3
- prefix: /opt/rocm-5.4.3/llvm
+ - spec: llvm-amdgpu@6.2.1
+ prefix: /opt/rocm-6.2.1/llvm
extra_attributes:
compilers:
- c: /opt/rocm-5.4.3/llvm/bin/clang++
- cxx: /opt/rocm-5.4.3/llvm/bin/clang++
+ c: /opt/rocm-6.2.1/llvm/bin/clang++
+ cxx: /opt/rocm-6.2.1/llvm/bin/clang++
hsakmt-roct:
buildable: false
externals:
- - spec: hsakmt-roct@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: hsakmt-roct@6.2.1
+ prefix: /opt/rocm-6.2.1/
hsa-rocr-dev:
buildable: false
externals:
- - spec: hsa-rocr-dev@5.4.3
- prefix: /opt/rocm-5.4.3/
+ - spec: hsa-rocr-dev@6.2.1
+ prefix: /opt/rocm-6.2.1/
extra_atributes:
compilers:
- c: /opt/rocm-5.4.3/llvm/bin/clang++
- cxx: /opt/rocm-5.4.3/llvm/bin/clang++
+ c: /opt/rocm-6.2.1/llvm/bin/clang++
+ cxx: /opt/rocm-6.2.1/llvm/bin/clang++
roctracer-dev-api:
buildable: false
externals:
- - spec: roctracer-dev-api@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: roctracer-dev-api@6.2.1
+ prefix: /opt/rocm-6.2.1
roctracer-dev:
buildable: false
externals:
- spec: roctracer-dev@4.5.3
- prefix: /opt/rocm-5.4.3
+ prefix: /opt/rocm-6.2.1
rocprim:
buildable: false
externals:
- - spec: rocprim@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: rocprim@6.2.1
+ prefix: /opt/rocm-6.2.1
rocrand:
buildable: false
externals:
- - spec: rocrand@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: rocrand@6.2.1
+ prefix: /opt/rocm-6.2.1
hipsolver:
buildable: false
externals:
- - spec: hipsolver@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: hipsolver@6.2.1
+ prefix: /opt/rocm-6.2.1
rocsolver:
buildable: false
externals:
- - spec: rocsolver@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: rocsolver@6.2.1
+ prefix: /opt/rocm-6.2.1
rocsparse:
buildable: false
externals:
- - spec: rocsparse@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: rocsparse@6.2.1
+ prefix: /opt/rocm-6.2.1
rocthrust:
buildable: false
externals:
- - spec: rocthrust@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: rocthrust@6.2.1
+ prefix: /opt/rocm-6.2.1
rocprofiler-dev:
buildable: false
externals:
- - spec: rocprofiler-dev@5.4.3
- prefix: /opt/rocm-5.4.3
+ - spec: rocprofiler-dev@6.2.1
+ prefix: /opt/rocm-6.2.1
+ rocm-core:
+ buildable: false
+ externals:
+ - spec: rocm-core@6.2.1
+ prefix: /opt/rocm-6.2.1
specs:
# ROCM NOARCH
- hpctoolkit +rocm
- - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
+ - tau +mpi +rocm +syscall
# ROCM 908
- adios2 +kokkos +rocm amdgpu_target=gfx908
@@ -248,9 +219,9 @@ spack:
- arborx +rocm amdgpu_target=gfx908
- cabana +rocm amdgpu_target=gfx908
- caliper +rocm amdgpu_target=gfx908
- - chai ~benchmarks +rocm amdgpu_target=gfx908
+ - chai +rocm amdgpu_target=gfx908
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908
- - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908
+ - fftx +rocm amdgpu_target=gfx908
- gasnet +rocm amdgpu_target=gfx908
- ginkgo +rocm amdgpu_target=gfx908
- heffte +rocm amdgpu_target=gfx908
@@ -260,12 +231,8 @@ spack:
- legion +rocm amdgpu_target=gfx908
- magma ~cuda +rocm amdgpu_target=gfx908
- mfem +rocm amdgpu_target=gfx908
- - petsc +rocm amdgpu_target=gfx908
- raja ~openmp +rocm amdgpu_target=gfx908
- - slate +rocm amdgpu_target=gfx908
- - slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
- strumpack ~slate +rocm amdgpu_target=gfx908
- - sundials +rocm amdgpu_target=gfx908
- superlu-dist +rocm amdgpu_target=gfx908
- tasmanian ~openmp +rocm amdgpu_target=gfx908
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908
@@ -277,11 +244,18 @@ spack:
# - hdf5-vol-cache
# - hdf5-vol-log
# - libcatalyst
- - paraview +rocm amdgpu_target=gfx908
+ # - paraview +rocm amdgpu_target=gfx908 # mesa: https://github.com/spack/spack/issues/44745
# - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268
# --
+ # - chapel +rocm amdgpu_target=gfx908 # chapel: need chapel >= 2.2 to support ROCm >5.4
+ # - cp2k +mpi +rocm amdgpu_target=gfx908 # cp2k: Error: KeyError: 'No spec with name rocm in... "-L{}".format(spec["rocm"].libs.directories[0]),
+ # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # raja: https://github.com/spack/spack/issues/44593
# - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807
# - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898
+ # - petsc +rocm amdgpu_target=gfx908 # petsc: https://github.com/spack/spack/issues/44600
+ # - slate +rocm amdgpu_target=gfx908 # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type<double, 2>' and 'const HIP_vector_type<double, 2>')
+ # - slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908 # petsc: https://github.com/spack/spack/issues/44600
+ # - sundials +rocm amdgpu_target=gfx908 # sundials: https://github.com/spack/spack/issues/44601
# ROCM 90a
- adios2 +kokkos +rocm amdgpu_target=gfx90a
@@ -289,9 +263,9 @@ spack:
- arborx +rocm amdgpu_target=gfx90a
- cabana +rocm amdgpu_target=gfx90a
- caliper +rocm amdgpu_target=gfx90a
- - chai ~benchmarks +rocm amdgpu_target=gfx90a
+ - chai +rocm amdgpu_target=gfx90a
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a
- - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a
+ - fftx +rocm amdgpu_target=gfx90a
- gasnet +rocm amdgpu_target=gfx90a
- ginkgo +rocm amdgpu_target=gfx90a
- heffte +rocm amdgpu_target=gfx90a
@@ -301,12 +275,8 @@ spack:
- legion +rocm amdgpu_target=gfx90a
- magma ~cuda +rocm amdgpu_target=gfx90a
- mfem +rocm amdgpu_target=gfx90a
- - petsc +rocm amdgpu_target=gfx90a
- raja ~openmp +rocm amdgpu_target=gfx90a
- - slate +rocm amdgpu_target=gfx90a
- - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
- strumpack ~slate +rocm amdgpu_target=gfx90a
- - sundials +rocm amdgpu_target=gfx90a
- superlu-dist +rocm amdgpu_target=gfx90a
- tasmanian ~openmp +rocm amdgpu_target=gfx90a
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a
@@ -318,16 +288,23 @@ spack:
# - hdf5-vol-cache
# - hdf5-vol-log
# - libcatalyst
- - paraview +rocm amdgpu_target=gfx90a
+ # - paraview +rocm amdgpu_target=gfx90a # mesa: https://github.com/spack/spack/issues/44745
# - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268
# --
+ # - chapel +rocm amdgpu_target=gfx9a # chapel: need chapel >= 2.2 to support ROCm >5.4
+ # - cp2k +mpi +rocm amdgpu_target=gfx90a # cp2k: Error: KeyError: 'No spec with name rocm in... "-L{}".format(spec["rocm"].libs.directories[0]),
+ # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # raja: https://github.com/spack/spack/issues/44593
# - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807
# - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898
+ # - petsc +rocm amdgpu_target=gfx90a # petsc: https://github.com/spack/spack/issues/44600
+ # - slate +rocm amdgpu_target=gfx90a # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type<double, 2>' and 'const HIP_vector_type<double, 2>')
+ # - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a # petsc: https://github.com/spack/spack/issues/44600
+ # - sundials +rocm amdgpu_target=gfx90a # sundials: https://github.com/spack/spack/issues/44601
ci:
pipeline-gen:
- build-job:
- image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4-rocm5.4.3:2023.08.01"
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.2.1:2024.10.08
cdash:
build-group: E4S ROCm External
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
index 70fff7c477..29d5f63a16 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
@@ -14,8 +14,6 @@ spack:
variants: +mpi
binutils:
variants: +ld +gold +headers +libiberty ~nls
- elfutils:
- variants: +bzip2 ~nls +xz
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -29,35 +27,19 @@ spack:
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
- xz:
- variants: +pic
- mesa:
- version: [21.3.8]
mpi:
require: mpich
mpich:
- require: '~wrapperrpath ~hwloc'
- ncurses:
- require: '@6.3 +termlib'
+ require: '~wrapperrpath ~hwloc target=x86_64_v3'
tbb:
require: intel-tbb
- boost:
- version: [1.79.0]
- variants: +atomic +chrono +container +date_time +exception +filesystem +graph
- +iostreams +locale +log +math +mpi +multithreaded +program_options +random
- +regex +serialization +shared +signals +stacktrace +system +test +thread +timer
- cxxstd=17 visibility=global
- libffi:
- require: "@3.4.4"
vtk-m:
- require: "+examples"
+ require: "+examples target=x86_64_v3"
visit:
- require: "~gui"
- cuda:
- version: [11.8.0]
+ require: "~gui target=x86_64_v3"
paraview:
# Don't build GUI support or GLX rendering for HPC/container deployments
- require: "@5.11 ~qt+osmesa"
+ require: "@5.11 +examples ~qt ^[virtuals=gl] osmesa target=x86_64_v3"
specs:
# CPU
@@ -74,27 +56,33 @@ spack:
- butterflypack
- cabana
- caliper
- - chai ~benchmarks ~tests
+ - chai
+ - chapel ~rocm ~cuda
- charliecloud
- conduit
+ - cp2k +mpi
- datatransferkit
- - dealii
+ - dealii ~vtk # https://github.com/spack/spack/pull/45554#issuecomment-2457255720
- drishti
- dxt-explorer
- dyninst
- - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # adios2~cuda, ascent~cuda, darshan-runtime, darshan-util, faodel, hdf5, libcatalyst, parallel-netcdf, paraview~cuda, py-cinemasci, sz, unifyfs, veloc, visit, vtk-m, zfp
+ - e4s-cl
+ - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # adios2~cuda, ascent~cuda, darshan-runtime, darshan-util, faodel, hdf5, libcatalyst, parallel-netcdf, paraview~cuda, py-cinemasci, sz, unifyfs, veloc, visit, vtk-m, zfp
- exaworks
+ - fftx
- flecsi
- flit
- flux-core
- fortrilinos
+ - fpm
- gasnet
+ - geopm-runtime
- ginkgo
- globalarrays
- gmp
- gotcha
- gptune ~mpispawn
- - gromacs +cp2k ^cp2k build_system=cmake
+ - gromacs +cp2k ^cp2k +dlaf build_system=cmake
- h5bench
- hdf5-vol-async
- hdf5-vol-cache
@@ -106,7 +94,8 @@ spack:
- julia ^llvm ~clang ~gold ~polly targets=amdgpu,bpf,nvptx,webassembly
- kokkos +openmp
- kokkos-kernels +openmp
- - lammps
+ - laghos
+ - lammps +amoeba +asphere +bocs +body +bpm +brownian +cg-dna +cg-spica +class2 +colloid +colvars +compress +coreshell +dielectric +diffraction +dipole +dpd-basic +dpd-meso +dpd-react +dpd-smooth +drude +eff +electrode +extra-compute +extra-dump +extra-fix +extra-molecule +extra-pair +fep +granular +interlayer +kspace +lepton +machdyn +manybody +mc +meam +mesont +misc +ml-iap +ml-pod +ml-snap +mofff +molecule +openmp-package +opt +orient +peri +phonon +plugin +poems +qeq +reaction +reaxff +replica +rigid +shock +sph +spin +srd +tally +uef +voronoi +yaff
- lbann
- legion
- libnrm
@@ -122,9 +111,12 @@ spack:
- mpifileutils ~xattr
- nccmp
- nco
+ - nekbone +mpi
+ - netcdf-fortran
- netlib-scalapack
- nrm
- nvhpc
+ - nwchem
- omega-h
- openfoam
- openmpi
@@ -140,11 +132,11 @@ spack:
- precice
- pruners-ninja
- pumi
+ - py-amrex
- py-h5py
- py-jupyterhub
- py-libensemble
- py-petsc4py
- - py-warpx
- qthreads scheduler=distrib
- quantum-espresso
- raja
@@ -168,6 +160,8 @@ spack:
- upcxx
- variorum
- wannier90
+ - wps
+ - wrf
- xyce +mpi +shared +pymi +pymi_static_tpls
# INCLUDED IN ECP DAV CPU
- adios2
@@ -183,12 +177,35 @@ spack:
- sz
- unifyfs
- veloc
- # - visit # silo: https://github.com/spack/spack/issues/39538
+ - visit # silo: https://github.com/spack/spack/issues/39538
- vtk-m
+ - warpx +python
- zfp
# --
- # - archer # submerged into llvm +libomp_tsan
- # - geopm # geopm: https://github.com/spack/spack/issues/38795
+ - glvis # glvis: https://github.com/spack/spack/issues/42839
+ # - nek5000 +mpi +visit # nek5000: Error: AttributeError: 'str' object has no attribute 'propagate': 'VISIT_INSTALL="' + spec["visit"].prefix.bin + '"',
+
+ # PYTHON PACKAGES
+ - opencv +python3
+ - py-horovod
+ - py-jax
+ - py-jupyterlab
+ - py-matplotlib
+ - py-mpi4py
+ - py-notebook
+ - py-numba
+ - py-numpy
+ - py-openai
+ - py-pandas
+ - py-plotly
+ - py-pooch
+ - py-pytest
+ - py-scikit-learn
+ - py-scipy
+ - py-seaborn
+ - py-tensorflow
+ - py-torch
+ - py-deephyper
# CUDA NOARCH
- bricks +cuda
@@ -202,15 +219,18 @@ spack:
# CUDA 80
- amrex +cuda cuda_arch=80
- arborx +cuda cuda_arch=80 ^kokkos +wrapper
+ - axom +cuda cuda_arch=80
- cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
- caliper +cuda cuda_arch=80
- - chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
+ - chai +cuda cuda_arch=80 ^umpire ~shared
+ - chapel +cuda cuda_arch=80
- cusz +cuda cuda_arch=80
- - dealii +cuda cuda_arch=80
- ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # +ascent fails because fides fetch error
- exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 #^raja@0.14.0
+ - fftx +cuda cuda_arch=80
- flecsi +cuda cuda_arch=80
- ginkgo +cuda cuda_arch=80
+ - gromacs +cuda cuda_arch=80
- heffte +cuda cuda_arch=80
- hpx +cuda cuda_arch=80
- hypre +cuda cuda_arch=80
@@ -219,7 +239,6 @@ spack:
- libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=80 ^cusz +cuda cuda_arch=80
- magma +cuda cuda_arch=80
- mfem +cuda cuda_arch=80
- - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80
- omega-h +cuda cuda_arch=80
- parsec +cuda cuda_arch=80
- petsc +cuda cuda_arch=80
@@ -234,43 +253,47 @@ spack:
- trilinos +cuda cuda_arch=80
- umpire ~shared +cuda cuda_arch=80
# INCLUDED IN ECP DAV CUDA
- # - adios2 +cuda cuda_arch=80
- # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
- # - paraview +cuda cuda_arch=80
- # - vtk-m +cuda cuda_arch=80
- # - zfp +cuda cuda_arch=80
+ - adios2 +cuda cuda_arch=80
+ # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
+ - paraview +cuda cuda_arch=80
+ - vtk-m +cuda cuda_arch=80
+ - zfp +cuda cuda_arch=80
# --
- # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
- # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
- # - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
- # - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
+ # - dealii +cuda cuda_arch=80 # dealii: conflicts with '+cuda ^cuda@12:'
+ # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=80 # lbann: layers/transform/cereal_registration/../permute/cutensor_support.hpp:95:18: error: 'cutensorInit' was not declared in this scope; did you mean 'cutensorPlan_t'?
+ # - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80 # mgard: https://github.com/spack/spack/issues/44833
+ # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
# CUDA 90
- amrex +cuda cuda_arch=90
- arborx +cuda cuda_arch=90 ^kokkos +wrapper
+ - axom +cuda cuda_arch=90
- cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
- caliper +cuda cuda_arch=90
- - chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
- - cusz +cuda cuda_arch=90
+ - chai +cuda cuda_arch=90 ^umpire ~shared
+ - chapel +cuda cuda_arch=90
+ - fftx +cuda cuda_arch=90
- flecsi +cuda cuda_arch=90
- ginkgo +cuda cuda_arch=90
+ - gromacs +cuda cuda_arch=90
- heffte +cuda cuda_arch=90
- hpx +cuda cuda_arch=90
+ - hypre +cuda cuda_arch=90
- kokkos +wrapper +cuda cuda_arch=90
- kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
- - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90
- magma +cuda cuda_arch=90
- mfem +cuda cuda_arch=90
- mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
- parsec +cuda cuda_arch=90
- petsc +cuda cuda_arch=90
- - py-torch +cuda cuda_arch=90
- raja +cuda cuda_arch=90
- slate +cuda cuda_arch=90
- slepc +cuda cuda_arch=90
- strumpack ~slate +cuda cuda_arch=90
- sundials +cuda cuda_arch=90
- superlu-dist +cuda cuda_arch=90
+ - tasmanian +cuda cuda_arch=90
- trilinos +cuda cuda_arch=90
- umpire ~shared +cuda cuda_arch=90
# INCLUDED IN ECP DAV CUDA
@@ -280,82 +303,34 @@ spack:
- vtk-m +cuda cuda_arch=90
- zfp +cuda cuda_arch=90
# --
- # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
- # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
- # - ecp-data-vis-sdk ~rocm +adios2 +ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # paraview: incompatible cuda_arch; vtk-m: CMake Error at CMake/VTKmWrappers.cmake:413 (message): vtkm_cont needs to be built STATIC as CUDA doesn't support virtual methods across dynamic library boundaries. You need to set the CMake opt ion BUILD_SHARED_LIBS to `OFF` or (better) turn VTKm_NO_DEPRECATED_VIRTUAL to `ON`.
- # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
+ # - cusz +cuda cuda_arch=90 # cusz: cuda-12.5.0-ndrzb7undvancjdj3fi6bhthdxdo7gr5/targets/x86_64-linux/include/cub/util_device.cuh:202:50: error: 'blockDim' was not declared in this scope
+ # - dealii +cuda cuda_arch=90 # dealii: conflicts with '+cuda ^cuda@12:'; dealii: https://github.com/spack/spack/issues/39532
+ # - ecp-data-vis-sdk ~rocm +adios2 +ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # +ascent: # ascent: https://github.com/spack/spack/issues/38045; +paraview: VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/exec/cuda/internal/ExecutionPolicy.h(121): error: namespace "thrust" has no member "sort"
# - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
- # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
+ # - lbann +cuda cuda_arch=90 # aluminum: /usr/include/c++/11/bits/basic_string.h:1260: multiple definition of `cub::CUB_200400___CUDA_ARCH_LIST___NS::Debug(cudaError, char const*, int)';
+ # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90 # cusz: cuda-12.5.0-e3rny44pq5z5x3nnoljynbsq5on5fnl3/targets/x86_64-linux/include/cub/util_device.cuh:202:50: error: 'blockDim' was not declared in this scope
# - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
- # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
+ # - py-torch +cuda cuda_arch=90 # py-torch: FAILED: caffe2/CMakeFiles/torch_cuda.dir/__/aten/src/ATen/native/transformers/cuda/flash_attn/kernels/flash_bwd_hdim256_bf16_sm80.cu.o
# - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
# ROCM NOARCH
- hpctoolkit +rocm
- - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
-
- # ROCM 908
- - adios2 +kokkos +rocm amdgpu_target=gfx908
- - amrex +rocm amdgpu_target=gfx908
- - arborx +rocm amdgpu_target=gfx908
- - cabana +rocm amdgpu_target=gfx908
- - caliper +rocm amdgpu_target=gfx908
- - chai ~benchmarks +rocm amdgpu_target=gfx908
- - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908
- - gasnet +rocm amdgpu_target=gfx908
- - ginkgo +rocm amdgpu_target=gfx908
- - heffte +rocm amdgpu_target=gfx908
- - hpx +rocm amdgpu_target=gfx908
- - hypre +rocm amdgpu_target=gfx908
- - kokkos +rocm amdgpu_target=gfx908
- - legion +rocm amdgpu_target=gfx908
- - magma ~cuda +rocm amdgpu_target=gfx908
- - mfem +rocm amdgpu_target=gfx908
- - petsc +rocm amdgpu_target=gfx908
- - raja ~openmp +rocm amdgpu_target=gfx908
- - slate +rocm amdgpu_target=gfx908
- - slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
- - strumpack ~slate +rocm amdgpu_target=gfx908
- - sundials +rocm amdgpu_target=gfx908
- - superlu-dist +rocm amdgpu_target=gfx908
- - tasmanian ~openmp +rocm amdgpu_target=gfx908
- - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908
- - umpire +rocm amdgpu_target=gfx908
- - upcxx +rocm amdgpu_target=gfx908
- # INCLUDED IN ECP DAV ROCM
- # - hdf5
- # - hdf5-vol-async
- # - hdf5-vol-cache
- # - hdf5-vol-log
- # - libcatalyst
- - paraview +rocm amdgpu_target=gfx908
- # - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268
- # --
- # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
- # - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807
- # - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898
+ - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
# ROCM 90a
- - adios2 +kokkos +rocm amdgpu_target=gfx90a
- amrex +rocm amdgpu_target=gfx90a
- - arborx +rocm amdgpu_target=gfx90a
- - cabana +rocm amdgpu_target=gfx90a
- caliper +rocm amdgpu_target=gfx90a
- - chai ~benchmarks +rocm amdgpu_target=gfx90a
+ - chai +rocm amdgpu_target=gfx90a
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a
- gasnet +rocm amdgpu_target=gfx90a
- ginkgo +rocm amdgpu_target=gfx90a
- heffte +rocm amdgpu_target=gfx90a
- hpx +rocm amdgpu_target=gfx90a
- hypre +rocm amdgpu_target=gfx90a
- - kokkos +rocm amdgpu_target=gfx90a
- - legion +rocm amdgpu_target=gfx90a
- magma ~cuda +rocm amdgpu_target=gfx90a
- mfem +rocm amdgpu_target=gfx90a
- - petsc +rocm amdgpu_target=gfx90a
- raja ~openmp +rocm amdgpu_target=gfx90a
- slate +rocm amdgpu_target=gfx90a
- - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
- strumpack ~slate +rocm amdgpu_target=gfx90a
- sundials +rocm amdgpu_target=gfx90a
- superlu-dist +rocm amdgpu_target=gfx90a
@@ -372,14 +347,28 @@ spack:
- paraview +rocm amdgpu_target=gfx90a
# - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268
# --
+ # - adios2 +kokkos +rocm amdgpu_target=gfx90a # +kokkos: https://github.com/spack/spack/issues/44832
+ # - arborx +rocm amdgpu_target=gfx90a # kokkos: https://github.com/spack/spack/issues/44832
+ # - cabana +rocm amdgpu_target=gfx90a # kokkos: https://github.com/spack/spack/issues/44832
+ # - chapel +rocm amdgpu_target=gfx90a # chapel: need chapel >= 2.2 to support ROCm >5.4
# - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
+ # - fftx +rocm amdgpu_target=gfx90a # fftx: https://github.com/spack/spack/issues/47034
+ # - kokkos +rocm amdgpu_target=gfx90a # kokkos: https://github.com/spack/spack/issues/44832
# - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807
+ # - legion +rocm amdgpu_target=gfx90a # kokkos: https://github.com/spack/spack/issues/44832
# - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898
+ # - petsc +rocm amdgpu_target=gfx90a # petsc: https://github.com/spack/spack/issues/44600
+ # - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a # petsc: https://github.com/spack/spack/issues/44600
+
+ # - cp2k +mpi +cuda cuda_arch=80 # cp2k: spack-stage-libxsmm-1.17-r2zqxa24bhufaj5i3ili5se25cw7tioo/spack-src/./src/libxsmm_gemm.c:238: undefined reference to `sgemv_'
+ # - cp2k +mpi +cuda cuda_arch=90 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80')
+ # - cp2k +mpi +rocm amdgpu_target=gfx908 # cp2k: "-L{}".format(spec["rocm"].libs.directories[0]),
+ # - cp2k +mpi +rocm amdgpu_target=gfx90a # cp2k: "-L{}".format(spec["rocm"].libs.directories[0]),
ci:
pipeline-gen:
- build-job:
- image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01"
+ image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
cdash:
build-group: E4S
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
index 263d8e29b3..986ffa2f46 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
@@ -16,7 +16,7 @@ spack:
boost:
variants: +python +filesystem +iostreams +system
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -31,7 +31,7 @@ spack:
variants: threads=openmp
paraview:
# Don't build GUI support or GLX rendering for HPC/container deployments
- require: "@5.11 ~qt+osmesa"
+ require: "@5.11 ~qt ^[virtuals=gl] osmesa"
trilinos:
require: +amesos +amesos2 +anasazi +aztec +boost +epetra +epetraext
+ifpack +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml
index 0526a4a12f..d3eb74a366 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml
@@ -3,8 +3,11 @@ spack:
packages:
all:
- require: target=aarch64
- variants: +mps~cuda~rocm
+ require:
+ - target=aarch64
+ - +mps
+ - ~cuda
+ - ~rocm
mpi:
require: openmpi
openblas:
@@ -31,9 +34,6 @@ spack:
- py-keras-preprocessing
- py-keras2onnx
- # MXNet not supported on darwin aarch64 yet
- # - mxnet
-
# PyTorch
- py-botorch
- py-efficientnet-pytorch
@@ -81,8 +81,6 @@ spack:
# XGBoost
- py-xgboost
- # - r-xgboost
- - xgboost
ci:
pipeline-gen:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cpu/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cpu/spack.yaml
new file mode 100644
index 0000000000..23ed6aa665
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cpu/spack.yaml
@@ -0,0 +1,85 @@
+spack:
+ view: false
+ packages:
+ all:
+ require:
+ - target=aarch64
+ - ~cuda
+ - ~rocm
+ mpi:
+ require: openmpi
+
+ specs:
+ # Horovod
+ - py-horovod
+
+ # Hugging Face
+ - py-transformers
+
+ # JAX
+ - py-jax
+ - py-jaxlib
+
+ # Keras
+ - py-keras backend=tensorflow
+ - py-keras backend=jax
+ - py-keras backend=torch
+ - py-keras-applications
+ - py-keras-preprocessing
+ - py-keras2onnx
+
+ # PyTorch
+ - py-botorch
+ - py-efficientnet-pytorch
+ - py-gpytorch
+ - py-kornia
+ - py-lightning
+ - py-pytorch-gradual-warmup-lr
+ - py-pytorch-lightning
+ - py-segmentation-models-pytorch
+ - py-timm
+ - py-torch
+ - py-torch-cluster
+ - py-torch-geometric
+ - py-torch-nvidia-apex
+ - py-torch-scatter
+ - py-torch-sparse
+ - py-torch-spline-conv
+ - py-torchaudio
+ - py-torchdata
+ - py-torchfile
+ - py-torchgeo
+ - py-torchmetrics
+ - py-torchtext
+ - py-torchvision
+ - py-vector-quantize-pytorch
+
+ # scikit-learn
+ - py-scikit-learn
+ - py-scikit-learn-extra
+
+ # TensorBoard
+ - py-tensorboard
+ - py-tensorboard-data-server
+ - py-tensorboard-plugin-wit
+ - py-tensorboardx
+
+ # TensorFlow
+ - py-tensorflow
+ - py-tensorflow-datasets
+ - py-tensorflow-hub
+ - py-tensorflow-metadata
+ - py-tensorflow-probability
+
+ # XGBoost
+ - py-xgboost
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image:
+ name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
+ entrypoint: ['']
+
+ cdash:
+ build-group: Machine Learning
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cuda/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cuda/spack.yaml
new file mode 100644
index 0000000000..47f4eda0f1
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-aarch64-cuda/spack.yaml
@@ -0,0 +1,91 @@
+spack:
+ view: false
+ packages:
+ all:
+ require:
+ - target=aarch64
+ - ~rocm
+ - +cuda
+ - cuda_arch=80
+ llvm:
+ # https://github.com/spack/spack/issues/27999
+ require: ~cuda
+ mpi:
+ require: openmpi
+
+ specs:
+ # Horovod
+ - py-horovod
+
+ # Hugging Face
+ - py-transformers
+
+ # JAX
+ - py-jax
+ - py-jaxlib
+
+ # Keras
+ - py-keras backend=tensorflow
+ - py-keras backend=jax
+ - py-keras backend=torch
+ - py-keras-applications
+ - py-keras-preprocessing
+ - py-keras2onnx
+
+ # PyTorch
+ - py-botorch
+ - py-efficientnet-pytorch
+ - py-gpytorch
+ - py-kornia
+ - py-lightning
+ - py-pytorch-gradual-warmup-lr
+ - py-pytorch-lightning
+ - py-segmentation-models-pytorch
+ - py-timm
+ - py-torch
+ - py-torch-cluster
+ - py-torch-geometric
+ - py-torch-nvidia-apex
+ - py-torch-scatter
+ - py-torch-sparse
+ - py-torch-spline-conv
+ - py-torchaudio
+ - py-torchdata
+ - py-torchfile
+ - py-torchgeo
+ - py-torchmetrics
+ # torchtext requires older pytorch, which requires older cuda, which doesn't support newer GCC
+ # - py-torchtext
+ - py-torchvision
+ - py-vector-quantize-pytorch
+
+ # scikit-learn
+ - py-scikit-learn
+ - py-scikit-learn-extra
+
+ # TensorBoard
+ - py-tensorboard
+ - py-tensorboard-data-server
+ - py-tensorboard-plugin-wit
+ - py-tensorboardx
+
+ # TensorFlow
+ - py-tensorflow
+ - py-tensorflow-datasets
+ - py-tensorflow-hub
+ - py-tensorflow-metadata
+ - py-tensorflow-probability
+
+ # XGBoost
+ # xgboost requires older cuda, which doesn't support newer GCC
+ # - py-xgboost
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image:
+ name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
+ entrypoint: ['']
+
+ cdash:
+ build-group: Machine Learning
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml
index fdce7f9bb4..31ca52dd39 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml
@@ -2,8 +2,10 @@ spack:
view: false
packages:
all:
- require: target=x86_64_v3
- variants: ~cuda~rocm
+ require:
+ - target=x86_64_v3
+ - ~cuda
+ - ~rocm
mpi:
require: openmpi
@@ -19,16 +21,13 @@ spack:
- py-jaxlib
# Keras
- # - py-keras backend=tensorflow
+ - py-keras backend=tensorflow
- py-keras backend=jax
- py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
- # MXNet
- - mxnet
-
# PyTorch
- py-botorch
- py-efficientnet-pytorch
@@ -68,21 +67,18 @@ spack:
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
- - py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
# XGBoost
- py-xgboost
- # - r-xgboost
- - xgboost
ci:
pipeline-gen:
- build-job:
image:
- name: ghcr.io/spack/linux-ubuntu22.04-x86_64_v2:v2023-07-01
+ name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
entrypoint: ['']
cdash:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml
index 1a64d83811..05b570f8f9 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml
@@ -2,8 +2,11 @@ spack:
view: false
packages:
all:
- require: target=x86_64_v3
- variants: ~rocm+cuda cuda_arch=80
+ require:
+ - target=x86_64_v3
+ - ~rocm
+ - +cuda
+ - cuda_arch=80
llvm:
# https://github.com/spack/spack/issues/27999
require: ~cuda
@@ -22,16 +25,13 @@ spack:
- py-jaxlib
# Keras
- # - py-keras backend=tensorflow
+ - py-keras backend=tensorflow
- py-keras backend=jax
- py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
- # MXNet
- - mxnet
-
# PyTorch
- py-botorch
- py-efficientnet-pytorch
@@ -54,7 +54,8 @@ spack:
- py-torchfile
- py-torchgeo
- py-torchmetrics
- - py-torchtext
+ # torchtext requires older pytorch, which requires older cuda, which doesn't support newer GCC
+ # - py-torchtext
- py-torchvision
- py-vector-quantize-pytorch
@@ -71,21 +72,19 @@ spack:
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
- - py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
# XGBoost
- - py-xgboost
- # - r-xgboost
- - xgboost
+ # xgboost requires older cuda, which doesn't support newer GCC
+ # - py-xgboost
ci:
pipeline-gen:
- build-job:
image:
- name: ghcr.io/spack/linux-ubuntu22.04-x86_64_v2:v2023-07-01
+ name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
entrypoint: ['']
cdash:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml
index 5633d9846a..4b66256255 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml
@@ -2,40 +2,38 @@ spack:
view: false
packages:
all:
- require: target=x86_64_v3
- variants: ~cuda+rocm amdgpu_target=gfx90a
+ require:
+ - target=x86_64_v3
+ - ~cuda
+ - +rocm
+ - amdgpu_target=gfx90a
gl:
require: "osmesa"
- py-torch:
- # Does not yet support Spack-installed ROCm
- require: ~rocm
mpi:
require: openmpi
specs:
# Horovod
- - py-horovod
+ # - py-horovod
# Hugging Face
- py-transformers
# JAX
- - py-jax
- - py-jaxlib
+ # Does not yet support Spack-installed ROCm
+ # - py-jax
+ # - py-jaxlib
# Keras
- # - py-keras backend=tensorflow
- - py-keras backend=jax
+ - py-keras backend=tensorflow
+ # - py-keras backend=jax
# - py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
- # MXNet
- - mxnet
-
# PyTorch
- # Does not yet support Spack-install ROCm
+ # Does not yet support Spack-installed ROCm
# - py-botorch
# - py-efficientnet-pytorch
# - py-gpytorch
@@ -74,21 +72,19 @@ spack:
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
- - py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
# XGBoost
- - py-xgboost
- # - r-xgboost
- - xgboost
+ # Does not yet support Spack-installed ROCm
+ # - py-xgboost
ci:
pipeline-gen:
- build-job:
image:
- name: ghcr.io/spack/linux-ubuntu22.04-x86_64_v2:v2023-07-01
+ name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
entrypoint: ['']
cdash:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
index ca8e1a9905..3aea6fc48a 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
@@ -17,12 +17,11 @@ spack:
- axom
- blt
- caliper
- #- care ## ~benchmarks ~examples ~tests
- #- chai ## ~benchmarks ~examples ~tests
+ - care # ~benchmarks ~examples ~tests
+ - chai # ~examples
- conduit # ^hdf5+shared
- flux-core
#- flux-sched
- #- glvis # ^mesa-glu@9.0.0 ^mesa18~llvm # same issue w/chai
- hypre
- lbann
- lvarray ~tests # per Spack issue #23192 # ~examples
@@ -32,6 +31,7 @@ spack:
- py-merlin
- py-shroud
- raja # ~examples # ~tests
+ - raja-perf
- samrai
- scr
- sundials
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml
index c320442cbe..9917841db5 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml
@@ -23,6 +23,8 @@ spack:
- lmod@8.7.18
- environment-modules
- macsio@1.1+scr ^scr@2.0.0~fortran ^silo~fortran ^hdf5~fortran
+ - julia@1.9 ^llvm ~clang ~gold ~lldb ~lua ~polly compiler-rt=none libcxx=none libunwind=none targets=x86 ^openblas threads=openmp
+ - vim
- ['%gcc@11']
- gcc_old_packages:
- zlib-ng%gcc@10
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml
new file mode 100644
index 0000000000..1d2546b698
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/windows-vis/spack.yaml
@@ -0,0 +1,12 @@
+# Windows Visualization Stack
+# maintainers:
+# - John Parent (@johnwparent)
+# - Ryan Krattiger (@kwryankrattiger)
+
+spack:
+ view: false
+ specs:
+ - vtk~mpi
+
+ cdash:
+ build-group: Windows Visualization (Kitware)
diff --git a/share/spack/gitlab/nersc_pipeline.yml b/share/spack/gitlab/nersc_pipeline.yml
deleted file mode 100644
index 5edcb70c78..0000000000
--- a/share/spack/gitlab/nersc_pipeline.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-merge_pipeline:
- only:
- - develop
- variables:
- SPACK_REPO: ${CI_PROJECT_URL}
- SPACK_REF: ${CI_COMMIT_SHA}
- trigger:
- project: ecp/e4s/e4s
- strategy: depend
diff --git a/share/spack/qa/bootstrap-file.py b/share/spack/qa/bootstrap-file.py
new file mode 100644
index 0000000000..720bd99bbc
--- /dev/null
+++ b/share/spack/qa/bootstrap-file.py
@@ -0,0 +1,4 @@
+from spack.util.filesystem import file_command
+
+if __name__ == "__main__":
+ file_command()
diff --git a/share/spack/qa/config_state.py b/share/spack/qa/config_state.py
new file mode 100644
index 0000000000..0c77c31cc6
--- /dev/null
+++ b/share/spack/qa/config_state.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+"""Used to test correct application of config line scopes in various cases.
+
+The option `config:cache` is supposed to be False, and overridden to True
+from the command line.
+"""
+import multiprocessing as mp
+
+import spack.config
+import spack.subprocess_context
+
+
+def show_config(serialized_state):
+ _ = serialized_state.restore()
+ result = spack.config.CONFIG.get("config:ccache")
+ if result is not True:
+ raise RuntimeError(f"Expected config:ccache:true, but got {result}")
+
+
+if __name__ == "__main__":
+ print("Testing spawn")
+ ctx = mp.get_context("spawn")
+ serialized_state = spack.subprocess_context.PackageInstallContext(None, ctx=ctx)
+ p = ctx.Process(target=show_config, args=(serialized_state,))
+ p.start()
+ p.join()
+
+ print("Testing fork")
+ ctx = mp.get_context("fork")
+ serialized_state = spack.subprocess_context.PackageInstallContext(None, ctx=ctx)
+ p = ctx.Process(target=show_config, args=(serialized_state,))
+ p.start()
+ p.join()
diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests
index 6808e18bdb..71d2979ead 100755
--- a/share/spack/qa/run-unit-tests
+++ b/share/spack/qa/run-unit-tests
@@ -46,18 +46,13 @@ $coverage_run $(which spack) python -c "import spack.pkg.builtin.mpileaks; repr(
#-----------------------------------------------------------
# Run unit tests with code coverage
#-----------------------------------------------------------
-if [[ "$SPACK_TEST_SOLVER" == "original" ]]; then
- echo "ORIGINAL CONCRETIZER [skipping slow unit tests]"
- export PYTEST_ADDOPTS='-m "not maybeslow"'
-fi
-
# Check if xdist is available
-if python -m pytest --trace-config 2>&1 | grep xdist; then
+if [[ "$UNIT_TEST_COVERAGE" != "true" ]] && python -m pytest -VV 2>&1 | grep xdist; then
export PYTEST_ADDOPTS="$PYTEST_ADDOPTS --dist loadfile --tx '${SPACK_TEST_PARALLEL:=3}*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python'"
fi
# We are running pytest-cov after the addition of pytest-xdist, since it integrates
-# other pugins for pytest automatically. We still need to use "coverage" explicitly
+# other plugins for pytest automatically. We still need to use "coverage" explicitly
# for the commands above.
#
# There is a need to pass the configuration file explicitly due to a bug:
@@ -66,9 +61,9 @@ fi
# where it seems that otherwise the configuration file might not be located by subprocesses
# in some, not better specified, cases.
if [[ "$UNIT_TEST_COVERAGE" == "true" ]]; then
- $(which spack) unit-test -x --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml
+ "$(which spack)" unit-test -x --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml
else
- $(which spack) unit-test -x --verbose
+ "$(which spack)" unit-test -x --verbose
fi
diff --git a/share/spack/qa/setup-env-test.sh b/share/spack/qa/setup-env-test.sh
index ec24166d52..734835e07a 100755
--- a/share/spack/qa/setup-env-test.sh
+++ b/share/spack/qa/setup-env-test.sh
@@ -207,3 +207,20 @@ fails spack env deactivate
echo "Correct error exit codes for unit-test when it fails"
fails spack unit-test fail
+
+title "Testing config override from command line, outside of an environment"
+contains 'True' spack -c config:ccache:true python -c "import spack.config;print(spack.config.CONFIG.get('config:ccache'))"
+contains 'True' spack -C "$SHARE_DIR/qa/configuration" python -c "import spack.config;print(spack.config.CONFIG.get('config:ccache'))"
+succeeds spack -c config:ccache:true python "$SHARE_DIR/qa/config_state.py"
+succeeds spack -C "$SHARE_DIR/qa/configuration" python "$SHARE_DIR/qa/config_state.py"
+
+title "Testing config override from command line, inside an environment"
+spack env activate --temp
+spack config add "config:ccache:false"
+
+contains 'True' spack -c config:ccache:true python -c "import spack.config;print(spack.config.CONFIG.get('config:ccache'))"
+contains 'True' spack -C "$SHARE_DIR/qa/configuration" python -c "import spack.config;print(spack.config.CONFIG.get('config:ccache'))"
+succeeds spack -c config:ccache:true python "$SHARE_DIR/qa/config_state.py"
+succeeds spack -C "$SHARE_DIR/qa/configuration" python "$SHARE_DIR/qa/config_state.py"
+
+spack env deactivate
diff --git a/share/spack/qa/validate_last_exit.ps1 b/share/spack/qa/validate_last_exit.ps1
index c8a9f7f5be..565968b2b1 100644
--- a/share/spack/qa/validate_last_exit.ps1
+++ b/share/spack/qa/validate_last_exit.ps1
@@ -1,3 +1,3 @@
if ($LASTEXITCODE -ne 0){
- throw "Unit Tests have failed"
+ throw "Tests have failed"
} \ No newline at end of file
diff --git a/share/spack/setup-env.bat b/share/spack/setup-env.bat
new file mode 100644
index 0000000000..c3b91ece1f
--- /dev/null
+++ b/share/spack/setup-env.bat
@@ -0,0 +1,77 @@
+@ECHO OFF
+setlocal EnableDelayedExpansion
+:: (c) 2021 Lawrence Livermore National Laboratory
+:: To use this file independently of Spack's installer, execute this script in its directory, or add the
+:: associated bin directory to your PATH. Invoke to launch Spack Shell.
+::
+:: source_dir/spack/bin/spack_cmd.bat
+::
+pushd %~dp0..\..
+set SPACK_ROOT=%CD%
+pushd %CD%\..
+set spackinstdir=%CD%
+popd
+
+
+:: Check if Python is on the PATH
+if not defined python_pf_ver (
+(for /f "delims=" %%F in ('where python.exe') do (
+ set "python_pf_ver=%%F"
+ goto :found_python
+ ) ) 2> NUL
+)
+:found_python
+if not defined python_pf_ver (
+ :: If not, look for Python from the Spack installer
+ :get_builtin
+ (for /f "tokens=*" %%g in ('dir /b /a:d "!spackinstdir!\Python*"') do (
+ set "python_ver=%%g")) 2> NUL
+
+ if not defined python_ver (
+ echo Python was not found on your system.
+ echo Please install Python or add Python to your PATH.
+ ) else (
+ set "py_path=!spackinstdir!\!python_ver!"
+ set "py_exe=!py_path!\python.exe"
+ )
+ goto :exitpoint
+) else (
+ :: Python is already on the path
+ set "py_exe=!python_pf_ver!"
+ (for /F "tokens=* USEBACKQ" %%F in (
+ `"!py_exe!" --version`) do (set "output=%%F")) 2>NUL
+ if not "!output:Microsoft Store=!"=="!output!" goto :get_builtin
+ goto :exitpoint
+)
+:exitpoint
+endlocal & (
+ set "SPACK_ROOT=%SPACK_ROOT%"
+ set "spackinstdir=%spackinstdir%"
+ set "py_path=%py_path%"
+ set "py_exe=%py_exe%"
+)
+
+set "PATH=%SPACK_ROOT%\bin\;%PATH%"
+if defined py_path (
+ set "PATH=%py_path%;%PATH%"
+)
+
+if defined py_exe (
+ "%py_exe%" "%SPACK_ROOT%\bin\haspywin.py"
+)
+
+if not defined EDITOR (
+ set EDITOR=notepad
+)
+
+@echo **********************************************************************
+@echo ** Spack Package Manager
+@echo **********************************************************************
+
+IF "%1"=="" GOTO CONTINUE
+set
+GOTO:EOF
+
+:continue
+title Spack
+set PROMPT=[spack] %PROMPT%
diff --git a/share/spack/setup-env.csh b/share/spack/setup-env.csh
index d18a4c72b7..d091caf8dd 100755..100644
--- a/share/spack/setup-env.csh
+++ b/share/spack/setup-env.csh
@@ -17,38 +17,37 @@ if ($?_sp_initializing) then
endif
setenv _sp_initializing true
-# If SPACK_ROOT is not set, we'll try to find it ourselves.
+# find SPACK_ROOT.
# csh/tcsh don't have a built-in way to do this, but both keep files
# they are sourcing open. We use /proc on linux and lsof on macs to
# find this script's full path in the current process's open files.
-if (! $?SPACK_ROOT) then
- # figure out a command to list open files
- if (-d /proc/$$/fd) then
- set _sp_lsof = "ls -l /proc/$$/fd"
- else
- which lsof > /dev/null
- if ($? == 0) then
- set _sp_lsof = "lsof -p $$"
- endif
- endif
- # filter this script out of list of open files
- if ( $?_sp_lsof ) then
- set _sp_source_file = `$_sp_lsof | sed -e 's/^[^/]*//' | grep "/setup-env.csh"`
+# figure out a command to list open files
+if (-d /proc/$$/fd) then
+ set _sp_lsof = "ls -l /proc/$$/fd"
+else
+ which lsof > /dev/null
+ if ($? == 0) then
+ set _sp_lsof = "lsof -p $$"
endif
+endif
- # This script is in $SPACK_ROOT/share/spack; get the root with dirname
- if ($?_sp_source_file) then
- set _sp_share_spack = `dirname "$_sp_source_file"`
- set _sp_share = `dirname "$_sp_share_spack"`
- setenv SPACK_ROOT `dirname "$_sp_share"`
- endif
+# filter this script out of list of open files
+if ( $?_sp_lsof ) then
+ set _sp_source_file = `$_sp_lsof | sed -e 's/^[^/]*//' | grep "/setup-env.csh"`
+endif
- if (! $?SPACK_ROOT) then
- echo "==> Error: setup-env.csh couldn't figure out where spack lives."
- echo " Set SPACK_ROOT to the root of your spack installation and try again."
- exit 1
- endif
+# This script is in $SPACK_ROOT/share/spack; get the root with dirname
+if ($?_sp_source_file) then
+ set _sp_share_spack = `dirname "$_sp_source_file"`
+ set _sp_share = `dirname "$_sp_share_spack"`
+ setenv SPACK_ROOT `dirname "$_sp_share"`
+endif
+
+if (! $?SPACK_ROOT) then
+ echo "==> Error: setup-env.csh couldn't figure out where spack lives."
+ echo " Set SPACK_ROOT to the root of your spack installation and try again."
+ exit 1
endif
# Command aliases point at separate source files
@@ -63,9 +62,9 @@ if (! $?SPACK_PYTHON) then
setenv SPACK_PYTHON ""
endif
foreach cmd ("$SPACK_PYTHON" python3 python python2)
- command -v "$cmd" >& /dev/null
+ set status=`which "$cmd" >& /dev/null; echo $?`
if ($status == 0) then
- setenv SPACK_PYTHON `command -v "$cmd"`
+ setenv SPACK_PYTHON `which "$cmd"`
break
endif
end
diff --git a/share/spack/setup-env.fish b/share/spack/setup-env.fish
index 7239e4cbee..a7aac67430 100755..100644
--- a/share/spack/setup-env.fish
+++ b/share/spack/setup-env.fish
@@ -648,10 +648,10 @@ function spack_pathadd -d "Add path to specified variable (defaults to PATH)"
# passed to regular expression matching (`string match -r`)
set -l _a "$pa_oldvalue"
- # skip path if it is already contained in the variable
+ # skip path if it is already the first in the variable
# note spaces in regular expression: we're matching to a space delimited
# list of paths
- if not echo $_a | string match -q -r " *$pa_new_path *"
+ if not echo $_a | string match -q -r "^$pa_new_path *"
if test -n "$pa_oldvalue"
set $pa_varname $pa_new_path $pa_oldvalue
else
diff --git a/share/spack/setup-env.ps1 b/share/spack/setup-env.ps1
index d67e39f85b..88f91f261d 100644
--- a/share/spack/setup-env.ps1
+++ b/share/spack/setup-env.ps1
@@ -60,5 +60,6 @@ function global:prompt
$pth = $(Convert-Path $(Get-Location)) | Split-Path -leaf
"[spack] PS $pth>"
}
+[system.console]::title = "Spack"
Pop-Location
diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index d7317818c9..f3e87fe514 100755..100644
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -214,9 +214,9 @@ _spack_pathadd() {
# Do the actual prepending here.
eval "_pa_oldvalue=\${${_pa_varname}:-}"
- _pa_canonical=":$_pa_oldvalue:"
+ _pa_canonical="$_pa_oldvalue:"
if [ -d "$_pa_new_path" ] && \
- [ "${_pa_canonical#*:${_pa_new_path}:}" = "${_pa_canonical}" ];
+ [ "${_pa_canonical#$_pa_new_path:}" = "$_pa_canonical" ];
then
if [ -n "$_pa_oldvalue" ]; then
eval "export $_pa_varname=\"$_pa_new_path:$_pa_oldvalue\""
diff --git a/share/spack/setup-tutorial-env.sh b/share/spack/setup-tutorial-env.sh
index 6979da5329..6979da5329 100755..100644
--- a/share/spack/setup-tutorial-env.sh
+++ b/share/spack/setup-tutorial-env.sh
diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash
index 6193982774..b9b4fd2d7a 100755..100644
--- a/share/spack/spack-completion.bash
+++ b/share/spack/spack-completion.bash
@@ -399,9 +399,9 @@ SPACK_ALIASES="concretise:concretize;containerise:containerize;rm:remove"
_spack() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -H --all-help --color -c --config -C --config-scope -d --debug --timestamp --pdb -e --env -D --env-dir -E --no-env --use-env-repo -k --insecure -l --enable-locks -L --disable-locks -m --mock -b --bootstrap -p --profile --sorted-profile --lines -v --verbose --stacktrace --backtrace -V --version --print-shell-vars"
+ SPACK_COMPREPLY="-h --help -H --all-help --color -c --config -C --config-scope -d --debug --timestamp --pdb -e --env -D --env-dir -E --no-env --use-env-repo -k --insecure -l --enable-locks -L --disable-locks -m --mock -b --bootstrap -p --profile --sorted-profile --lines -v --verbose --stacktrace -t --backtrace -V --version --print-shell-vars"
else
- SPACK_COMPREPLY="add arch audit blame bootstrap build-env buildcache cd change checksum ci clean clone commands compiler compilers concretize concretise config containerize containerise create debug deconcretize dependencies dependents deprecate dev-build develop diff docs edit env extensions external fetch find gc gpg graph help info install license list load location log-parse maintainers make-installer mark mirror module patch pkg providers pydoc python reindex remove rm repo resource restage solve spec stage style tags test test-env tutorial undevelop uninstall unit-test unload url verify versions view"
+ SPACK_COMPREPLY="add arch audit blame bootstrap build-env buildcache cd change checksum ci clean clone commands compiler compilers concretize concretise config containerize containerise create debug deconcretize dependencies dependents deprecate dev-build develop diff docs edit env extensions external fetch find gc gpg graph help info install license list load location log-parse logs maintainers make-installer mark mirror module patch pkg providers pydoc python reindex remove rm repo resource restage solve spec stage style tags test test-env tutorial undevelop uninstall unit-test unload url verify versions view"
fi
}
@@ -415,7 +415,7 @@ _spack_add() {
}
_spack_arch() {
- SPACK_COMPREPLY="-h --help -g --generic-target --known-targets -p --platform -o --operating-system -t --target -f --frontend -b --backend"
+ SPACK_COMPREPLY="-h --help -g --generic-target --known-targets --family --generic -p --platform -o --operating-system -t --target -f --frontend -b --backend"
}
_spack_audit() {
@@ -553,7 +553,7 @@ _spack_bootstrap_mirror() {
_spack_build_env() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --clean --dirty -U --fresh --reuse --reuse-deps --dump --pickle"
+ SPACK_COMPREPLY="-h --help --clean --dirty -U --fresh --reuse --fresh-roots --reuse-deps --deprecated --dump --pickle"
else
_all_packages
fi
@@ -564,14 +564,14 @@ _spack_buildcache() {
then
SPACK_COMPREPLY="-h --help"
else
- SPACK_COMPREPLY="push create install list keys preview check download get-buildcache-name save-specfile sync update-index rebuild-index"
+ SPACK_COMPREPLY="push create install list keys check download get-buildcache-name save-specfile sync update-index rebuild-index"
fi
}
_spack_buildcache_push() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -f --force --allow-root -a --unsigned -u --signed --key -k --update-index --rebuild-index --spec-file --only --fail-fast --base-image --tag -t -j --jobs"
+ SPACK_COMPREPLY="-h --help -f --force --unsigned -u --signed --key -k --update-index --rebuild-index --spec-file --only --with-build-dependencies --without-build-dependencies --fail-fast --base-image --tag -t --private -j --jobs"
else
_mirrors
fi
@@ -580,7 +580,7 @@ _spack_buildcache_push() {
_spack_buildcache_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -f --force --allow-root -a --unsigned -u --signed --key -k --update-index --rebuild-index --spec-file --only --fail-fast --base-image --tag -t -j --jobs"
+ SPACK_COMPREPLY="-h --help -f --force --unsigned -u --signed --key -k --update-index --rebuild-index --spec-file --only --with-build-dependencies --without-build-dependencies --fail-fast --base-image --tag -t --private -j --jobs"
else
_mirrors
fi
@@ -608,15 +608,6 @@ _spack_buildcache_keys() {
SPACK_COMPREPLY="-h --help -i --install -t --trust -f --force"
}
-_spack_buildcache_preview() {
- if $list_options
- then
- SPACK_COMPREPLY="-h --help"
- else
- _installed_packages
- fi
-}
-
_spack_buildcache_check() {
if $list_options
then
@@ -668,7 +659,7 @@ _spack_buildcache_rebuild_index() {
_spack_cd() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -m --module-dir -r --spack-root -i --install-dir -p --package-dir -P --packages -s --stage-dir -S --stages --source-dir -b --build-dir -e --env --first"
+ SPACK_COMPREPLY="-h --help -m --module-dir -r --spack-root -i --install-dir -p --package-dir -P --packages -s --stage-dir -S --stages -c --source-dir -b --build-dir -e --env --first"
else
_all_packages
fi
@@ -702,7 +693,7 @@ _spack_ci() {
}
_spack_ci_generate() {
- SPACK_COMPREPLY="-h --help --output-file --copy-to --optimize --dependencies --buildcache-destination --prune-dag --no-prune-dag --check-index-only --artifacts-root"
+ SPACK_COMPREPLY="-h --help --output-file --optimize --dependencies --prune-dag --no-prune-dag --check-index-only --artifacts-root"
}
_spack_ci_rebuild_index() {
@@ -761,7 +752,7 @@ _spack_compiler() {
_spack_compiler_find() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --mixed-toolchain --no-mixed-toolchain --scope"
+ SPACK_COMPREPLY="-h --help --mixed-toolchain --no-mixed-toolchain --scope -j --jobs"
else
SPACK_COMPREPLY=""
fi
@@ -770,7 +761,7 @@ _spack_compiler_find() {
_spack_compiler_add() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --mixed-toolchain --no-mixed-toolchain --scope"
+ SPACK_COMPREPLY="-h --help --mixed-toolchain --no-mixed-toolchain --scope -j --jobs"
else
SPACK_COMPREPLY=""
fi
@@ -812,11 +803,11 @@ _spack_compilers() {
}
_spack_concretize() {
- SPACK_COMPREPLY="-h --help -f --force --test -q --quiet -U --fresh --reuse --reuse-deps -j --jobs"
+ SPACK_COMPREPLY="-h --help -f --force --test -q --quiet -U --fresh --reuse --fresh-roots --reuse-deps --deprecated -j --jobs"
}
_spack_concretise() {
- SPACK_COMPREPLY="-h --help -f --force --test -q --quiet -U --fresh --reuse --reuse-deps -j --jobs"
+ SPACK_COMPREPLY="-h --help -f --force --test -q --quiet -U --fresh --reuse --fresh-roots --reuse-deps --deprecated -j --jobs"
}
_spack_config() {
@@ -824,7 +815,7 @@ _spack_config() {
then
SPACK_COMPREPLY="-h --help --scope"
else
- SPACK_COMPREPLY="get blame edit list add prefer-upstream remove rm update revert"
+ SPACK_COMPREPLY="get blame edit list add change prefer-upstream remove rm update revert"
fi
}
@@ -868,6 +859,15 @@ _spack_config_add() {
fi
}
+_spack_config_change() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --match-spec"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
_spack_config_prefer_upstream() {
SPACK_COMPREPLY="-h --help --local"
}
@@ -981,7 +981,7 @@ _spack_deprecate() {
_spack_dev_build() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -j --jobs -d --source-path -i --ignore-dependencies -n --no-checksum --deprecated --keep-prefix --skip-patch -q --quiet --drop-in --test -b --before -u --until --clean --dirty -U --fresh --reuse --reuse-deps"
+ SPACK_COMPREPLY="-h --help -j --jobs -n --no-checksum -d --source-path -i --ignore-dependencies --keep-prefix --skip-patch -q --quiet --drop-in --test -b --before -u --until --clean --dirty -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -990,7 +990,7 @@ _spack_dev_build() {
_spack_develop() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -p --path --no-clone --clone -f --force"
+ SPACK_COMPREPLY="-h --help -p --path -b --build-directory --no-clone --clone -f --force"
else
_all_packages
fi
@@ -1023,14 +1023,14 @@ _spack_env() {
then
SPACK_COMPREPLY="-h --help"
else
- SPACK_COMPREPLY="activate deactivate create remove rm list ls status st loads view update revert depfile"
+ SPACK_COMPREPLY="activate deactivate create remove rm rename mv list ls status st loads view update revert depfile track untrack"
fi
}
_spack_env_activate() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --sh --csh --fish --bat --pwsh --with-view -v --without-view -V -p --prompt --temp -d --dir"
+ SPACK_COMPREPLY="-h --help --sh --csh --fish --bat --pwsh -v --with-view -V --without-view -p --prompt --temp --create --envfile --keep-relative -d --dir"
else
_environments
fi
@@ -1043,7 +1043,7 @@ _spack_env_deactivate() {
_spack_env_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --dir --keep-relative --without-view --with-view"
+ SPACK_COMPREPLY="-h --help -d --dir --keep-relative --without-view --with-view --include-concrete"
else
_environments
fi
@@ -1052,7 +1052,7 @@ _spack_env_create() {
_spack_env_remove() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -y --yes-to-all"
+ SPACK_COMPREPLY="-h --help -y --yes-to-all -f --force"
else
_environments
fi
@@ -1061,12 +1061,30 @@ _spack_env_remove() {
_spack_env_rm() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -y --yes-to-all"
+ SPACK_COMPREPLY="-h --help -y --yes-to-all -f --force"
else
_environments
fi
}
+_spack_env_rename() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -d --dir -f --force"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
+_spack_env_mv() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -d --dir -f --force"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
_spack_env_list() {
SPACK_COMPREPLY="-h --help"
}
@@ -1123,6 +1141,24 @@ _spack_env_depfile() {
fi
}
+_spack_env_track() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -n --name -y --yes-to-all"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
+_spack_env_untrack() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -f --force -y --yes-to-all"
+ else
+ _environments
+ fi
+}
+
_spack_extensions() {
if $list_options
then
@@ -1161,7 +1197,7 @@ _spack_external_read_cray_manifest() {
_spack_fetch() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated -m --missing -D --dependencies"
+ SPACK_COMPREPLY="-h --help -n --no-checksum -m --missing -D --dependencies -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1170,14 +1206,19 @@ _spack_fetch() {
_spack_find() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --format -H --hashes --json -d --deps -p --paths --groups --no-groups -l --long -L --very-long -t --tag -N --namespaces -c --show-concretized -f --show-flags --show-full-compiler -x --explicit -X --implicit -u --unknown -m --missing -v --variants --loaded -M --only-missing --deprecated --only-deprecated --start-date --end-date"
+ SPACK_COMPREPLY="-h --help --format -H --hashes --json -I --install-status -d --deps -p --paths --groups --no-groups -l --long -L --very-long -t --tag -N --namespaces -r --only-roots -c --show-concretized -f --show-flags --show-full-compiler -x --explicit -X --implicit -u --unknown -m --missing -v --variants --loaded -M --only-missing --only-deprecated --deprecated --install-tree --start-date --end-date"
else
_installed_packages
fi
}
_spack_gc() {
- SPACK_COMPREPLY="-h --help -E --except-any-environment -e --except-environment -b --keep-build-dependencies -y --yes-to-all"
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -E --except-any-environment -e --except-environment -b --keep-build-dependencies -y --yes-to-all"
+ else
+ _installed_packages
+ fi
}
_spack_gpg() {
@@ -1254,7 +1295,7 @@ _spack_gpg_export() {
_spack_gpg_publish() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --directory -m --mirror-name --mirror-url --rebuild-index"
+ SPACK_COMPREPLY="-h --help -d --directory -m --mirror-name --mirror-url --update-index --rebuild-index"
else
_keys
fi
@@ -1281,7 +1322,7 @@ _spack_help() {
_spack_info() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -a --all --detectable --maintainers --no-dependencies --no-variants --no-versions --phases --tags --tests --virtuals --variants-by-name"
+ SPACK_COMPREPLY="-h --help -a --all --detectable --maintainers --namespace --no-dependencies --no-variants --no-versions --phases --tags --tests --virtuals --variants-by-name"
else
_all_packages
fi
@@ -1290,7 +1331,7 @@ _spack_info() {
_spack_install() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --fail-fast --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --use-buildcache --include-build-deps --no-check-signature --show-log-on-error --source -n --no-checksum --deprecated -v --verbose --fake --only-concrete --add --no-add -f --file --clean --dirty --test --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all -U --fresh --reuse --reuse-deps"
+ SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --fail-fast --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --use-buildcache --include-build-deps --no-check-signature --show-log-on-error --source -n --no-checksum -v --verbose --fake --only-concrete --add --no-add -f --file --clean --dirty --test --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1320,7 +1361,7 @@ _spack_license_update_copyright_year() {
_spack_list() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --search-description --format -v --virtuals -t --tag --count --update"
+ SPACK_COMPREPLY="-h --help -r --repo -N --namespace -d --search-description --format -v --virtuals -t --tag --count --update"
else
_all_packages
fi
@@ -1329,7 +1370,7 @@ _spack_list() {
_spack_load() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --sh --csh --fish --bat --pwsh --first --only --list"
+ SPACK_COMPREPLY="-h --help --sh --csh --fish --bat --pwsh --first --list"
else
_installed_packages
fi
@@ -1338,7 +1379,7 @@ _spack_load() {
_spack_location() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -m --module-dir -r --spack-root -i --install-dir -p --package-dir -P --packages -s --stage-dir -S --stages --source-dir -b --build-dir -e --env --first"
+ SPACK_COMPREPLY="-h --help -m --module-dir -r --spack-root -i --install-dir -p --package-dir -P --packages -s --stage-dir -S --stages -c --source-dir -b --build-dir -e --env --first"
else
_all_packages
fi
@@ -1353,6 +1394,15 @@ _spack_log_parse() {
fi
}
+_spack_logs() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help"
+ else
+ _all_packages
+ fi
+}
+
_spack_maintainers() {
if $list_options
then
@@ -1383,7 +1433,7 @@ _spack_mark() {
_spack_mirror() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated"
+ SPACK_COMPREPLY="-h --help -n --no-checksum"
else
SPACK_COMPREPLY="create destroy add remove rm set-url set list"
fi
@@ -1392,7 +1442,7 @@ _spack_mirror() {
_spack_mirror_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --directory -a --all -f --file --exclude-file --exclude-specs --skip-unstable-versions -D --dependencies -n --versions-per-spec"
+ SPACK_COMPREPLY="-h --help -d --directory -a --all -f --file --exclude-file --exclude-specs --skip-unstable-versions -D --dependencies -n --versions-per-spec --private -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1405,7 +1455,7 @@ _spack_mirror_destroy() {
_spack_mirror_add() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --scope --type --unsigned --signed --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
+ SPACK_COMPREPLY="-h --help --scope --type --autopush --unsigned --signed --s3-access-key-id --s3-access-key-id-variable --s3-access-key-secret --s3-access-key-secret-variable --s3-access-token --s3-access-token-variable --s3-profile --s3-endpoint-url --oci-username --oci-username-variable --oci-password --oci-password-variable"
else
_mirrors
fi
@@ -1432,7 +1482,7 @@ _spack_mirror_rm() {
_spack_mirror_set_url() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --push --fetch --scope --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
+ SPACK_COMPREPLY="-h --help --push --fetch --scope --s3-access-key-id --s3-access-key-id-variable --s3-access-key-secret --s3-access-key-secret-variable --s3-access-token --s3-access-token-variable --s3-profile --s3-endpoint-url --oci-username --oci-username-variable --oci-password --oci-password-variable"
else
_mirrors
fi
@@ -1441,7 +1491,7 @@ _spack_mirror_set_url() {
_spack_mirror_set() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --push --fetch --type --url --unsigned --signed --scope --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
+ SPACK_COMPREPLY="-h --help --push --fetch --type --url --autopush --no-autopush --unsigned --signed --scope --s3-access-key-id --s3-access-key-id-variable --s3-access-key-secret --s3-access-key-secret-variable --s3-access-token --s3-access-token-variable --s3-profile --s3-endpoint-url --oci-username --oci-username-variable --oci-password --oci-password-variable"
else
_mirrors
fi
@@ -1571,7 +1621,7 @@ _spack_module_tcl_setdefault() {
_spack_patch() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated -U --fresh --reuse --reuse-deps"
+ SPACK_COMPREPLY="-h --help -n --no-checksum -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1799,7 +1849,7 @@ _spack_restage() {
_spack_solve() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --show -l --long -L --very-long -N --namespaces -I --install-status --no-install-status -y --yaml -j --json -c --cover -t --types --timers --stats -U --fresh --reuse --reuse-deps"
+ SPACK_COMPREPLY="-h --help --show --timers --stats -l --long -L --very-long -N --namespaces -I --install-status --no-install-status -y --yaml -j --json --format -c --cover -t --types -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1808,7 +1858,7 @@ _spack_solve() {
_spack_spec() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -l --long -L --very-long -N --namespaces -I --install-status --no-install-status -y --yaml -j --json --format -c --cover -t --types -U --fresh --reuse --reuse-deps"
+ SPACK_COMPREPLY="-h --help -l --long -L --very-long -N --namespaces -I --install-status --no-install-status -y --yaml -j --json --format -c --cover -t --types -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1817,7 +1867,7 @@ _spack_spec() {
_spack_stage() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated -p --path -U --fresh --reuse --reuse-deps"
+ SPACK_COMPREPLY="-h --help -n --no-checksum -p --path -U --fresh --reuse --fresh-roots --reuse-deps --deprecated"
else
_all_packages
fi
@@ -1907,7 +1957,7 @@ _spack_test_remove() {
_spack_test_env() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --clean --dirty -U --fresh --reuse --reuse-deps --dump --pickle"
+ SPACK_COMPREPLY="-h --help --clean --dirty -U --fresh --reuse --fresh-roots --reuse-deps --deprecated --dump --pickle"
else
_all_packages
fi
@@ -1938,7 +1988,7 @@ _spack_uninstall() {
_spack_unit_test() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -H --pytest-help -l --list -L --list-long -N --list-names --extension -s -k --showlocals"
+ SPACK_COMPREPLY="-h --help -H --pytest-help -n --numprocesses -l --list -L --list-long -N --list-names --extension -s -k --showlocals"
else
_unit_tests
fi
@@ -1995,7 +2045,7 @@ _spack_verify() {
_spack_versions() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -s --safe --safe-only -r --remote -n --new -j --jobs"
+ SPACK_COMPREPLY="-h --help -s --safe -r --remote -n --new -j --jobs"
else
_all_packages
fi
diff --git a/share/spack/spack-completion.fish b/share/spack/spack-completion.fish
index 31aba0aa7d..7d1e996c3f 100755..100644
--- a/share/spack/spack-completion.fish
+++ b/share/spack/spack-completion.fish
@@ -347,13 +347,13 @@ complete -c spack --erase
# Everything below here is auto-generated.
# spack
-set -g __fish_spack_optspecs_spack h/help H/all-help color= c/config= C/config-scope= d/debug timestamp pdb e/env= D/env-dir= E/no-env use-env-repo k/insecure l/enable-locks L/disable-locks m/mock b/bootstrap p/profile sorted-profile= lines= v/verbose stacktrace backtrace V/version print-shell-vars=
+set -g __fish_spack_optspecs_spack h/help H/all-help color= c/config= C/config-scope= d/debug timestamp pdb e/env= D/env-dir= E/no-env use-env-repo k/insecure l/enable-locks L/disable-locks m/mock b/bootstrap p/profile sorted-profile= lines= v/verbose stacktrace t/backtrace V/version print-shell-vars=
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a add -d 'add a spec to an environment'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a arch -d 'print architecture information about this machine'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a audit -d 'audit configuration files, packages, etc.'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a blame -d 'show contributors to packages'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a bootstrap -d 'manage bootstrap configuration'
-complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a build-env -d 'run a command in a spec\'s install environment, or dump its environment to screen or file'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a build-env -d 'run a command in a spec'"'"'s install environment, or dump its environment to screen or file'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a buildcache -d 'create, download and install binary packages'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a cd -d 'cd to spack directories in the shell'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a change -d 'change an existing spec in an environment'
@@ -376,7 +376,7 @@ complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a dependencies -d '
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a dependents -d 'show packages that depend on another'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a deprecate -d 'replace one package with another via symlinks'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a dev-build -d 'developer build: build from code in current working directory'
-complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a develop -d 'add a spec to an environment\'s dev-build information'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a develop -d 'add a spec to an environment'"'"'s dev-build information'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a diff -d 'compare two specs'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a docs -d 'open spack documentation in a web browser'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a edit -d 'open package files in $EDITOR'
@@ -396,6 +396,7 @@ complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a list -d 'list and
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a load -d 'add package to the user environment'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a location -d 'print out locations of packages and spack directories'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a log-parse -d 'filter errors and warnings from build logs'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a logs -d 'print out logs for packages'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a maintainers -d 'get information about package maintainers'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a make-installer -d 'generate Windows installer'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a mark -d 'mark packages as explicitly or implicitly installed'
@@ -406,7 +407,7 @@ complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a pkg -d 'query pac
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a providers -d 'list packages that provide a particular virtual package'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a pydoc -d 'run pydoc from within spack'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a python -d 'launch an interpreter as spack would launch a command'
-complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a reindex -d 'rebuild Spack\'s package database'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a reindex -d 'rebuild Spack'"'"'s package database'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a remove -d 'remove specs from an environment'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a rm -d 'remove specs from an environment'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a repo -d 'manage package source repositories'
@@ -417,12 +418,12 @@ complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a spec -d 'show wha
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a stage -d 'expand downloaded archive in preparation for install'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a style -d 'runs source code style checks on spack'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a tags -d 'show package tags and associated packages'
-complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a test -d 'run spack\'s tests for an install'
-complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a test-env -d 'run a command in a spec\'s test environment, or dump its environment to screen or file'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a test -d 'run spack'"'"'s tests for an install'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a test-env -d 'run a command in a spec'"'"'s test environment, or dump its environment to screen or file'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a tutorial -d 'set up spack for our tutorial (WARNING: modifies config!)'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a undevelop -d 'remove specs from an environment'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a uninstall -d 'remove installed packages'
-complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a unit-test -d 'run spack\'s unit tests (wrapper around pytest)'
+complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a unit-test -d 'run spack'"'"'s unit tests (wrapper around pytest)'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a unload -d 'remove package from the user environment'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a url -d 'debugging tool for url parsing'
complete -c spack -n '__fish_spack_using_command_pos 0 ' -f -a verify -d 'check that all spack packages are on disk as installed'
@@ -437,7 +438,7 @@ complete -c spack -n '__fish_spack_using_command ' -l color -r -d 'when to color
complete -c spack -n '__fish_spack_using_command ' -s c -l config -r -f -a config_vars
complete -c spack -n '__fish_spack_using_command ' -s c -l config -r -d 'add one or more custom, one off config settings'
complete -c spack -n '__fish_spack_using_command ' -s C -l config-scope -r -f -a config_scopes
-complete -c spack -n '__fish_spack_using_command ' -s C -l config-scope -r -d 'add a custom configuration scope'
+complete -c spack -n '__fish_spack_using_command ' -s C -l config-scope -r -d 'add directory or environment as read-only configuration scope, without activating the environment.'
complete -c spack -n '__fish_spack_using_command ' -s d -l debug -f -a debug
complete -c spack -n '__fish_spack_using_command ' -s d -l debug -d 'write out debug messages'
complete -c spack -n '__fish_spack_using_command ' -l timestamp -f -a timestamp
@@ -467,13 +468,13 @@ complete -c spack -n '__fish_spack_using_command ' -s p -l profile -d 'profile e
complete -c spack -n '__fish_spack_using_command ' -l sorted-profile -r -f -a sorted_profile
complete -c spack -n '__fish_spack_using_command ' -l sorted-profile -r -d 'profile and sort'
complete -c spack -n '__fish_spack_using_command ' -l lines -r -f -a lines
-complete -c spack -n '__fish_spack_using_command ' -l lines -r -d 'lines of profile output or \'all\' (default: 20)'
+complete -c spack -n '__fish_spack_using_command ' -l lines -r -d 'lines of profile output or '"'"'all'"'"' (default: 20)'
complete -c spack -n '__fish_spack_using_command ' -s v -l verbose -f -a verbose
complete -c spack -n '__fish_spack_using_command ' -s v -l verbose -d 'print additional output during builds'
complete -c spack -n '__fish_spack_using_command ' -l stacktrace -f -a stacktrace
complete -c spack -n '__fish_spack_using_command ' -l stacktrace -d 'add stacktraces to all printed statements'
-complete -c spack -n '__fish_spack_using_command ' -l backtrace -f -a backtrace
-complete -c spack -n '__fish_spack_using_command ' -l backtrace -d 'always show backtraces for exceptions'
+complete -c spack -n '__fish_spack_using_command ' -s t -l backtrace -f -a backtrace
+complete -c spack -n '__fish_spack_using_command ' -s t -l backtrace -d 'always show backtraces for exceptions'
complete -c spack -n '__fish_spack_using_command ' -s V -l version -f -a version
complete -c spack -n '__fish_spack_using_command ' -s V -l version -d 'show version number and exit'
complete -c spack -n '__fish_spack_using_command ' -l print-shell-vars -r -f -a print_shell_vars
@@ -488,13 +489,17 @@ complete -c spack -n '__fish_spack_using_command add' -s l -l list-name -r -f -a
complete -c spack -n '__fish_spack_using_command add' -s l -l list-name -r -d 'name of the list to add specs to'
# spack arch
-set -g __fish_spack_optspecs_spack_arch h/help g/generic-target known-targets p/platform o/operating-system t/target f/frontend b/backend
+set -g __fish_spack_optspecs_spack_arch h/help g/generic-target known-targets family generic p/platform o/operating-system t/target f/frontend b/backend
complete -c spack -n '__fish_spack_using_command arch' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command arch' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command arch' -s g -l generic-target -f -a generic_target
-complete -c spack -n '__fish_spack_using_command arch' -s g -l generic-target -d 'show the best generic target'
+complete -c spack -n '__fish_spack_using_command arch' -s g -l generic-target -d 'show the best generic target (deprecated)'
complete -c spack -n '__fish_spack_using_command arch' -l known-targets -f -a known_targets
complete -c spack -n '__fish_spack_using_command arch' -l known-targets -d 'show a list of all known targets and exit'
+complete -c spack -n '__fish_spack_using_command arch' -l family -f -a family
+complete -c spack -n '__fish_spack_using_command arch' -l family -d 'print generic ISA (x86_64, aarch64, ppc64le, ...)'
+complete -c spack -n '__fish_spack_using_command arch' -l generic -f -a generic
+complete -c spack -n '__fish_spack_using_command arch' -l generic -d 'print feature level (x86_64_v3, armv8.4a, ...)'
complete -c spack -n '__fish_spack_using_command arch' -s p -l platform -f -a platform
complete -c spack -n '__fish_spack_using_command arch' -s p -l platform -d 'print only the platform'
complete -c spack -n '__fish_spack_using_command arch' -s o -l operating-system -f -a operating_system
@@ -659,20 +664,22 @@ complete -c spack -n '__fish_spack_using_command bootstrap mirror' -l dev -f -a
complete -c spack -n '__fish_spack_using_command bootstrap mirror' -l dev -d 'download dev dependencies too'
# spack build-env
-set -g __fish_spack_optspecs_spack_build_env h/help clean dirty U/fresh reuse reuse-deps dump= pickle=
+set -g __fish_spack_optspecs_spack_build_env h/help clean dirty U/fresh reuse fresh-roots deprecated dump= pickle=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 build-env' -f -a '(__fish_spack_build_env_spec)'
complete -c spack -n '__fish_spack_using_command build-env' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command build-env' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command build-env' -l clean -f -a dirty
complete -c spack -n '__fish_spack_using_command build-env' -l clean -d 'unset harmful variables in the build environment (default)'
complete -c spack -n '__fish_spack_using_command build-env' -l dirty -f -a dirty
-complete -c spack -n '__fish_spack_using_command build-env' -l dirty -d 'preserve user environment in spack\'s build environment (danger!)'
+complete -c spack -n '__fish_spack_using_command build-env' -l dirty -d 'preserve user environment in spack'"'"'s build environment (danger!)'
complete -c spack -n '__fish_spack_using_command build-env' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command build-env' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command build-env' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command build-env' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command build-env' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command build-env' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command build-env' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command build-env' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command build-env' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command build-env' -l deprecated -d 'allow concretizer to select deprecated versions'
complete -c spack -n '__fish_spack_using_command build-env' -l dump -r -f -a dump
complete -c spack -n '__fish_spack_using_command build-env' -l dump -r -d 'dump a source-able environment to FILE'
complete -c spack -n '__fish_spack_using_command build-env' -l pickle -r -f -a pickle
@@ -685,7 +692,6 @@ complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a create
complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a install -d 'install from a binary package'
complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a list -d 'list binary packages available from mirrors'
complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a keys -d 'get public keys available on mirrors'
-complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a preview -d 'analyze an installed spec and reports whether executables and libraries are relocatable'
complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a check -d 'check specs against remote binary mirror(s) to see if any need to be rebuilt'
complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a download -d 'download buildcache entry from a remote mirror to local folder'
complete -c spack -n '__fish_spack_using_command_pos 0 buildcache' -f -a get-buildcache-name -d 'get name (prefix) of buildcache entries for this spec'
@@ -697,14 +703,12 @@ complete -c spack -n '__fish_spack_using_command buildcache' -s h -l help -f -a
complete -c spack -n '__fish_spack_using_command buildcache' -s h -l help -d 'show this help message and exit'
# spack buildcache push
-set -g __fish_spack_optspecs_spack_buildcache_push h/help f/force a/allow-root u/unsigned signed k/key= update-index spec-file= only= fail-fast base-image= t/tag= j/jobs=
+set -g __fish_spack_optspecs_spack_buildcache_push h/help f/force u/unsigned signed k/key= update-index spec-file= only= with-build-dependencies without-build-dependencies fail-fast base-image= t/tag= private j/jobs=
complete -c spack -n '__fish_spack_using_command_pos_remainder 1 buildcache push' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command buildcache push' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command buildcache push' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command buildcache push' -s f -l force -f -a force
complete -c spack -n '__fish_spack_using_command buildcache push' -s f -l force -d 'overwrite tarball if it exists'
-complete -c spack -n '__fish_spack_using_command buildcache push' -l allow-root -s a -f -a allow_root
-complete -c spack -n '__fish_spack_using_command buildcache push' -l allow-root -s a -d 'allow install root string in binary files after RPATH substitution'
complete -c spack -n '__fish_spack_using_command buildcache push' -l unsigned -s u -f -a signed
complete -c spack -n '__fish_spack_using_command buildcache push' -l unsigned -s u -d 'push unsigned buildcache tarballs'
complete -c spack -n '__fish_spack_using_command buildcache push' -l signed -f -a signed
@@ -717,24 +721,28 @@ complete -c spack -n '__fish_spack_using_command buildcache push' -l spec-file -
complete -c spack -n '__fish_spack_using_command buildcache push' -l spec-file -r -d 'create buildcache entry for spec from json or yaml file'
complete -c spack -n '__fish_spack_using_command buildcache push' -l only -r -f -a 'package dependencies'
complete -c spack -n '__fish_spack_using_command buildcache push' -l only -r -d 'select the buildcache mode. The default is to build a cache for the package along with all its dependencies. Alternatively, one can decide to build a cache for only the package or only the dependencies'
+complete -c spack -n '__fish_spack_using_command buildcache push' -l with-build-dependencies -f -a with_build_dependencies
+complete -c spack -n '__fish_spack_using_command buildcache push' -l with-build-dependencies -d 'include build dependencies in the buildcache'
+complete -c spack -n '__fish_spack_using_command buildcache push' -l without-build-dependencies -f -a without_build_dependencies
+complete -c spack -n '__fish_spack_using_command buildcache push' -l without-build-dependencies -d 'exclude build dependencies from the buildcache'
complete -c spack -n '__fish_spack_using_command buildcache push' -l fail-fast -f -a fail_fast
complete -c spack -n '__fish_spack_using_command buildcache push' -l fail-fast -d 'stop pushing on first failure (default is best effort)'
complete -c spack -n '__fish_spack_using_command buildcache push' -l base-image -r -f -a base_image
complete -c spack -n '__fish_spack_using_command buildcache push' -l base-image -r -d 'specify the base image for the buildcache'
complete -c spack -n '__fish_spack_using_command buildcache push' -l tag -s t -r -f -a tag
complete -c spack -n '__fish_spack_using_command buildcache push' -l tag -s t -r -d 'when pushing to an OCI registry, tag an image containing all root specs and their runtime dependencies'
+complete -c spack -n '__fish_spack_using_command buildcache push' -l private -f -a private
+complete -c spack -n '__fish_spack_using_command buildcache push' -l private -d 'for a private mirror, include non-redistributable packages'
complete -c spack -n '__fish_spack_using_command buildcache push' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command buildcache push' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
# spack buildcache create
-set -g __fish_spack_optspecs_spack_buildcache_create h/help f/force a/allow-root u/unsigned signed k/key= update-index spec-file= only= fail-fast base-image= t/tag= j/jobs=
+set -g __fish_spack_optspecs_spack_buildcache_create h/help f/force u/unsigned signed k/key= update-index spec-file= only= with-build-dependencies without-build-dependencies fail-fast base-image= t/tag= private j/jobs=
complete -c spack -n '__fish_spack_using_command_pos_remainder 1 buildcache create' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command buildcache create' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command buildcache create' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command buildcache create' -s f -l force -f -a force
complete -c spack -n '__fish_spack_using_command buildcache create' -s f -l force -d 'overwrite tarball if it exists'
-complete -c spack -n '__fish_spack_using_command buildcache create' -l allow-root -s a -f -a allow_root
-complete -c spack -n '__fish_spack_using_command buildcache create' -l allow-root -s a -d 'allow install root string in binary files after RPATH substitution'
complete -c spack -n '__fish_spack_using_command buildcache create' -l unsigned -s u -f -a signed
complete -c spack -n '__fish_spack_using_command buildcache create' -l unsigned -s u -d 'push unsigned buildcache tarballs'
complete -c spack -n '__fish_spack_using_command buildcache create' -l signed -f -a signed
@@ -747,12 +755,18 @@ complete -c spack -n '__fish_spack_using_command buildcache create' -l spec-file
complete -c spack -n '__fish_spack_using_command buildcache create' -l spec-file -r -d 'create buildcache entry for spec from json or yaml file'
complete -c spack -n '__fish_spack_using_command buildcache create' -l only -r -f -a 'package dependencies'
complete -c spack -n '__fish_spack_using_command buildcache create' -l only -r -d 'select the buildcache mode. The default is to build a cache for the package along with all its dependencies. Alternatively, one can decide to build a cache for only the package or only the dependencies'
+complete -c spack -n '__fish_spack_using_command buildcache create' -l with-build-dependencies -f -a with_build_dependencies
+complete -c spack -n '__fish_spack_using_command buildcache create' -l with-build-dependencies -d 'include build dependencies in the buildcache'
+complete -c spack -n '__fish_spack_using_command buildcache create' -l without-build-dependencies -f -a without_build_dependencies
+complete -c spack -n '__fish_spack_using_command buildcache create' -l without-build-dependencies -d 'exclude build dependencies from the buildcache'
complete -c spack -n '__fish_spack_using_command buildcache create' -l fail-fast -f -a fail_fast
complete -c spack -n '__fish_spack_using_command buildcache create' -l fail-fast -d 'stop pushing on first failure (default is best effort)'
complete -c spack -n '__fish_spack_using_command buildcache create' -l base-image -r -f -a base_image
complete -c spack -n '__fish_spack_using_command buildcache create' -l base-image -r -d 'specify the base image for the buildcache'
complete -c spack -n '__fish_spack_using_command buildcache create' -l tag -s t -r -f -a tag
complete -c spack -n '__fish_spack_using_command buildcache create' -l tag -s t -r -d 'when pushing to an OCI registry, tag an image containing all root specs and their runtime dependencies'
+complete -c spack -n '__fish_spack_using_command buildcache create' -l private -f -a private
+complete -c spack -n '__fish_spack_using_command buildcache create' -l private -d 'for a private mirror, include non-redistributable packages'
complete -c spack -n '__fish_spack_using_command buildcache create' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command buildcache create' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
@@ -797,12 +811,6 @@ complete -c spack -n '__fish_spack_using_command buildcache keys' -s t -l trust
complete -c spack -n '__fish_spack_using_command buildcache keys' -s f -l force -f -a force
complete -c spack -n '__fish_spack_using_command buildcache keys' -s f -l force -d 'force new download of keys'
-# spack buildcache preview
-set -g __fish_spack_optspecs_spack_buildcache_preview h/help
-complete -c spack -n '__fish_spack_using_command_pos_remainder 0 buildcache preview' -f -a '(__fish_spack_installed_specs)'
-complete -c spack -n '__fish_spack_using_command buildcache preview' -s h -l help -f -a help
-complete -c spack -n '__fish_spack_using_command buildcache preview' -s h -l help -d 'show this help message and exit'
-
# spack buildcache check
set -g __fish_spack_optspecs_spack_buildcache_check h/help m/mirror-url= o/output-file= scope= s/spec= spec-file=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 buildcache check' -f -k -a '(__fish_spack_specs)'
@@ -858,7 +866,7 @@ set -g __fish_spack_optspecs_spack_buildcache_sync h/help manifest-glob=
complete -c spack -n '__fish_spack_using_command buildcache sync' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command buildcache sync' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command buildcache sync' -l manifest-glob -r -f -a manifest_glob
-complete -c spack -n '__fish_spack_using_command buildcache sync' -l manifest-glob -r -d 'a quoted glob pattern identifying copy manifest files'
+complete -c spack -n '__fish_spack_using_command buildcache sync' -l manifest-glob -r -d 'a quoted glob pattern identifying CI rebuild manifest files'
# spack buildcache update-index
set -g __fish_spack_optspecs_spack_buildcache_update_index h/help k/keys
@@ -877,7 +885,7 @@ complete -c spack -n '__fish_spack_using_command buildcache rebuild-index' -s k
complete -c spack -n '__fish_spack_using_command buildcache rebuild-index' -s k -l keys -d 'if provided, key index will be updated as well as package index'
# spack cd
-set -g __fish_spack_optspecs_spack_cd h/help m/module-dir r/spack-root i/install-dir p/package-dir P/packages s/stage-dir S/stages source-dir b/build-dir e/env= first
+set -g __fish_spack_optspecs_spack_cd h/help m/module-dir r/spack-root i/install-dir p/package-dir P/packages s/stage-dir S/stages c/source-dir b/build-dir e/env= first
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 cd' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command cd' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command cd' -s h -l help -d 'show this help message and exit'
@@ -888,15 +896,15 @@ complete -c spack -n '__fish_spack_using_command cd' -s r -l spack-root -d 'spac
complete -c spack -n '__fish_spack_using_command cd' -s i -l install-dir -f -a install_dir
complete -c spack -n '__fish_spack_using_command cd' -s i -l install-dir -d 'install prefix for spec (spec need not be installed)'
complete -c spack -n '__fish_spack_using_command cd' -s p -l package-dir -f -a package_dir
-complete -c spack -n '__fish_spack_using_command cd' -s p -l package-dir -d 'directory enclosing a spec\'s package.py file'
+complete -c spack -n '__fish_spack_using_command cd' -s p -l package-dir -d 'directory enclosing a spec'"'"'s package.py file'
complete -c spack -n '__fish_spack_using_command cd' -s P -l packages -f -a packages
complete -c spack -n '__fish_spack_using_command cd' -s P -l packages -d 'top-level packages directory for Spack'
complete -c spack -n '__fish_spack_using_command cd' -s s -l stage-dir -f -a stage_dir
complete -c spack -n '__fish_spack_using_command cd' -s s -l stage-dir -d 'stage directory for a spec'
complete -c spack -n '__fish_spack_using_command cd' -s S -l stages -f -a stages
complete -c spack -n '__fish_spack_using_command cd' -s S -l stages -d 'top level stage directory'
-complete -c spack -n '__fish_spack_using_command cd' -l source-dir -f -a source_dir
-complete -c spack -n '__fish_spack_using_command cd' -l source-dir -d 'source directory for a spec (requires it to be staged first)'
+complete -c spack -n '__fish_spack_using_command cd' -s c -l source-dir -f -a source_dir
+complete -c spack -n '__fish_spack_using_command cd' -s c -l source-dir -d 'source directory for a spec (requires it to be staged first)'
complete -c spack -n '__fish_spack_using_command cd' -s b -l build-dir -f -a build_dir
complete -c spack -n '__fish_spack_using_command cd' -s b -l build-dir -d 'build directory for a spec (requires it to be staged first)'
complete -c spack -n '__fish_spack_using_command cd' -s e -l env -r -f -a location_env
@@ -923,9 +931,9 @@ complete -c spack -n '__fish_spack_using_command_pos_remainder 1 checksum' -f -a
complete -c spack -n '__fish_spack_using_command checksum' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command checksum' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command checksum' -l keep-stage -f -a keep_stage
-complete -c spack -n '__fish_spack_using_command checksum' -l keep-stage -d 'don\'t clean up staging area when command completes'
+complete -c spack -n '__fish_spack_using_command checksum' -l keep-stage -d 'don'"'"'t clean up staging area when command completes'
complete -c spack -n '__fish_spack_using_command checksum' -l batch -s b -f -a batch
-complete -c spack -n '__fish_spack_using_command checksum' -l batch -s b -d 'don\'t ask which versions to checksum'
+complete -c spack -n '__fish_spack_using_command checksum' -l batch -s b -d 'don'"'"'t ask which versions to checksum'
complete -c spack -n '__fish_spack_using_command checksum' -l latest -s l -f -a latest
complete -c spack -n '__fish_spack_using_command checksum' -l latest -s l -d 'checksum the latest available version'
complete -c spack -n '__fish_spack_using_command checksum' -l preferred -s p -f -a preferred
@@ -947,19 +955,15 @@ complete -c spack -n '__fish_spack_using_command ci' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command ci' -s h -l help -d 'show this help message and exit'
# spack ci generate
-set -g __fish_spack_optspecs_spack_ci_generate h/help output-file= copy-to= optimize dependencies buildcache-destination= prune-dag no-prune-dag check-index-only artifacts-root=
+set -g __fish_spack_optspecs_spack_ci_generate h/help output-file= optimize dependencies prune-dag no-prune-dag check-index-only artifacts-root=
complete -c spack -n '__fish_spack_using_command ci generate' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command ci generate' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command ci generate' -l output-file -r -f -a output_file
complete -c spack -n '__fish_spack_using_command ci generate' -l output-file -r -d 'pathname for the generated gitlab ci yaml file'
-complete -c spack -n '__fish_spack_using_command ci generate' -l copy-to -r -f -a copy_to
-complete -c spack -n '__fish_spack_using_command ci generate' -l copy-to -r -d 'path to additional directory for job files'
complete -c spack -n '__fish_spack_using_command ci generate' -l optimize -f -a optimize
-complete -c spack -n '__fish_spack_using_command ci generate' -l optimize -d '(experimental) optimize the gitlab yaml file for size'
+complete -c spack -n '__fish_spack_using_command ci generate' -l optimize -d '(DEPRECATED) optimize the gitlab yaml file for size'
complete -c spack -n '__fish_spack_using_command ci generate' -l dependencies -f -a dependencies
-complete -c spack -n '__fish_spack_using_command ci generate' -l dependencies -d '(experimental) disable DAG scheduling (use \'plain\' dependencies)'
-complete -c spack -n '__fish_spack_using_command ci generate' -l buildcache-destination -r -f -a buildcache_destination
-complete -c spack -n '__fish_spack_using_command ci generate' -l buildcache-destination -r -d 'override the mirror configured in the environment'
+complete -c spack -n '__fish_spack_using_command ci generate' -l dependencies -d '(DEPRECATED) disable DAG scheduling (use '"'"'plain'"'"' dependencies)'
complete -c spack -n '__fish_spack_using_command ci generate' -l prune-dag -f -a prune_dag
complete -c spack -n '__fish_spack_using_command ci generate' -l prune-dag -d 'skip up-to-date specs'
complete -c spack -n '__fish_spack_using_command ci generate' -l no-prune-dag -f -a prune_dag
@@ -1033,7 +1037,7 @@ set -g __fish_spack_optspecs_spack_commands h/help update-completion a/aliases f
complete -c spack -n '__fish_spack_using_command commands' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command commands' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command commands' -l update-completion -f -a update_completion
-complete -c spack -n '__fish_spack_using_command commands' -l update-completion -d 'regenerate spack\'s tab completion scripts'
+complete -c spack -n '__fish_spack_using_command commands' -l update-completion -d 'regenerate spack'"'"'s tab completion scripts'
complete -c spack -n '__fish_spack_using_command commands' -s a -l aliases -f -a aliases
complete -c spack -n '__fish_spack_using_command commands' -s a -l aliases -d 'include command aliases'
complete -c spack -n '__fish_spack_using_command commands' -l format -r -f -a 'subcommands rst names bash fish'
@@ -1055,7 +1059,7 @@ complete -c spack -n '__fish_spack_using_command compiler' -s h -l help -f -a he
complete -c spack -n '__fish_spack_using_command compiler' -s h -l help -d 'show this help message and exit'
# spack compiler find
-set -g __fish_spack_optspecs_spack_compiler_find h/help mixed-toolchain no-mixed-toolchain scope=
+set -g __fish_spack_optspecs_spack_compiler_find h/help mixed-toolchain no-mixed-toolchain scope= j/jobs=
complete -c spack -n '__fish_spack_using_command compiler find' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command compiler find' -s h -l help -d 'show this help message and exit'
@@ -1065,9 +1069,11 @@ complete -c spack -n '__fish_spack_using_command compiler find' -l no-mixed-tool
complete -c spack -n '__fish_spack_using_command compiler find' -l no-mixed-toolchain -d 'Do not allow mixed toolchains (for example: clang, clang++, gfortran)'
complete -c spack -n '__fish_spack_using_command compiler find' -l scope -r -f -a '_builtin defaults system site user command_line'
complete -c spack -n '__fish_spack_using_command compiler find' -l scope -r -d 'configuration scope to modify'
+complete -c spack -n '__fish_spack_using_command compiler find' -s j -l jobs -r -f -a jobs
+complete -c spack -n '__fish_spack_using_command compiler find' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
# spack compiler add
-set -g __fish_spack_optspecs_spack_compiler_add h/help mixed-toolchain no-mixed-toolchain scope=
+set -g __fish_spack_optspecs_spack_compiler_add h/help mixed-toolchain no-mixed-toolchain scope= j/jobs=
complete -c spack -n '__fish_spack_using_command compiler add' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command compiler add' -s h -l help -d 'show this help message and exit'
@@ -1077,6 +1083,8 @@ complete -c spack -n '__fish_spack_using_command compiler add' -l no-mixed-toolc
complete -c spack -n '__fish_spack_using_command compiler add' -l no-mixed-toolchain -d 'Do not allow mixed toolchains (for example: clang, clang++, gfortran)'
complete -c spack -n '__fish_spack_using_command compiler add' -l scope -r -f -a '_builtin defaults system site user command_line'
complete -c spack -n '__fish_spack_using_command compiler add' -l scope -r -d 'configuration scope to modify'
+complete -c spack -n '__fish_spack_using_command compiler add' -s j -l jobs -r -f -a jobs
+complete -c spack -n '__fish_spack_using_command compiler add' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
# spack compiler remove
set -g __fish_spack_optspecs_spack_compiler_remove h/help a/all scope=
@@ -1121,7 +1129,7 @@ complete -c spack -n '__fish_spack_using_command compilers' -l scope -r -f -a '_
complete -c spack -n '__fish_spack_using_command compilers' -l scope -r -d 'configuration scope to read/modify'
# spack concretize
-set -g __fish_spack_optspecs_spack_concretize h/help f/force test= q/quiet U/fresh reuse reuse-deps j/jobs=
+set -g __fish_spack_optspecs_spack_concretize h/help f/force test= q/quiet U/fresh reuse fresh-roots deprecated j/jobs=
complete -c spack -n '__fish_spack_using_command concretize' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command concretize' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command concretize' -s f -l force -f -a force
@@ -1129,18 +1137,20 @@ complete -c spack -n '__fish_spack_using_command concretize' -s f -l force -d 'r
complete -c spack -n '__fish_spack_using_command concretize' -l test -r -f -a 'root all'
complete -c spack -n '__fish_spack_using_command concretize' -l test -r -d 'concretize with test dependencies of only root packages or all packages'
complete -c spack -n '__fish_spack_using_command concretize' -s q -l quiet -f -a quiet
-complete -c spack -n '__fish_spack_using_command concretize' -s q -l quiet -d 'don\'t print concretized specs'
+complete -c spack -n '__fish_spack_using_command concretize' -s q -l quiet -d 'don'"'"'t print concretized specs'
complete -c spack -n '__fish_spack_using_command concretize' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command concretize' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command concretize' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command concretize' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command concretize' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command concretize' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command concretize' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command concretize' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command concretize' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command concretize' -l deprecated -d 'allow concretizer to select deprecated versions'
complete -c spack -n '__fish_spack_using_command concretize' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command concretize' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
# spack concretise
-set -g __fish_spack_optspecs_spack_concretise h/help f/force test= q/quiet U/fresh reuse reuse-deps j/jobs=
+set -g __fish_spack_optspecs_spack_concretise h/help f/force test= q/quiet U/fresh reuse fresh-roots deprecated j/jobs=
complete -c spack -n '__fish_spack_using_command concretise' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command concretise' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command concretise' -s f -l force -f -a force
@@ -1148,13 +1158,15 @@ complete -c spack -n '__fish_spack_using_command concretise' -s f -l force -d 'r
complete -c spack -n '__fish_spack_using_command concretise' -l test -r -f -a 'root all'
complete -c spack -n '__fish_spack_using_command concretise' -l test -r -d 'concretize with test dependencies of only root packages or all packages'
complete -c spack -n '__fish_spack_using_command concretise' -s q -l quiet -f -a quiet
-complete -c spack -n '__fish_spack_using_command concretise' -s q -l quiet -d 'don\'t print concretized specs'
+complete -c spack -n '__fish_spack_using_command concretise' -s q -l quiet -d 'don'"'"'t print concretized specs'
complete -c spack -n '__fish_spack_using_command concretise' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command concretise' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command concretise' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command concretise' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command concretise' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command concretise' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command concretise' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command concretise' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command concretise' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command concretise' -l deprecated -d 'allow concretizer to select deprecated versions'
complete -c spack -n '__fish_spack_using_command concretise' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command concretise' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
@@ -1165,6 +1177,7 @@ complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a blame -d 'p
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a edit -d 'edit configuration file'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a list -d 'list configuration sections'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a add -d 'add configuration parameters'
+complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a change -d 'swap variants etc. on specs in config'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a prefer-upstream -d 'set package preferences from upstream'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a remove -d 'remove configuration parameters'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a rm -d 'remove configuration parameters'
@@ -1177,19 +1190,19 @@ complete -c spack -n '__fish_spack_using_command config' -l scope -r -d 'configu
# spack config get
set -g __fish_spack_optspecs_spack_config_get h/help
-complete -c spack -n '__fish_spack_using_command_pos 0 config get' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams'
+complete -c spack -n '__fish_spack_using_command_pos 0 config get' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams view'
complete -c spack -n '__fish_spack_using_command config get' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command config get' -s h -l help -d 'show this help message and exit'
# spack config blame
set -g __fish_spack_optspecs_spack_config_blame h/help
-complete -c spack -n '__fish_spack_using_command_pos 0 config blame' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams'
+complete -c spack -n '__fish_spack_using_command_pos 0 config blame' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams view'
complete -c spack -n '__fish_spack_using_command config blame' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command config blame' -s h -l help -d 'show this help message and exit'
# spack config edit
set -g __fish_spack_optspecs_spack_config_edit h/help print-file
-complete -c spack -n '__fish_spack_using_command_pos 0 config edit' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams'
+complete -c spack -n '__fish_spack_using_command_pos 0 config edit' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams view'
complete -c spack -n '__fish_spack_using_command config edit' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command config edit' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command config edit' -l print-file -f -a print_file
@@ -1208,6 +1221,14 @@ complete -c spack -n '__fish_spack_using_command config add' -s h -l help -d 'sh
complete -c spack -n '__fish_spack_using_command config add' -s f -l file -r -f -a file
complete -c spack -n '__fish_spack_using_command config add' -s f -l file -r -d 'file from which to set all config values'
+# spack config change
+set -g __fish_spack_optspecs_spack_config_change h/help match-spec=
+complete -c spack -n '__fish_spack_using_command_pos 0 config change' -f -a '(__fish_spack_colon_path)'
+complete -c spack -n '__fish_spack_using_command config change' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command config change' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command config change' -l match-spec -r -f -a match_spec
+complete -c spack -n '__fish_spack_using_command config change' -l match-spec -r -d 'only change constraints that match this'
+
# spack config prefer-upstream
set -g __fish_spack_optspecs_spack_config_prefer_upstream h/help local
complete -c spack -n '__fish_spack_using_command config prefer-upstream' -s h -l help -f -a help
@@ -1267,7 +1288,7 @@ set -g __fish_spack_optspecs_spack_create h/help keep-stage n/name= t/template=
complete -c spack -n '__fish_spack_using_command create' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command create' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command create' -l keep-stage -f -a keep_stage
-complete -c spack -n '__fish_spack_using_command create' -l keep-stage -d 'don\'t clean up staging area when command completes'
+complete -c spack -n '__fish_spack_using_command create' -l keep-stage -d 'don'"'"'t clean up staging area when command completes'
complete -c spack -n '__fish_spack_using_command create' -s n -l name -r -f -a name
complete -c spack -n '__fish_spack_using_command create' -s n -l name -r -d 'name of the package to create'
complete -c spack -n '__fish_spack_using_command create' -s t -l template -r -f -a 'autoreconf autotools bazel bundle cargo cmake generic go intel lua makefile maven meson octave perlbuild perlmake python qmake r racket ruby scons sip waf'
@@ -1281,11 +1302,11 @@ complete -c spack -n '__fish_spack_using_command create' -s f -l force -d 'overw
complete -c spack -n '__fish_spack_using_command create' -l skip-editor -f -a skip_editor
complete -c spack -n '__fish_spack_using_command create' -l skip-editor -d 'skip the edit session for the package (e.g., automation)'
complete -c spack -n '__fish_spack_using_command create' -s b -l batch -f -a batch
-complete -c spack -n '__fish_spack_using_command create' -s b -l batch -d 'don\'t ask which versions to checksum'
+complete -c spack -n '__fish_spack_using_command create' -s b -l batch -d 'don'"'"'t ask which versions to checksum'
# spack debug
set -g __fish_spack_optspecs_spack_debug h/help
-complete -c spack -n '__fish_spack_using_command_pos 0 debug' -f -a create-db-tarball -d 'create a tarball of Spack\'s installation metadata'
+complete -c spack -n '__fish_spack_using_command_pos 0 debug' -f -a create-db-tarball -d 'create a tarball of Spack'"'"'s installation metadata'
complete -c spack -n '__fish_spack_using_command_pos 0 debug' -f -a report -d 'print information useful for bug reports'
complete -c spack -n '__fish_spack_using_command debug' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command debug' -s h -l help -d 'show this help message and exit'
@@ -1352,23 +1373,21 @@ complete -c spack -n '__fish_spack_using_command deprecate' -s i -l install-depr
complete -c spack -n '__fish_spack_using_command deprecate' -s I -l no-install-deprecator -f -a install
complete -c spack -n '__fish_spack_using_command deprecate' -s I -l no-install-deprecator -d 'deprecator spec must already be installed (default)'
complete -c spack -n '__fish_spack_using_command deprecate' -s l -l link-type -r -f -a 'soft hard'
-complete -c spack -n '__fish_spack_using_command deprecate' -s l -l link-type -r -d 'type of filesystem link to use for deprecation (default soft)'
+complete -c spack -n '__fish_spack_using_command deprecate' -s l -l link-type -r -d '(deprecated)'
# spack dev-build
-set -g __fish_spack_optspecs_spack_dev_build h/help j/jobs= d/source-path= i/ignore-dependencies n/no-checksum deprecated keep-prefix skip-patch q/quiet drop-in= test= b/before= u/until= clean dirty U/fresh reuse reuse-deps
+set -g __fish_spack_optspecs_spack_dev_build h/help j/jobs= n/no-checksum d/source-path= i/ignore-dependencies keep-prefix skip-patch q/quiet drop-in= test= b/before= u/until= clean dirty U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 dev-build' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command dev-build' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command dev-build' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command dev-build' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command dev-build' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
+complete -c spack -n '__fish_spack_using_command dev-build' -s n -l no-checksum -f -a no_checksum
+complete -c spack -n '__fish_spack_using_command dev-build' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
complete -c spack -n '__fish_spack_using_command dev-build' -s d -l source-path -r -f -a source_path
complete -c spack -n '__fish_spack_using_command dev-build' -s d -l source-path -r -d 'path to source directory (defaults to the current directory)'
complete -c spack -n '__fish_spack_using_command dev-build' -s i -l ignore-dependencies -f -a ignore_deps
complete -c spack -n '__fish_spack_using_command dev-build' -s i -l ignore-dependencies -d 'do not try to install dependencies of requested packages'
-complete -c spack -n '__fish_spack_using_command dev-build' -s n -l no-checksum -f -a no_checksum
-complete -c spack -n '__fish_spack_using_command dev-build' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
-complete -c spack -n '__fish_spack_using_command dev-build' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command dev-build' -l deprecated -d 'fetch deprecated versions without warning'
complete -c spack -n '__fish_spack_using_command dev-build' -l keep-prefix -f -a keep_prefix
complete -c spack -n '__fish_spack_using_command dev-build' -l keep-prefix -d 'do not remove the install prefix if installation fails'
complete -c spack -n '__fish_spack_using_command dev-build' -l skip-patch -f -a skip_patch
@@ -1386,21 +1405,25 @@ complete -c spack -n '__fish_spack_using_command dev-build' -s u -l until -r -d
complete -c spack -n '__fish_spack_using_command dev-build' -l clean -f -a dirty
complete -c spack -n '__fish_spack_using_command dev-build' -l clean -d 'unset harmful variables in the build environment (default)'
complete -c spack -n '__fish_spack_using_command dev-build' -l dirty -f -a dirty
-complete -c spack -n '__fish_spack_using_command dev-build' -l dirty -d 'preserve user environment in spack\'s build environment (danger!)'
+complete -c spack -n '__fish_spack_using_command dev-build' -l dirty -d 'preserve user environment in spack'"'"'s build environment (danger!)'
complete -c spack -n '__fish_spack_using_command dev-build' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command dev-build' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command dev-build' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command dev-build' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command dev-build' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command dev-build' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command dev-build' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command dev-build' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command dev-build' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command dev-build' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack develop
-set -g __fish_spack_optspecs_spack_develop h/help p/path= no-clone clone f/force=
+set -g __fish_spack_optspecs_spack_develop h/help p/path= b/build-directory= no-clone clone f/force=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 develop' -f -k -a '(__fish_spack_specs_or_id)'
complete -c spack -n '__fish_spack_using_command develop' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command develop' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command develop' -s p -l path -r -f -a path
complete -c spack -n '__fish_spack_using_command develop' -s p -l path -r -d 'source location of package'
+complete -c spack -n '__fish_spack_using_command develop' -s b -l build-directory -r -f -a build_directory
+complete -c spack -n '__fish_spack_using_command develop' -s b -l build-directory -r -d 'build directory for the package'
complete -c spack -n '__fish_spack_using_command develop' -l no-clone -f -a clone
complete -c spack -n '__fish_spack_using_command develop' -l no-clone -d 'do not clone, the package already exists at the source path'
complete -c spack -n '__fish_spack_using_command develop' -l clone -f -a clone
@@ -1429,7 +1452,7 @@ complete -c spack -n '__fish_spack_using_command docs' -s h -l help -d 'show thi
# spack edit
set -g __fish_spack_optspecs_spack_edit h/help b/build-system c/command d/docs t/test m/module r/repo= N/namespace=
-complete -c spack -n '__fish_spack_using_command_pos 0 edit' -f -a '(__fish_spack_packages)'
+complete -c spack -n '__fish_spack_using_command_pos_remainder 0 edit' -f -a '(__fish_spack_packages)'
complete -c spack -n '__fish_spack_using_command edit' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command edit' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command edit' -s b -l build-system -f -a path
@@ -1449,25 +1472,29 @@ complete -c spack -n '__fish_spack_using_command edit' -s N -l namespace -r -d '
# spack env
set -g __fish_spack_optspecs_spack_env h/help
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a activate -d 'set the current environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a deactivate -d 'deactivate any active environment in the shell'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a activate -d 'set the active environment'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a deactivate -d 'deactivate the active environment'
complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a create -d 'create a new environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a remove -d 'remove an existing environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a rm -d 'remove an existing environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a list -d 'list available environments'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a ls -d 'list available environments'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a status -d 'print whether there is an active environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a st -d 'print whether there is an active environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a loads -d 'list modules for an installed environment \'(see spack module loads)\''
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a view -d 'manage a view associated with the environment'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a update -d 'update environments to the latest format'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a revert -d 'restore environments to their state before update'
-complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a depfile -d 'generate a depfile from the concrete environment specs'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a remove -d 'remove managed environment(s)'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a rm -d 'remove managed environment(s)'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a rename -d 'rename an existing environment'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a mv -d 'rename an existing environment'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a list -d 'list all managed environments'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a ls -d 'list all managed environments'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a status -d 'print active environment status'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a st -d 'print active environment status'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a loads -d 'list modules for an installed environment '"'"'(see spack module loads)'"'"''
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a view -d 'manage the environment'"'"'s view'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a update -d 'update the environment manifest to the latest schema format'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a revert -d 'restore the environment manifest to its previous format'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a depfile -d 'generate a depfile to exploit parallel builds across specs'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a track -d 'track an environment from a directory in Spack'
+complete -c spack -n '__fish_spack_using_command_pos 0 env' -f -a untrack -d 'track an environment from a directory in Spack'
complete -c spack -n '__fish_spack_using_command env' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env' -s h -l help -d 'show this help message and exit'
# spack env activate
-set -g __fish_spack_optspecs_spack_env_activate h/help sh csh fish bat pwsh v/with-view= V/without-view p/prompt temp d/dir=
+set -g __fish_spack_optspecs_spack_env_activate h/help sh csh fish bat pwsh v/with-view= V/without-view p/prompt temp create envfile= keep-relative d/dir
complete -c spack -n '__fish_spack_using_command_pos 0 env activate' -f -a '(__fish_spack_environments)'
complete -c spack -n '__fish_spack_using_command env activate' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env activate' -s h -l help -d 'show this help message and exit'
@@ -1481,16 +1508,22 @@ complete -c spack -n '__fish_spack_using_command env activate' -l bat -f -a shel
complete -c spack -n '__fish_spack_using_command env activate' -l bat -d 'print bat commands to activate the environment'
complete -c spack -n '__fish_spack_using_command env activate' -l pwsh -f -a shell
complete -c spack -n '__fish_spack_using_command env activate' -l pwsh -d 'print powershell commands to activate environment'
-complete -c spack -n '__fish_spack_using_command env activate' -l with-view -s v -r -f -a with_view
-complete -c spack -n '__fish_spack_using_command env activate' -l with-view -s v -r -d 'set runtime environment variables for specific view'
-complete -c spack -n '__fish_spack_using_command env activate' -l without-view -s V -f -a without_view
-complete -c spack -n '__fish_spack_using_command env activate' -l without-view -s V -d 'do not set runtime environment variables for any view'
+complete -c spack -n '__fish_spack_using_command env activate' -s v -l with-view -r -f -a with_view
+complete -c spack -n '__fish_spack_using_command env activate' -s v -l with-view -r -d 'set runtime environment variables for the named view'
+complete -c spack -n '__fish_spack_using_command env activate' -s V -l without-view -f -a without_view
+complete -c spack -n '__fish_spack_using_command env activate' -s V -l without-view -d 'do not set runtime environment variables for any view'
complete -c spack -n '__fish_spack_using_command env activate' -s p -l prompt -f -a prompt
-complete -c spack -n '__fish_spack_using_command env activate' -s p -l prompt -d 'decorate the command line prompt when activating'
+complete -c spack -n '__fish_spack_using_command env activate' -s p -l prompt -d 'add the active environment to the command line prompt'
complete -c spack -n '__fish_spack_using_command env activate' -l temp -f -a temp
-complete -c spack -n '__fish_spack_using_command env activate' -l temp -d 'create and activate an environment in a temporary directory'
-complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -r -f -a dir
-complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -r -d 'activate the environment in this directory'
+complete -c spack -n '__fish_spack_using_command env activate' -l temp -d 'create and activate in a temporary directory'
+complete -c spack -n '__fish_spack_using_command env activate' -l create -f -a create
+complete -c spack -n '__fish_spack_using_command env activate' -l create -d 'create and activate the environment if it doesn'"'"'t exist'
+complete -c spack -n '__fish_spack_using_command env activate' -l envfile -r -f -a envfile
+complete -c spack -n '__fish_spack_using_command env activate' -l envfile -r -d 'manifest or lock file (ends with '"'"'.json'"'"' or '"'"'.lock'"'"')'
+complete -c spack -n '__fish_spack_using_command env activate' -l keep-relative -f -a keep_relative
+complete -c spack -n '__fish_spack_using_command env activate' -l keep-relative -d 'copy envfile'"'"'s relative develop paths verbatim when create'
+complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -f -a dir
+complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -d 'activate environment based on the directory supplied'
# spack env deactivate
set -g __fish_spack_optspecs_spack_env_deactivate h/help sh csh fish bat pwsh
@@ -1508,34 +1541,60 @@ complete -c spack -n '__fish_spack_using_command env deactivate' -l pwsh -f -a s
complete -c spack -n '__fish_spack_using_command env deactivate' -l pwsh -d 'print pwsh commands to activate the environment'
# spack env create
-set -g __fish_spack_optspecs_spack_env_create h/help d/dir keep-relative without-view with-view=
+set -g __fish_spack_optspecs_spack_env_create h/help d/dir keep-relative without-view with-view= include-concrete=
complete -c spack -n '__fish_spack_using_command_pos 0 env create' -f -a '(__fish_spack_environments)'
complete -c spack -n '__fish_spack_using_command env create' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env create' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command env create' -s d -l dir -f -a dir
complete -c spack -n '__fish_spack_using_command env create' -s d -l dir -d 'create an environment in a specific directory'
complete -c spack -n '__fish_spack_using_command env create' -l keep-relative -f -a keep_relative
-complete -c spack -n '__fish_spack_using_command env create' -l keep-relative -d 'copy relative develop paths verbatim into the new environment when initializing from envfile'
+complete -c spack -n '__fish_spack_using_command env create' -l keep-relative -d 'copy envfile'"'"'s relative develop paths verbatim'
complete -c spack -n '__fish_spack_using_command env create' -l without-view -f -a without_view
complete -c spack -n '__fish_spack_using_command env create' -l without-view -d 'do not maintain a view for this environment'
complete -c spack -n '__fish_spack_using_command env create' -l with-view -r -f -a with_view
-complete -c spack -n '__fish_spack_using_command env create' -l with-view -r -d 'specify that this environment should maintain a view at the specified path (by default the view is maintained in the environment directory)'
+complete -c spack -n '__fish_spack_using_command env create' -l with-view -r -d 'maintain view at WITH_VIEW (vs. environment'"'"'s directory)'
+complete -c spack -n '__fish_spack_using_command env create' -l include-concrete -r -f -a include_concrete
+complete -c spack -n '__fish_spack_using_command env create' -l include-concrete -r -d 'copy concrete specs from INCLUDE_CONCRETE'"'"'s environment'
# spack env remove
-set -g __fish_spack_optspecs_spack_env_remove h/help y/yes-to-all
+set -g __fish_spack_optspecs_spack_env_remove h/help y/yes-to-all f/force
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 env remove' -f -a '(__fish_spack_environments)'
complete -c spack -n '__fish_spack_using_command env remove' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env remove' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command env remove' -s y -l yes-to-all -f -a yes_to_all
complete -c spack -n '__fish_spack_using_command env remove' -s y -l yes-to-all -d 'assume "yes" is the answer to every confirmation request'
+complete -c spack -n '__fish_spack_using_command env remove' -s f -l force -f -a force
+complete -c spack -n '__fish_spack_using_command env remove' -s f -l force -d 'force removal even when included in other environment(s)'
# spack env rm
-set -g __fish_spack_optspecs_spack_env_rm h/help y/yes-to-all
+set -g __fish_spack_optspecs_spack_env_rm h/help y/yes-to-all f/force
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 env rm' -f -a '(__fish_spack_environments)'
complete -c spack -n '__fish_spack_using_command env rm' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env rm' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command env rm' -s y -l yes-to-all -f -a yes_to_all
complete -c spack -n '__fish_spack_using_command env rm' -s y -l yes-to-all -d 'assume "yes" is the answer to every confirmation request'
+complete -c spack -n '__fish_spack_using_command env rm' -s f -l force -f -a force
+complete -c spack -n '__fish_spack_using_command env rm' -s f -l force -d 'force removal even when included in other environment(s)'
+
+# spack env rename
+set -g __fish_spack_optspecs_spack_env_rename h/help d/dir f/force
+
+complete -c spack -n '__fish_spack_using_command env rename' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command env rename' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command env rename' -s d -l dir -f -a dir
+complete -c spack -n '__fish_spack_using_command env rename' -s d -l dir -d 'positional arguments are environment directory paths'
+complete -c spack -n '__fish_spack_using_command env rename' -s f -l force -f -a force
+complete -c spack -n '__fish_spack_using_command env rename' -s f -l force -d 'force renaming even if overwriting an existing environment'
+
+# spack env mv
+set -g __fish_spack_optspecs_spack_env_mv h/help d/dir f/force
+
+complete -c spack -n '__fish_spack_using_command env mv' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command env mv' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command env mv' -s d -l dir -f -a dir
+complete -c spack -n '__fish_spack_using_command env mv' -s d -l dir -d 'positional arguments are environment directory paths'
+complete -c spack -n '__fish_spack_using_command env mv' -s f -l force -f -a force
+complete -c spack -n '__fish_spack_using_command env mv' -s f -l force -d 'force renaming even if overwriting an existing environment'
# spack env list
set -g __fish_spack_optspecs_spack_env_list h/help
@@ -1602,15 +1661,35 @@ complete -c spack -n '__fish_spack_using_command_pos_remainder 0 env depfile' -f
complete -c spack -n '__fish_spack_using_command env depfile' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env depfile' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command env depfile' -l make-prefix -l make-target-prefix -r -f -a make_prefix
-complete -c spack -n '__fish_spack_using_command env depfile' -l make-prefix -l make-target-prefix -r -d 'prefix Makefile targets (and variables) with <TARGET>/<name>'
+complete -c spack -n '__fish_spack_using_command env depfile' -l make-prefix -l make-target-prefix -r -d 'prefix Makefile targets/variables with <TARGET>/<name>,'
complete -c spack -n '__fish_spack_using_command env depfile' -l make-disable-jobserver -f -a jobserver
complete -c spack -n '__fish_spack_using_command env depfile' -l make-disable-jobserver -d 'disable POSIX jobserver support'
complete -c spack -n '__fish_spack_using_command env depfile' -l use-buildcache -r -f -a use_buildcache
-complete -c spack -n '__fish_spack_using_command env depfile' -l use-buildcache -r -d 'when using `only`, redundant build dependencies are pruned from the DAG'
+complete -c spack -n '__fish_spack_using_command env depfile' -l use-buildcache -r -d 'use `only` to prune redundant build dependencies'
complete -c spack -n '__fish_spack_using_command env depfile' -s o -l output -r -f -a output
complete -c spack -n '__fish_spack_using_command env depfile' -s o -l output -r -d 'write the depfile to FILE rather than to stdout'
complete -c spack -n '__fish_spack_using_command env depfile' -s G -l generator -r -f -a make
-complete -c spack -n '__fish_spack_using_command env depfile' -s G -l generator -r -d 'specify the depfile type'
+complete -c spack -n '__fish_spack_using_command env depfile' -s G -l generator -r -d 'specify the depfile type (only supports `make`)'
+
+# spack env track
+set -g __fish_spack_optspecs_spack_env_track h/help n/name= y/yes-to-all
+complete -c spack -n '__fish_spack_using_command_pos 0 env track' -f -a '(__fish_spack_environments)'
+complete -c spack -n '__fish_spack_using_command env track' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command env track' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command env track' -s n -l name -r -f -a name
+complete -c spack -n '__fish_spack_using_command env track' -s n -l name -r -d 'custom environment name'
+complete -c spack -n '__fish_spack_using_command env track' -s y -l yes-to-all -f -a yes_to_all
+complete -c spack -n '__fish_spack_using_command env track' -s y -l yes-to-all -d 'assume "yes" is the answer to every confirmation request'
+
+# spack env untrack
+set -g __fish_spack_optspecs_spack_env_untrack h/help f/force y/yes-to-all
+complete -c spack -n '__fish_spack_using_command_pos_remainder 0 env untrack' -f -a '(__fish_spack_environments)'
+complete -c spack -n '__fish_spack_using_command env untrack' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command env untrack' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command env untrack' -s f -l force -f -a force
+complete -c spack -n '__fish_spack_using_command env untrack' -s f -l force -d 'force unlink even when environment is active'
+complete -c spack -n '__fish_spack_using_command env untrack' -s y -l yes-to-all -f -a yes_to_all
+complete -c spack -n '__fish_spack_using_command env untrack' -s y -l yes-to-all -d 'assume "yes" is the answer to every confirmation request'
# spack extensions
set -g __fish_spack_optspecs_spack_extensions h/help l/long L/very-long d/deps p/paths s/show=
@@ -1642,7 +1721,7 @@ set -g __fish_spack_optspecs_spack_external_find h/help not-buildable exclude= p
complete -c spack -n '__fish_spack_using_command external find' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command external find' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command external find' -l not-buildable -f -a not_buildable
-complete -c spack -n '__fish_spack_using_command external find' -l not-buildable -d 'packages with detected externals won\'t be built with Spack'
+complete -c spack -n '__fish_spack_using_command external find' -l not-buildable -d 'packages with detected externals won'"'"'t be built with Spack'
complete -c spack -n '__fish_spack_using_command external find' -l exclude -r -f -a exclude
complete -c spack -n '__fish_spack_using_command external find' -l exclude -r -d 'packages to exclude from search'
complete -c spack -n '__fish_spack_using_command external find' -s p -l path -r -f -a path
@@ -1672,35 +1751,43 @@ complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l
complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l ignore-default-dir -f -a ignore_default_dir
complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l ignore-default-dir -d 'ignore the default directory of manifest files'
complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l dry-run -f -a dry_run
-complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l dry-run -d 'don\'t modify DB with files that are read'
+complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l dry-run -d 'don'"'"'t modify DB with files that are read'
complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l fail-on-error -f -a fail_on_error
complete -c spack -n '__fish_spack_using_command external read-cray-manifest' -l fail-on-error -d 'if a manifest file cannot be parsed, fail and report the full stack trace'
# spack fetch
-set -g __fish_spack_optspecs_spack_fetch h/help n/no-checksum deprecated m/missing D/dependencies
+set -g __fish_spack_optspecs_spack_fetch h/help n/no-checksum m/missing D/dependencies U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 fetch' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command fetch' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command fetch' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command fetch' -s n -l no-checksum -f -a no_checksum
complete -c spack -n '__fish_spack_using_command fetch' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
-complete -c spack -n '__fish_spack_using_command fetch' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command fetch' -l deprecated -d 'fetch deprecated versions without warning'
complete -c spack -n '__fish_spack_using_command fetch' -s m -l missing -f -a missing
complete -c spack -n '__fish_spack_using_command fetch' -s m -l missing -d 'fetch only missing (not yet installed) dependencies'
complete -c spack -n '__fish_spack_using_command fetch' -s D -l dependencies -f -a dependencies
complete -c spack -n '__fish_spack_using_command fetch' -s D -l dependencies -d 'also fetch all dependencies'
+complete -c spack -n '__fish_spack_using_command fetch' -s U -l fresh -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command fetch' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
+complete -c spack -n '__fish_spack_using_command fetch' -l reuse -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command fetch' -l reuse -d 'reuse installed packages/buildcaches when possible'
+complete -c spack -n '__fish_spack_using_command fetch' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command fetch' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command fetch' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command fetch' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack find
-set -g __fish_spack_optspecs_spack_find h/help format= H/hashes json d/deps p/paths groups no-groups l/long L/very-long t/tag= N/namespaces c/show-concretized f/show-flags show-full-compiler x/explicit X/implicit u/unknown m/missing v/variants loaded M/only-missing deprecated only-deprecated start-date= end-date=
+set -g __fish_spack_optspecs_spack_find h/help format= H/hashes json I/install-status d/deps p/paths groups no-groups l/long L/very-long t/tag= N/namespaces r/only-roots c/show-concretized f/show-flags show-full-compiler x/explicit X/implicit u/unknown m/missing v/variants loaded M/only-missing only-deprecated deprecated install-tree= start-date= end-date=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 find' -f -a '(__fish_spack_installed_specs)'
complete -c spack -n '__fish_spack_using_command find' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command find' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command find' -l format -r -f -a format
complete -c spack -n '__fish_spack_using_command find' -l format -r -d 'output specs with the specified format string'
complete -c spack -n '__fish_spack_using_command find' -s H -l hashes -f -a format
-complete -c spack -n '__fish_spack_using_command find' -s H -l hashes -d 'same as \'--format {/hash}\'; use with xargs or $()'
+complete -c spack -n '__fish_spack_using_command find' -s H -l hashes -d 'same as '"'"'--format {/hash}'"'"'; use with xargs or $()'
complete -c spack -n '__fish_spack_using_command find' -l json -f -a json
complete -c spack -n '__fish_spack_using_command find' -l json -d 'output specs as machine-readable json records'
+complete -c spack -n '__fish_spack_using_command find' -s I -l install-status -f -a install_status
+complete -c spack -n '__fish_spack_using_command find' -s I -l install-status -d 'show install status of packages'
complete -c spack -n '__fish_spack_using_command find' -s d -l deps -f -a deps
complete -c spack -n '__fish_spack_using_command find' -s d -l deps -d 'output dependencies along with found specs'
complete -c spack -n '__fish_spack_using_command find' -s p -l paths -f -a paths
@@ -1717,6 +1804,8 @@ complete -c spack -n '__fish_spack_using_command find' -s t -l tag -r -f -a tags
complete -c spack -n '__fish_spack_using_command find' -s t -l tag -r -d 'filter a package query by tag (multiple use allowed)'
complete -c spack -n '__fish_spack_using_command find' -s N -l namespaces -f -a namespaces
complete -c spack -n '__fish_spack_using_command find' -s N -l namespaces -d 'show fully qualified package names'
+complete -c spack -n '__fish_spack_using_command find' -s r -l only-roots -f -a only_roots
+complete -c spack -n '__fish_spack_using_command find' -s r -l only-roots -d 'don'"'"'t show full list of installed specs in an environment'
complete -c spack -n '__fish_spack_using_command find' -s c -l show-concretized -f -a show_concretized
complete -c spack -n '__fish_spack_using_command find' -s c -l show-concretized -d 'show concretized specs in an environment'
complete -c spack -n '__fish_spack_using_command find' -s f -l show-flags -f -a show_flags
@@ -1737,10 +1826,12 @@ complete -c spack -n '__fish_spack_using_command find' -l loaded -f -a loaded
complete -c spack -n '__fish_spack_using_command find' -l loaded -d 'show only packages loaded in the user environment'
complete -c spack -n '__fish_spack_using_command find' -s M -l only-missing -f -a only_missing
complete -c spack -n '__fish_spack_using_command find' -s M -l only-missing -d 'show only missing dependencies'
-complete -c spack -n '__fish_spack_using_command find' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command find' -l deprecated -d 'show deprecated packages as well as installed specs'
complete -c spack -n '__fish_spack_using_command find' -l only-deprecated -f -a only_deprecated
complete -c spack -n '__fish_spack_using_command find' -l only-deprecated -d 'show only deprecated packages'
+complete -c spack -n '__fish_spack_using_command find' -l deprecated -f -a deprecated
+complete -c spack -n '__fish_spack_using_command find' -l deprecated -d 'show deprecated packages as well as installed specs'
+complete -c spack -n '__fish_spack_using_command find' -l install-tree -r -f -a install_tree
+complete -c spack -n '__fish_spack_using_command find' -l install-tree -r -d 'Install trees to query: '"'"'all'"'"' (default), '"'"'local'"'"', '"'"'upstream'"'"', upstream name or path'
complete -c spack -n '__fish_spack_using_command find' -l start-date -r -f -a start_date
complete -c spack -n '__fish_spack_using_command find' -l start-date -r -d 'earliest date of installation [YYYY-MM-DD]'
complete -c spack -n '__fish_spack_using_command find' -l end-date -r -f -a end_date
@@ -1748,6 +1839,7 @@ complete -c spack -n '__fish_spack_using_command find' -l end-date -r -d 'latest
# spack gc
set -g __fish_spack_optspecs_spack_gc h/help E/except-any-environment e/except-environment= b/keep-build-dependencies y/yes-to-all
+complete -c spack -n '__fish_spack_using_command_pos_remainder 0 gc' -f -a '(__fish_spack_installed_specs)'
complete -c spack -n '__fish_spack_using_command gc' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command gc' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command gc' -s E -l except-any-environment -f -a except_any_environment
@@ -1843,7 +1935,7 @@ complete -c spack -n '__fish_spack_using_command gpg export' -l secret -f -a sec
complete -c spack -n '__fish_spack_using_command gpg export' -l secret -d 'export secret keys'
# spack gpg publish
-set -g __fish_spack_optspecs_spack_gpg_publish h/help d/directory= m/mirror-name= mirror-url= rebuild-index
+set -g __fish_spack_optspecs_spack_gpg_publish h/help d/directory= m/mirror-name= mirror-url= update-index
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 gpg publish' -f -a '(__fish_spack_gpg_keys)'
complete -c spack -n '__fish_spack_using_command gpg publish' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command gpg publish' -s h -l help -d 'show this help message and exit'
@@ -1853,8 +1945,8 @@ complete -c spack -n '__fish_spack_using_command gpg publish' -s m -l mirror-nam
complete -c spack -n '__fish_spack_using_command gpg publish' -s m -l mirror-name -r -d 'name of the mirror where keys will be published'
complete -c spack -n '__fish_spack_using_command gpg publish' -l mirror-url -r -f -a mirror_url
complete -c spack -n '__fish_spack_using_command gpg publish' -l mirror-url -r -d 'URL of the mirror where keys will be published'
-complete -c spack -n '__fish_spack_using_command gpg publish' -l rebuild-index -f -a rebuild_index
-complete -c spack -n '__fish_spack_using_command gpg publish' -l rebuild-index -d 'regenerate buildcache key index after publishing key(s)'
+complete -c spack -n '__fish_spack_using_command gpg publish' -l update-index -l rebuild-index -f -a update_index
+complete -c spack -n '__fish_spack_using_command gpg publish' -l update-index -l rebuild-index -d 'regenerate buildcache key index after publishing key(s)'
# spack graph
set -g __fish_spack_optspecs_spack_graph h/help a/ascii d/dot s/static c/color i/installed deptype=
@@ -1866,11 +1958,11 @@ complete -c spack -n '__fish_spack_using_command graph' -s a -l ascii -d 'draw g
complete -c spack -n '__fish_spack_using_command graph' -s d -l dot -f -a dot
complete -c spack -n '__fish_spack_using_command graph' -s d -l dot -d 'generate graph in dot format and print to stdout'
complete -c spack -n '__fish_spack_using_command graph' -s s -l static -f -a static
-complete -c spack -n '__fish_spack_using_command graph' -s s -l static -d 'graph static (possible) deps, don\'t concretize (implies --dot)'
+complete -c spack -n '__fish_spack_using_command graph' -s s -l static -d 'graph static (possible) deps, don'"'"'t concretize (implies --dot)'
complete -c spack -n '__fish_spack_using_command graph' -s c -l color -f -a color
complete -c spack -n '__fish_spack_using_command graph' -s c -l color -d 'use different colors for different dependency types'
complete -c spack -n '__fish_spack_using_command graph' -s i -l installed -f -a installed
-complete -c spack -n '__fish_spack_using_command graph' -s i -l installed -d 'graph installed specs, or specs in the active env (implies --dot)'
+complete -c spack -n '__fish_spack_using_command graph' -s i -l installed -d 'graph specs from the DB'
complete -c spack -n '__fish_spack_using_command graph' -l deptype -r -f -a deptype
complete -c spack -n '__fish_spack_using_command graph' -l deptype -r -d 'comma-separated list of deptypes to traverse (default=build,link,run,test)'
@@ -1885,7 +1977,7 @@ complete -c spack -n '__fish_spack_using_command help' -l spec -f -a guide
complete -c spack -n '__fish_spack_using_command help' -l spec -d 'help on the package specification syntax'
# spack info
-set -g __fish_spack_optspecs_spack_info h/help a/all detectable maintainers no-dependencies no-variants no-versions phases tags tests virtuals variants-by-name
+set -g __fish_spack_optspecs_spack_info h/help a/all detectable maintainers namespace no-dependencies no-variants no-versions phases tags tests virtuals variants-by-name
complete -c spack -n '__fish_spack_using_command_pos 0 info' -f -a '(__fish_spack_packages)'
complete -c spack -n '__fish_spack_using_command info' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command info' -s h -l help -d 'show this help message and exit'
@@ -1895,6 +1987,8 @@ complete -c spack -n '__fish_spack_using_command info' -l detectable -f -a detec
complete -c spack -n '__fish_spack_using_command info' -l detectable -d 'output information on external detection'
complete -c spack -n '__fish_spack_using_command info' -l maintainers -f -a maintainers
complete -c spack -n '__fish_spack_using_command info' -l maintainers -d 'output package maintainers'
+complete -c spack -n '__fish_spack_using_command info' -l namespace -f -a namespace
+complete -c spack -n '__fish_spack_using_command info' -l namespace -d 'output package namespace'
complete -c spack -n '__fish_spack_using_command info' -l no-dependencies -f -a no_dependencies
complete -c spack -n '__fish_spack_using_command info' -l no-dependencies -d 'do not output build, link, and run package dependencies'
complete -c spack -n '__fish_spack_using_command info' -l no-variants -f -a no_variants
@@ -1910,10 +2004,10 @@ complete -c spack -n '__fish_spack_using_command info' -l tests -d 'output relev
complete -c spack -n '__fish_spack_using_command info' -l virtuals -f -a virtuals
complete -c spack -n '__fish_spack_using_command info' -l virtuals -d 'output virtual packages'
complete -c spack -n '__fish_spack_using_command info' -l variants-by-name -f -a variants_by_name
-complete -c spack -n '__fish_spack_using_command info' -l variants-by-name -d 'list variants in strict name order; don\'t group by condition'
+complete -c spack -n '__fish_spack_using_command info' -l variants-by-name -d 'list variants in strict name order; don'"'"'t group by condition'
# spack install
-set -g __fish_spack_optspecs_spack_install h/help only= u/until= j/jobs= overwrite fail-fast keep-prefix keep-stage dont-restage use-cache no-cache cache-only use-buildcache= include-build-deps no-check-signature show-log-on-error source n/no-checksum deprecated v/verbose fake only-concrete add no-add f/file= clean dirty test= log-format= log-file= help-cdash cdash-upload-url= cdash-build= cdash-site= cdash-track= cdash-buildstamp= y/yes-to-all U/fresh reuse reuse-deps
+set -g __fish_spack_optspecs_spack_install h/help only= u/until= j/jobs= overwrite fail-fast keep-prefix keep-stage dont-restage use-cache no-cache cache-only use-buildcache= include-build-deps no-check-signature show-log-on-error source n/no-checksum v/verbose fake only-concrete add no-add f/file= clean dirty test= log-format= log-file= help-cdash cdash-upload-url= cdash-build= cdash-site= cdash-track= cdash-buildstamp= y/yes-to-all U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 install' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command install' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command install' -s h -l help -d 'show this help message and exit'
@@ -1928,11 +2022,11 @@ complete -c spack -n '__fish_spack_using_command install' -l overwrite -d 'reins
complete -c spack -n '__fish_spack_using_command install' -l fail-fast -f -a fail_fast
complete -c spack -n '__fish_spack_using_command install' -l fail-fast -d 'stop all builds if any build fails (default is best effort)'
complete -c spack -n '__fish_spack_using_command install' -l keep-prefix -f -a keep_prefix
-complete -c spack -n '__fish_spack_using_command install' -l keep-prefix -d 'don\'t remove the install prefix if installation fails'
+complete -c spack -n '__fish_spack_using_command install' -l keep-prefix -d 'don'"'"'t remove the install prefix if installation fails'
complete -c spack -n '__fish_spack_using_command install' -l keep-stage -f -a keep_stage
-complete -c spack -n '__fish_spack_using_command install' -l keep-stage -d 'don\'t remove the build stage if installation succeeds'
+complete -c spack -n '__fish_spack_using_command install' -l keep-stage -d 'don'"'"'t remove the build stage if installation succeeds'
complete -c spack -n '__fish_spack_using_command install' -l dont-restage -f -a dont_restage
-complete -c spack -n '__fish_spack_using_command install' -l dont-restage -d 'if a partial install is detected, don\'t delete prior state'
+complete -c spack -n '__fish_spack_using_command install' -l dont-restage -d 'if a partial install is detected, don'"'"'t delete prior state'
complete -c spack -n '__fish_spack_using_command install' -l use-cache -f -a use_cache
complete -c spack -n '__fish_spack_using_command install' -l use-cache -d 'check for pre-built Spack packages in mirrors (default)'
complete -c spack -n '__fish_spack_using_command install' -l no-cache -f -a use_cache
@@ -1940,7 +2034,7 @@ complete -c spack -n '__fish_spack_using_command install' -l no-cache -d 'do not
complete -c spack -n '__fish_spack_using_command install' -l cache-only -f -a cache_only
complete -c spack -n '__fish_spack_using_command install' -l cache-only -d 'only install package from binary mirrors'
complete -c spack -n '__fish_spack_using_command install' -l use-buildcache -r -f -a use_buildcache
-complete -c spack -n '__fish_spack_using_command install' -l use-buildcache -r -d 'select the mode of buildcache for the \'package\' and \'dependencies\''
+complete -c spack -n '__fish_spack_using_command install' -l use-buildcache -r -d 'select the mode of buildcache for the '"'"'package'"'"' and '"'"'dependencies'"'"''
complete -c spack -n '__fish_spack_using_command install' -l include-build-deps -f -a include_build_deps
complete -c spack -n '__fish_spack_using_command install' -l include-build-deps -d 'include build deps when installing from cache, useful for CI pipeline troubleshooting'
complete -c spack -n '__fish_spack_using_command install' -l no-check-signature -f -a unsigned
@@ -1951,8 +2045,6 @@ complete -c spack -n '__fish_spack_using_command install' -l source -f -a instal
complete -c spack -n '__fish_spack_using_command install' -l source -d 'install source files in prefix'
complete -c spack -n '__fish_spack_using_command install' -s n -l no-checksum -f -a no_checksum
complete -c spack -n '__fish_spack_using_command install' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
-complete -c spack -n '__fish_spack_using_command install' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command install' -l deprecated -d 'fetch deprecated versions without warning'
complete -c spack -n '__fish_spack_using_command install' -s v -l verbose -f -a install_verbose
complete -c spack -n '__fish_spack_using_command install' -s v -l verbose -d 'display verbose build output while installing'
complete -c spack -n '__fish_spack_using_command install' -l fake -f -a fake
@@ -1968,7 +2060,7 @@ complete -c spack -n '__fish_spack_using_command install' -s f -l file -r -d 're
complete -c spack -n '__fish_spack_using_command install' -l clean -f -a dirty
complete -c spack -n '__fish_spack_using_command install' -l clean -d 'unset harmful variables in the build environment (default)'
complete -c spack -n '__fish_spack_using_command install' -l dirty -f -a dirty
-complete -c spack -n '__fish_spack_using_command install' -l dirty -d 'preserve user environment in spack\'s build environment (danger!)'
+complete -c spack -n '__fish_spack_using_command install' -l dirty -d 'preserve user environment in spack'"'"'s build environment (danger!)'
complete -c spack -n '__fish_spack_using_command install' -l test -r -f -a 'root all'
complete -c spack -n '__fish_spack_using_command install' -l test -r -d 'run tests on only root packages or all packages'
complete -c spack -n '__fish_spack_using_command install' -l log-format -r -f -a 'junit cdash'
@@ -1988,8 +2080,10 @@ complete -c spack -n '__fish_spack_using_command install' -s U -l fresh -f -a co
complete -c spack -n '__fish_spack_using_command install' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command install' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command install' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command install' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command install' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command install' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command install' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command install' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command install' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack license
set -g __fish_spack_optspecs_spack_license h/help root=
@@ -2017,10 +2111,12 @@ complete -c spack -n '__fish_spack_using_command license update-copyright-year'
complete -c spack -n '__fish_spack_using_command license update-copyright-year' -s h -l help -d 'show this help message and exit'
# spack list
-set -g __fish_spack_optspecs_spack_list h/help d/search-description format= v/virtuals t/tag= count update=
+set -g __fish_spack_optspecs_spack_list h/help r/repo= d/search-description format= v/virtuals t/tag= count update=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 list' -f -a '(__fish_spack_packages)'
complete -c spack -n '__fish_spack_using_command list' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command list' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command list' -s r -l repo -s N -l namespace -r -f -a repos
+complete -c spack -n '__fish_spack_using_command list' -s r -l repo -s N -l namespace -r -d 'only list packages from the specified repo/namespace'
complete -c spack -n '__fish_spack_using_command list' -s d -l search-description -f -a search_description
complete -c spack -n '__fish_spack_using_command list' -s d -l search-description -d 'filtering will also search the description for a match'
complete -c spack -n '__fish_spack_using_command list' -l format -r -f -a 'name_only version_json html'
@@ -2035,7 +2131,7 @@ complete -c spack -n '__fish_spack_using_command list' -l update -r -f -a update
complete -c spack -n '__fish_spack_using_command list' -l update -r -d 'write output to the specified file, if any package is newer'
# spack load
-set -g __fish_spack_optspecs_spack_load h/help sh csh fish bat pwsh first only= list
+set -g __fish_spack_optspecs_spack_load h/help sh csh fish bat pwsh first list
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 load' -f -a '(__fish_spack_installed_specs)'
complete -c spack -n '__fish_spack_using_command load' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command load' -s h -l help -d 'show this help message and exit'
@@ -2051,13 +2147,11 @@ complete -c spack -n '__fish_spack_using_command load' -l pwsh -f -a shell
complete -c spack -n '__fish_spack_using_command load' -l pwsh -d 'print pwsh commands to load the package'
complete -c spack -n '__fish_spack_using_command load' -l first -f -a load_first
complete -c spack -n '__fish_spack_using_command load' -l first -d 'load the first match if multiple packages match the spec'
-complete -c spack -n '__fish_spack_using_command load' -l only -r -f -a 'package dependencies'
-complete -c spack -n '__fish_spack_using_command load' -l only -r -d 'select whether to load the package and its dependencies'
complete -c spack -n '__fish_spack_using_command load' -l list -f -a list
complete -c spack -n '__fish_spack_using_command load' -l list -d 'show loaded packages: same as `spack find --loaded`'
# spack location
-set -g __fish_spack_optspecs_spack_location h/help m/module-dir r/spack-root i/install-dir p/package-dir P/packages s/stage-dir S/stages source-dir b/build-dir e/env= first
+set -g __fish_spack_optspecs_spack_location h/help m/module-dir r/spack-root i/install-dir p/package-dir P/packages s/stage-dir S/stages c/source-dir b/build-dir e/env= first
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 location' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command location' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command location' -s h -l help -d 'show this help message and exit'
@@ -2068,15 +2162,15 @@ complete -c spack -n '__fish_spack_using_command location' -s r -l spack-root -d
complete -c spack -n '__fish_spack_using_command location' -s i -l install-dir -f -a install_dir
complete -c spack -n '__fish_spack_using_command location' -s i -l install-dir -d 'install prefix for spec (spec need not be installed)'
complete -c spack -n '__fish_spack_using_command location' -s p -l package-dir -f -a package_dir
-complete -c spack -n '__fish_spack_using_command location' -s p -l package-dir -d 'directory enclosing a spec\'s package.py file'
+complete -c spack -n '__fish_spack_using_command location' -s p -l package-dir -d 'directory enclosing a spec'"'"'s package.py file'
complete -c spack -n '__fish_spack_using_command location' -s P -l packages -f -a packages
complete -c spack -n '__fish_spack_using_command location' -s P -l packages -d 'top-level packages directory for Spack'
complete -c spack -n '__fish_spack_using_command location' -s s -l stage-dir -f -a stage_dir
complete -c spack -n '__fish_spack_using_command location' -s s -l stage-dir -d 'stage directory for a spec'
complete -c spack -n '__fish_spack_using_command location' -s S -l stages -f -a stages
complete -c spack -n '__fish_spack_using_command location' -s S -l stages -d 'top level stage directory'
-complete -c spack -n '__fish_spack_using_command location' -l source-dir -f -a source_dir
-complete -c spack -n '__fish_spack_using_command location' -l source-dir -d 'source directory for a spec (requires it to be staged first)'
+complete -c spack -n '__fish_spack_using_command location' -s c -l source-dir -f -a source_dir
+complete -c spack -n '__fish_spack_using_command location' -s c -l source-dir -d 'source directory for a spec (requires it to be staged first)'
complete -c spack -n '__fish_spack_using_command location' -s b -l build-dir -f -a build_dir
complete -c spack -n '__fish_spack_using_command location' -s b -l build-dir -d 'build directory for a spec (requires it to be staged first)'
complete -c spack -n '__fish_spack_using_command location' -s e -l env -r -f -a location_env
@@ -2100,6 +2194,12 @@ complete -c spack -n '__fish_spack_using_command log-parse' -s w -l width -r -d
complete -c spack -n '__fish_spack_using_command log-parse' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command log-parse' -s j -l jobs -r -d 'number of jobs to parse log file (default: 1 for short logs, ncpus for long logs)'
+# spack logs
+set -g __fish_spack_optspecs_spack_logs h/help
+complete -c spack -n '__fish_spack_using_command_pos_remainder 0 logs' -f -k -a '(__fish_spack_specs)'
+complete -c spack -n '__fish_spack_using_command logs' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command logs' -s h -l help -d 'show this help message and exit'
+
# spack maintainers
set -g __fish_spack_optspecs_spack_maintainers h/help maintained unmaintained a/all by-user
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 maintainers' -f -a '(__fish_spack_packages)'
@@ -2139,7 +2239,7 @@ complete -c spack -n '__fish_spack_using_command mark' -s i -l implicit -f -a im
complete -c spack -n '__fish_spack_using_command mark' -s i -l implicit -d 'mark packages as implicitly installed'
# spack mirror
-set -g __fish_spack_optspecs_spack_mirror h/help n/no-checksum deprecated
+set -g __fish_spack_optspecs_spack_mirror h/help n/no-checksum
complete -c spack -n '__fish_spack_using_command_pos 0 mirror' -f -a create -d 'create a directory to be used as a spack mirror, and fill it with package archives'
complete -c spack -n '__fish_spack_using_command_pos 0 mirror' -f -a destroy -d 'given a url, recursively delete everything under it'
complete -c spack -n '__fish_spack_using_command_pos 0 mirror' -f -a add -d 'add a mirror to Spack'
@@ -2152,11 +2252,9 @@ complete -c spack -n '__fish_spack_using_command mirror' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command mirror' -s n -l no-checksum -f -a no_checksum
complete -c spack -n '__fish_spack_using_command mirror' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
-complete -c spack -n '__fish_spack_using_command mirror' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command mirror' -l deprecated -d 'fetch deprecated versions without warning'
# spack mirror create
-set -g __fish_spack_optspecs_spack_mirror_create h/help d/directory= a/all f/file= exclude-file= exclude-specs= skip-unstable-versions D/dependencies n/versions-per-spec=
+set -g __fish_spack_optspecs_spack_mirror_create h/help d/directory= a/all f/file= exclude-file= exclude-specs= skip-unstable-versions D/dependencies n/versions-per-spec= private U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 mirror create' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command mirror create' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror create' -s h -l help -d 'show this help message and exit'
@@ -2171,11 +2269,21 @@ complete -c spack -n '__fish_spack_using_command mirror create' -l exclude-file
complete -c spack -n '__fish_spack_using_command mirror create' -l exclude-specs -r -f -a exclude_specs
complete -c spack -n '__fish_spack_using_command mirror create' -l exclude-specs -r -d 'specs which Spack should not try to add to a mirror (specified on command line)'
complete -c spack -n '__fish_spack_using_command mirror create' -l skip-unstable-versions -f -a skip_unstable_versions
-complete -c spack -n '__fish_spack_using_command mirror create' -l skip-unstable-versions -d 'don\'t cache versions unless they identify a stable (unchanging) source code'
+complete -c spack -n '__fish_spack_using_command mirror create' -l skip-unstable-versions -d 'don'"'"'t cache versions unless they identify a stable (unchanging) source code'
complete -c spack -n '__fish_spack_using_command mirror create' -s D -l dependencies -f -a dependencies
complete -c spack -n '__fish_spack_using_command mirror create' -s D -l dependencies -d 'also fetch all dependencies'
complete -c spack -n '__fish_spack_using_command mirror create' -s n -l versions-per-spec -r -f -a versions_per_spec
-complete -c spack -n '__fish_spack_using_command mirror create' -s n -l versions-per-spec -r -d 'the number of versions to fetch for each spec, choose \'all\' to retrieve all versions of each package'
+complete -c spack -n '__fish_spack_using_command mirror create' -s n -l versions-per-spec -r -d 'the number of versions to fetch for each spec, choose '"'"'all'"'"' to retrieve all versions of each package'
+complete -c spack -n '__fish_spack_using_command mirror create' -l private -f -a private
+complete -c spack -n '__fish_spack_using_command mirror create' -l private -d 'for a private mirror, include non-redistributable packages'
+complete -c spack -n '__fish_spack_using_command mirror create' -s U -l fresh -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command mirror create' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
+complete -c spack -n '__fish_spack_using_command mirror create' -l reuse -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command mirror create' -l reuse -d 'reuse installed packages/buildcaches when possible'
+complete -c spack -n '__fish_spack_using_command mirror create' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command mirror create' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command mirror create' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command mirror create' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack mirror destroy
set -g __fish_spack_optspecs_spack_mirror_destroy h/help m/mirror-name= mirror-url=
@@ -2187,7 +2295,7 @@ complete -c spack -n '__fish_spack_using_command mirror destroy' -l mirror-url -
complete -c spack -n '__fish_spack_using_command mirror destroy' -l mirror-url -r -d 'find mirror to destroy by url'
# spack mirror add
-set -g __fish_spack_optspecs_spack_mirror_add h/help scope= type= unsigned signed s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
+set -g __fish_spack_optspecs_spack_mirror_add h/help scope= type= autopush unsigned signed s3-access-key-id= s3-access-key-id-variable= s3-access-key-secret= s3-access-key-secret-variable= s3-access-token= s3-access-token-variable= s3-profile= s3-endpoint-url= oci-username= oci-username-variable= oci-password= oci-password-variable=
complete -c spack -n '__fish_spack_using_command_pos 0 mirror add' -f
complete -c spack -n '__fish_spack_using_command mirror add' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror add' -s h -l help -d 'show this help message and exit'
@@ -2195,24 +2303,36 @@ complete -c spack -n '__fish_spack_using_command mirror add' -l scope -r -f -a '
complete -c spack -n '__fish_spack_using_command mirror add' -l scope -r -d 'configuration scope to modify'
complete -c spack -n '__fish_spack_using_command mirror add' -l type -r -f -a 'binary source'
complete -c spack -n '__fish_spack_using_command mirror add' -l type -r -d 'specify the mirror type: for both binary and source use `--type binary --type source` (default)'
+complete -c spack -n '__fish_spack_using_command mirror add' -l autopush -f -a autopush
+complete -c spack -n '__fish_spack_using_command mirror add' -l autopush -d 'set mirror to push automatically after installation'
complete -c spack -n '__fish_spack_using_command mirror add' -l unsigned -f -a signed
complete -c spack -n '__fish_spack_using_command mirror add' -l unsigned -d 'do not require signing and signature verification when pushing and installing from this build cache'
complete -c spack -n '__fish_spack_using_command mirror add' -l signed -f -a signed
complete -c spack -n '__fish_spack_using_command mirror add' -l signed -d 'require signing and signature verification when pushing and installing from this build cache'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-id -r -f -a s3_access_key_id
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-id -r -d 'ID string to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-id-variable -r -f -a s3_access_key_id_variable
+complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-id-variable -r -d 'environment variable containing ID string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-secret -r -f -a s3_access_key_secret
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-secret -r -d 'secret string to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-secret-variable -r -f -a s3_access_key_secret_variable
+complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-secret-variable -r -d 'environment variable containing secret string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-token -r -f -a s3_access_token
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-token -r -d 'access token to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-token-variable -r -f -a s3_access_token_variable
+complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-token-variable -r -d 'environment variable containing access token to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-profile -r -f -a s3_profile
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-profile -r -d 'S3 profile name to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-endpoint-url -r -f -a s3_endpoint_url
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-endpoint-url -r -d 'endpoint URL to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l oci-username -r -f -a oci_username
complete -c spack -n '__fish_spack_using_command mirror add' -l oci-username -r -d 'username to use to connect to this OCI mirror'
+complete -c spack -n '__fish_spack_using_command mirror add' -l oci-username-variable -r -f -a oci_username_variable
+complete -c spack -n '__fish_spack_using_command mirror add' -l oci-username-variable -r -d 'environment variable containing username to use to connect to this OCI mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l oci-password -r -f -a oci_password
complete -c spack -n '__fish_spack_using_command mirror add' -l oci-password -r -d 'password to use to connect to this OCI mirror'
+complete -c spack -n '__fish_spack_using_command mirror add' -l oci-password-variable -r -f -a oci_password_variable
+complete -c spack -n '__fish_spack_using_command mirror add' -l oci-password-variable -r -d 'environment variable containing password to use to connect to this OCI mirror'
# spack mirror remove
set -g __fish_spack_optspecs_spack_mirror_remove h/help scope=
@@ -2231,7 +2351,7 @@ complete -c spack -n '__fish_spack_using_command mirror rm' -l scope -r -f -a '_
complete -c spack -n '__fish_spack_using_command mirror rm' -l scope -r -d 'configuration scope to modify'
# spack mirror set-url
-set -g __fish_spack_optspecs_spack_mirror_set_url h/help push fetch scope= s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
+set -g __fish_spack_optspecs_spack_mirror_set_url h/help push fetch scope= s3-access-key-id= s3-access-key-id-variable= s3-access-key-secret= s3-access-key-secret-variable= s3-access-token= s3-access-token-variable= s3-profile= s3-endpoint-url= oci-username= oci-username-variable= oci-password= oci-password-variable=
complete -c spack -n '__fish_spack_using_command_pos 0 mirror set-url' -f -a '(__fish_spack_mirrors)'
complete -c spack -n '__fish_spack_using_command mirror set-url' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror set-url' -s h -l help -d 'show this help message and exit'
@@ -2243,21 +2363,31 @@ complete -c spack -n '__fish_spack_using_command mirror set-url' -l scope -r -f
complete -c spack -n '__fish_spack_using_command mirror set-url' -l scope -r -d 'configuration scope to modify'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-id -r -f -a s3_access_key_id
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-id -r -d 'ID string to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-id-variable -r -f -a s3_access_key_id_variable
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-id-variable -r -d 'environment variable containing ID string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-secret -r -f -a s3_access_key_secret
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-secret -r -d 'secret string to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-secret-variable -r -f -a s3_access_key_secret_variable
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-key-secret-variable -r -d 'environment variable containing secret string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-token -r -f -a s3_access_token
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-token -r -d 'access token to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-token-variable -r -f -a s3_access_token_variable
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-access-token-variable -r -d 'environment variable containing access token to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-profile -r -f -a s3_profile
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-profile -r -d 'S3 profile name to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-endpoint-url -r -f -a s3_endpoint_url
complete -c spack -n '__fish_spack_using_command mirror set-url' -l s3-endpoint-url -r -d 'endpoint URL to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-username -r -f -a oci_username
complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-username -r -d 'username to use to connect to this OCI mirror'
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-username-variable -r -f -a oci_username_variable
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-username-variable -r -d 'environment variable containing username to use to connect to this OCI mirror'
complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-password -r -f -a oci_password
complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-password -r -d 'password to use to connect to this OCI mirror'
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-password-variable -r -f -a oci_password_variable
+complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-password-variable -r -d 'environment variable containing password to use to connect to this OCI mirror'
# spack mirror set
-set -g __fish_spack_optspecs_spack_mirror_set h/help push fetch type= url= unsigned signed scope= s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
+set -g __fish_spack_optspecs_spack_mirror_set h/help push fetch type= url= autopush no-autopush unsigned signed scope= s3-access-key-id= s3-access-key-id-variable= s3-access-key-secret= s3-access-key-secret-variable= s3-access-token= s3-access-token-variable= s3-profile= s3-endpoint-url= oci-username= oci-username-variable= oci-password= oci-password-variable=
complete -c spack -n '__fish_spack_using_command_pos 0 mirror set' -f -a '(__fish_spack_mirrors)'
complete -c spack -n '__fish_spack_using_command mirror set' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror set' -s h -l help -d 'show this help message and exit'
@@ -2268,7 +2398,11 @@ complete -c spack -n '__fish_spack_using_command mirror set' -l fetch -d 'modify
complete -c spack -n '__fish_spack_using_command mirror set' -l type -r -f -a 'binary source'
complete -c spack -n '__fish_spack_using_command mirror set' -l type -r -d 'specify the mirror type: for both binary and source use `--type binary --type source`'
complete -c spack -n '__fish_spack_using_command mirror set' -l url -r -f -a url
-complete -c spack -n '__fish_spack_using_command mirror set' -l url -r -d 'url of mirror directory from \'spack mirror create\''
+complete -c spack -n '__fish_spack_using_command mirror set' -l url -r -d 'url of mirror directory from '"'"'spack mirror create'"'"''
+complete -c spack -n '__fish_spack_using_command mirror set' -l autopush -f -a autopush
+complete -c spack -n '__fish_spack_using_command mirror set' -l autopush -d 'set mirror to push automatically after installation'
+complete -c spack -n '__fish_spack_using_command mirror set' -l no-autopush -f -a autopush
+complete -c spack -n '__fish_spack_using_command mirror set' -l no-autopush -d 'set mirror to not push automatically after installation'
complete -c spack -n '__fish_spack_using_command mirror set' -l unsigned -f -a signed
complete -c spack -n '__fish_spack_using_command mirror set' -l unsigned -d 'do not require signing and signature verification when pushing and installing from this build cache'
complete -c spack -n '__fish_spack_using_command mirror set' -l signed -f -a signed
@@ -2277,18 +2411,28 @@ complete -c spack -n '__fish_spack_using_command mirror set' -l scope -r -f -a '
complete -c spack -n '__fish_spack_using_command mirror set' -l scope -r -d 'configuration scope to modify'
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-id -r -f -a s3_access_key_id
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-id -r -d 'ID string to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-id-variable -r -f -a s3_access_key_id_variable
+complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-id-variable -r -d 'environment variable containing ID string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-secret -r -f -a s3_access_key_secret
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-secret -r -d 'secret string to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-secret-variable -r -f -a s3_access_key_secret_variable
+complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-secret-variable -r -d 'environment variable containing secret string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-token -r -f -a s3_access_token
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-token -r -d 'access token to use to connect to this S3 mirror'
+complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-token-variable -r -f -a s3_access_token_variable
+complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-token-variable -r -d 'environment variable containing access token to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-profile -r -f -a s3_profile
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-profile -r -d 'S3 profile name to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-endpoint-url -r -f -a s3_endpoint_url
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-endpoint-url -r -d 'endpoint URL to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror set' -l oci-username -r -f -a oci_username
complete -c spack -n '__fish_spack_using_command mirror set' -l oci-username -r -d 'username to use to connect to this OCI mirror'
+complete -c spack -n '__fish_spack_using_command mirror set' -l oci-username-variable -r -f -a oci_username_variable
+complete -c spack -n '__fish_spack_using_command mirror set' -l oci-username-variable -r -d 'environment variable containing username to use to connect to this OCI mirror'
complete -c spack -n '__fish_spack_using_command mirror set' -l oci-password -r -f -a oci_password
complete -c spack -n '__fish_spack_using_command mirror set' -l oci-password -r -d 'password to use to connect to this OCI mirror'
+complete -c spack -n '__fish_spack_using_command mirror set' -l oci-password-variable -r -f -a oci_password_variable
+complete -c spack -n '__fish_spack_using_command mirror set' -l oci-password-variable -r -d 'environment variable containing password to use to connect to this OCI mirror'
# spack mirror list
set -g __fish_spack_optspecs_spack_mirror_list h/help scope=
@@ -2429,20 +2573,20 @@ complete -c spack -n '__fish_spack_using_command module tcl setdefault' -s h -l
complete -c spack -n '__fish_spack_using_command module tcl setdefault' -s h -l help -d 'show this help message and exit'
# spack patch
-set -g __fish_spack_optspecs_spack_patch h/help n/no-checksum deprecated U/fresh reuse reuse-deps
+set -g __fish_spack_optspecs_spack_patch h/help n/no-checksum U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 patch' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command patch' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command patch' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command patch' -s n -l no-checksum -f -a no_checksum
complete -c spack -n '__fish_spack_using_command patch' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
-complete -c spack -n '__fish_spack_using_command patch' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command patch' -l deprecated -d 'fetch deprecated versions without warning'
complete -c spack -n '__fish_spack_using_command patch' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command patch' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command patch' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command patch' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command patch' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command patch' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command patch' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command patch' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command patch' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command patch' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack pkg
set -g __fish_spack_optspecs_spack_pkg h/help
@@ -2491,7 +2635,7 @@ complete -c spack -n '__fish_spack_using_command_pos 1 pkg changed' -f -a '(__fi
complete -c spack -n '__fish_spack_using_command pkg changed' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command pkg changed' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command pkg changed' -s t -l type -r -f -a type
-complete -c spack -n '__fish_spack_using_command pkg changed' -s t -l type -r -d 'types of changes to show (A: added, R: removed, C: changed); default is \'C\''
+complete -c spack -n '__fish_spack_using_command pkg changed' -s t -l type -r -d 'types of changes to show (A: added, R: removed, C: changed); default is '"'"'C'"'"''
# spack pkg removed
set -g __fish_spack_optspecs_spack_pkg_removed h/help
@@ -2583,9 +2727,9 @@ complete -c spack -n '__fish_spack_using_command rm' -s f -l force -d 'remove co
set -g __fish_spack_optspecs_spack_repo h/help
complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a create -d 'create a new package repository'
complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a list -d 'show registered repositories and their namespaces'
-complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a add -d 'add a package source to Spack\'s configuration'
-complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a remove -d 'remove a repository from Spack\'s configuration'
-complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a rm -d 'remove a repository from Spack\'s configuration'
+complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a add -d 'add a package source to Spack'"'"'s configuration'
+complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a remove -d 'remove a repository from Spack'"'"'s configuration'
+complete -c spack -n '__fish_spack_using_command_pos 0 repo' -f -a rm -d 'remove a repository from Spack'"'"'s configuration'
complete -c spack -n '__fish_spack_using_command repo' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command repo' -s h -l help -d 'show this help message and exit'
@@ -2655,12 +2799,16 @@ complete -c spack -n '__fish_spack_using_command restage' -s h -l help -f -a hel
complete -c spack -n '__fish_spack_using_command restage' -s h -l help -d 'show this help message and exit'
# spack solve
-set -g __fish_spack_optspecs_spack_solve h/help show= l/long L/very-long N/namespaces I/install-status no-install-status y/yaml j/json c/cover= t/types timers stats U/fresh reuse reuse-deps
+set -g __fish_spack_optspecs_spack_solve h/help show= timers stats l/long L/very-long N/namespaces I/install-status no-install-status y/yaml j/json format= c/cover= t/types U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 solve' -f -k -a '(__fish_spack_specs_or_id)'
complete -c spack -n '__fish_spack_using_command solve' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command solve' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command solve' -l show -r -f -a show
complete -c spack -n '__fish_spack_using_command solve' -l show -r -d 'select outputs'
+complete -c spack -n '__fish_spack_using_command solve' -l timers -f -a timers
+complete -c spack -n '__fish_spack_using_command solve' -l timers -d 'print out timers for different solve phases'
+complete -c spack -n '__fish_spack_using_command solve' -l stats -f -a stats
+complete -c spack -n '__fish_spack_using_command solve' -l stats -d 'print out statistics from clingo'
complete -c spack -n '__fish_spack_using_command solve' -s l -l long -f -a long
complete -c spack -n '__fish_spack_using_command solve' -s l -l long -d 'show dependency hashes as well as versions'
complete -c spack -n '__fish_spack_using_command solve' -s L -l very-long -f -a very_long
@@ -2672,26 +2820,26 @@ complete -c spack -n '__fish_spack_using_command solve' -s I -l install-status -
complete -c spack -n '__fish_spack_using_command solve' -l no-install-status -f -a install_status
complete -c spack -n '__fish_spack_using_command solve' -l no-install-status -d 'do not show install status annotations'
complete -c spack -n '__fish_spack_using_command solve' -s y -l yaml -f -a format
-complete -c spack -n '__fish_spack_using_command solve' -s y -l yaml -d 'print concrete spec as yaml'
+complete -c spack -n '__fish_spack_using_command solve' -s y -l yaml -d 'print concrete spec as YAML'
complete -c spack -n '__fish_spack_using_command solve' -s j -l json -f -a format
-complete -c spack -n '__fish_spack_using_command solve' -s j -l json -d 'print concrete spec as json'
+complete -c spack -n '__fish_spack_using_command solve' -s j -l json -d 'print concrete spec as JSON'
+complete -c spack -n '__fish_spack_using_command solve' -l format -r -f -a format
+complete -c spack -n '__fish_spack_using_command solve' -l format -r -d 'print concrete spec with the specified format string'
complete -c spack -n '__fish_spack_using_command solve' -s c -l cover -r -f -a 'nodes edges paths'
complete -c spack -n '__fish_spack_using_command solve' -s c -l cover -r -d 'how extensively to traverse the DAG (default: nodes)'
complete -c spack -n '__fish_spack_using_command solve' -s t -l types -f -a types
complete -c spack -n '__fish_spack_using_command solve' -s t -l types -d 'show dependency types'
-complete -c spack -n '__fish_spack_using_command solve' -l timers -f -a timers
-complete -c spack -n '__fish_spack_using_command solve' -l timers -d 'print out timers for different solve phases'
-complete -c spack -n '__fish_spack_using_command solve' -l stats -f -a stats
-complete -c spack -n '__fish_spack_using_command solve' -l stats -d 'print out statistics from clingo'
complete -c spack -n '__fish_spack_using_command solve' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command solve' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command solve' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command solve' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command solve' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command solve' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command solve' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command solve' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command solve' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command solve' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack spec
-set -g __fish_spack_optspecs_spack_spec h/help l/long L/very-long N/namespaces I/install-status no-install-status y/yaml j/json format= c/cover= t/types U/fresh reuse reuse-deps
+set -g __fish_spack_optspecs_spack_spec h/help l/long L/very-long N/namespaces I/install-status no-install-status y/yaml j/json format= c/cover= t/types U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 spec' -f -k -a '(__fish_spack_specs_or_id)'
complete -c spack -n '__fish_spack_using_command spec' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command spec' -s h -l help -d 'show this help message and exit'
@@ -2719,26 +2867,28 @@ complete -c spack -n '__fish_spack_using_command spec' -s U -l fresh -f -a concr
complete -c spack -n '__fish_spack_using_command spec' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command spec' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command spec' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command spec' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command spec' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command spec' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command spec' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command spec' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command spec' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack stage
-set -g __fish_spack_optspecs_spack_stage h/help n/no-checksum deprecated p/path= U/fresh reuse reuse-deps
+set -g __fish_spack_optspecs_spack_stage h/help n/no-checksum p/path= U/fresh reuse fresh-roots deprecated
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 stage' -f -k -a '(__fish_spack_specs_or_id)'
complete -c spack -n '__fish_spack_using_command stage' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command stage' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command stage' -s n -l no-checksum -f -a no_checksum
complete -c spack -n '__fish_spack_using_command stage' -s n -l no-checksum -d 'do not use checksums to verify downloaded files (unsafe)'
-complete -c spack -n '__fish_spack_using_command stage' -l deprecated -f -a deprecated
-complete -c spack -n '__fish_spack_using_command stage' -l deprecated -d 'fetch deprecated versions without warning'
complete -c spack -n '__fish_spack_using_command stage' -s p -l path -r -f -a path
complete -c spack -n '__fish_spack_using_command stage' -s p -l path -r -d 'path to stage package, does not add to spack tree'
complete -c spack -n '__fish_spack_using_command stage' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command stage' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command stage' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command stage' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command stage' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command stage' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command stage' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command stage' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command stage' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command stage' -l deprecated -d 'allow concretizer to select deprecated versions'
# spack style
set -g __fish_spack_optspecs_spack_style h/help b/base= a/all r/root-relative U/no-untracked f/fix root= t/tool= s/skip=
@@ -2758,9 +2908,9 @@ complete -c spack -n '__fish_spack_using_command style' -s f -l fix -d 'format a
complete -c spack -n '__fish_spack_using_command style' -l root -r -f -a root
complete -c spack -n '__fish_spack_using_command style' -l root -r -d 'style check a different spack instance'
complete -c spack -n '__fish_spack_using_command style' -s t -l tool -r -f -a tool
-complete -c spack -n '__fish_spack_using_command style' -s t -l tool -r -d 'specify which tools to run (default: isort,black,flake8,mypy)'
+complete -c spack -n '__fish_spack_using_command style' -s t -l tool -r -d 'specify which tools to run (default: import, isort, black, flake8, mypy)'
complete -c spack -n '__fish_spack_using_command style' -s s -l skip -r -f -a skip
-complete -c spack -n '__fish_spack_using_command style' -s s -l skip -r -d 'specify tools to skip (choose from isort,black,flake8,mypy)'
+complete -c spack -n '__fish_spack_using_command style' -s s -l skip -r -d 'specify tools to skip (choose from import, isort, black, flake8, mypy)'
# spack tags
set -g __fish_spack_optspecs_spack_tags h/help i/installed a/all
@@ -2814,7 +2964,7 @@ complete -c spack -n '__fish_spack_using_command test run' -l help-cdash -d 'sho
complete -c spack -n '__fish_spack_using_command test run' -l clean -f -a dirty
complete -c spack -n '__fish_spack_using_command test run' -l clean -d 'unset harmful variables in the build environment (default)'
complete -c spack -n '__fish_spack_using_command test run' -l dirty -f -a dirty
-complete -c spack -n '__fish_spack_using_command test run' -l dirty -d 'preserve user environment in spack\'s build environment (danger!)'
+complete -c spack -n '__fish_spack_using_command test run' -l dirty -d 'preserve user environment in spack'"'"'s build environment (danger!)'
# spack test list
set -g __fish_spack_optspecs_spack_test_list h/help a/all
@@ -2855,20 +3005,22 @@ complete -c spack -n '__fish_spack_using_command test remove' -s y -l yes-to-all
complete -c spack -n '__fish_spack_using_command test remove' -s y -l yes-to-all -d 'assume "yes" is the answer to every confirmation request'
# spack test-env
-set -g __fish_spack_optspecs_spack_test_env h/help clean dirty U/fresh reuse reuse-deps dump= pickle=
+set -g __fish_spack_optspecs_spack_test_env h/help clean dirty U/fresh reuse fresh-roots deprecated dump= pickle=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 test-env' -f -a '(__fish_spack_build_env_spec)'
complete -c spack -n '__fish_spack_using_command test-env' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command test-env' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command test-env' -l clean -f -a dirty
complete -c spack -n '__fish_spack_using_command test-env' -l clean -d 'unset harmful variables in the build environment (default)'
complete -c spack -n '__fish_spack_using_command test-env' -l dirty -f -a dirty
-complete -c spack -n '__fish_spack_using_command test-env' -l dirty -d 'preserve user environment in spack\'s build environment (danger!)'
+complete -c spack -n '__fish_spack_using_command test-env' -l dirty -d 'preserve user environment in spack'"'"'s build environment (danger!)'
complete -c spack -n '__fish_spack_using_command test-env' -s U -l fresh -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command test-env' -s U -l fresh -d 'do not reuse installed deps; build newest configuration'
complete -c spack -n '__fish_spack_using_command test-env' -l reuse -f -a concretizer_reuse
complete -c spack -n '__fish_spack_using_command test-env' -l reuse -d 'reuse installed packages/buildcaches when possible'
-complete -c spack -n '__fish_spack_using_command test-env' -l reuse-deps -f -a concretizer_reuse
-complete -c spack -n '__fish_spack_using_command test-env' -l reuse-deps -d 'reuse installed dependencies only'
+complete -c spack -n '__fish_spack_using_command test-env' -l fresh-roots -l reuse-deps -f -a concretizer_reuse
+complete -c spack -n '__fish_spack_using_command test-env' -l fresh-roots -l reuse-deps -d 'concretize with fresh roots and reused dependencies'
+complete -c spack -n '__fish_spack_using_command test-env' -l deprecated -f -a config_deprecated
+complete -c spack -n '__fish_spack_using_command test-env' -l deprecated -d 'allow concretizer to select deprecated versions'
complete -c spack -n '__fish_spack_using_command test-env' -l dump -r -f -a dump
complete -c spack -n '__fish_spack_using_command test-env' -l dump -r -d 'dump a source-able environment to FILE'
complete -c spack -n '__fish_spack_using_command test-env' -l pickle -r -f -a pickle
@@ -2908,12 +3060,14 @@ complete -c spack -n '__fish_spack_using_command uninstall' -l origin -r -f -a o
complete -c spack -n '__fish_spack_using_command uninstall' -l origin -r -d 'only remove DB records with the specified origin'
# spack unit-test
-set -g __fish_spack_optspecs_spack_unit_test h/help H/pytest-help l/list L/list-long N/list-names extension= s/ k/= showlocals
+set -g __fish_spack_optspecs_spack_unit_test h/help H/pytest-help n/numprocesses= l/list L/list-long N/list-names extension= s/ k/= showlocals
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 unit-test' -f -a '(__fish_spack_unit_tests)'
complete -c spack -n '__fish_spack_using_command unit-test' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command unit-test' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command unit-test' -s H -l pytest-help -f -a pytest_help
complete -c spack -n '__fish_spack_using_command unit-test' -s H -l pytest-help -d 'show full pytest help, with advanced options'
+complete -c spack -n '__fish_spack_using_command unit-test' -s n -l numprocesses -r -f -a numprocesses
+complete -c spack -n '__fish_spack_using_command unit-test' -s n -l numprocesses -r -d 'run tests in parallel up to this wide, default 1 for sequential'
complete -c spack -n '__fish_spack_using_command unit-test' -s l -l list -f -a list
complete -c spack -n '__fish_spack_using_command unit-test' -s l -l list -d 'list test filenames'
complete -c spack -n '__fish_spack_using_command unit-test' -s L -l list-long -f -a list
@@ -3010,14 +3164,12 @@ complete -c spack -n '__fish_spack_using_command verify' -s f -l files -f -a typ
complete -c spack -n '__fish_spack_using_command verify' -s f -l files -d 'treat entries as absolute filenames'
# spack versions
-set -g __fish_spack_optspecs_spack_versions h/help s/safe safe-only r/remote n/new j/jobs=
+set -g __fish_spack_optspecs_spack_versions h/help s/safe r/remote n/new j/jobs=
complete -c spack -n '__fish_spack_using_command_pos 0 versions' -f -a '(__fish_spack_packages)'
complete -c spack -n '__fish_spack_using_command versions' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command versions' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command versions' -s s -l safe -f -a safe
complete -c spack -n '__fish_spack_using_command versions' -s s -l safe -d 'only list safe versions of the package'
-complete -c spack -n '__fish_spack_using_command versions' -l safe-only -f -a safe_only
-complete -c spack -n '__fish_spack_using_command versions' -l safe-only -d '[deprecated] only list safe versions of the package'
complete -c spack -n '__fish_spack_using_command versions' -s r -l remote -f -a remote
complete -c spack -n '__fish_spack_using_command versions' -s r -l remote -d 'only list remote versions of the package'
complete -c spack -n '__fish_spack_using_command versions' -s n -l new -f -a new
diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile
index 2fad37affb..35dc270a22 100644
--- a/share/spack/templates/container/Dockerfile
+++ b/share/spack/templates/container/Dockerfile
@@ -4,7 +4,7 @@
{% endif %}
{% if render_phase.build %}
# Build stage with Spack pre-installed and ready to be used
-FROM {{ build.image }} as builder
+FROM {{ build.image }} AS builder
{% block build_stage %}
{% if os_packages_build %}
@@ -16,7 +16,8 @@ RUN {% if os_package_update %}{{ os_packages_build.update }} \
# What we want to install and how we want to install it
# is specified in a manifest file (spack.yaml)
-RUN mkdir {{ paths.environment }} \
+RUN mkdir -p {{ paths.environment }} && \
+set -o noclobber \
{{ manifest }} > {{ paths.environment }}/spack.yaml
# Install the software, remove unnecessary deps
diff --git a/share/spack/templates/container/bootstrap-base.dockerfile b/share/spack/templates/container/bootstrap-base.dockerfile
index 38de6c8849..a8310a982a 100644
--- a/share/spack/templates/container/bootstrap-base.dockerfile
+++ b/share/spack/templates/container/bootstrap-base.dockerfile
@@ -1,4 +1,4 @@
-FROM {{ bootstrap.image }} as bootstrap
+FROM {{ bootstrap.image }} AS bootstrap
{% block env_vars %}
ENV SPACK_ROOT=/opt/spack \
diff --git a/share/spack/templates/container/centos_7.dockerfile b/share/spack/templates/container/centos_7.dockerfile
deleted file mode 100644
index 2d99ecad91..0000000000
--- a/share/spack/templates/container/centos_7.dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-{% extends "container/bootstrap-base.dockerfile" %}
-{% block install_os_packages %}
-RUN yum update -y \
- && yum install -y epel-release \
- && yum update -y \
- && yum --enablerepo epel groupinstall -y "Development Tools" \
- && yum --enablerepo epel install -y \
- curl \
- findutils \
- gcc-c++ \
- gcc \
- gcc-gfortran \
- git \
- gnupg2 \
- hostname \
- hg \
- iproute \
- make \
- patch \
- python3 \
- python3-pip \
- python3-setuptools \
- unzip \
- zstd \
- && pip3 install boto3 \
- && rm -rf /var/cache/yum \
- && yum clean all
-{% endblock %}
diff --git a/share/spack/templates/container/centos_stream.dockerfile b/share/spack/templates/container/centos_stream9.dockerfile
index c11a658fc7..e62c64364f 100644
--- a/share/spack/templates/container/centos_stream.dockerfile
+++ b/share/spack/templates/container/centos_stream9.dockerfile
@@ -1,14 +1,14 @@
{% extends "container/bootstrap-base.dockerfile" %}
{% block install_os_packages %}
RUN dnf update -y \
- # See https://fedoraproject.org/wiki/EPEL#Quickstart for powertools
+ # See https://fedoraproject.org/wiki/EPEL#Quickstart for crb
&& dnf install -y dnf-plugins-core \
- && dnf config-manager --set-enabled powertools \
+ && dnf config-manager --set-enabled crb \
&& dnf install -y epel-release \
&& dnf update -y \
&& dnf --enablerepo epel groupinstall -y "Development Tools" \
&& dnf --enablerepo epel install -y \
- curl \
+ curl-minimal \
findutils \
gcc-c++ \
gcc \
diff --git a/share/spack/templates/container/fedora_38.dockerfile b/share/spack/templates/container/fedora.dockerfile
index 4856ad2197..4856ad2197 100644
--- a/share/spack/templates/container/fedora_38.dockerfile
+++ b/share/spack/templates/container/fedora.dockerfile
diff --git a/share/spack/templates/container/fedora_37.dockerfile b/share/spack/templates/container/fedora_37.dockerfile
deleted file mode 100644
index 6cea1e0cd3..0000000000
--- a/share/spack/templates/container/fedora_37.dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-{% extends "container/bootstrap-base.dockerfile" %}
-{% block install_os_packages %}
-RUN dnf update -y \
- && dnf install -y \
- bzip2 \
- curl \
- file \
- findutils \
- gcc-c++ \
- gcc \
- gcc-gfortran \
- git \
- gnupg2 \
- hg \
- hostname \
- iproute \
- make \
- patch \
- python3 \
- python3-pip \
- python3-setuptools \
- svn \
- unzip \
- zstd \
- xz \
- && pip3 install boto3 \
- && rm -rf /var/cache/dnf \
- && dnf clean all
-{% endblock %}
diff --git a/share/spack/templates/container/ubuntu_2404.dockerfile b/share/spack/templates/container/ubuntu_2404.dockerfile
new file mode 100644
index 0000000000..1cf4cfb101
--- /dev/null
+++ b/share/spack/templates/container/ubuntu_2404.dockerfile
@@ -0,0 +1,33 @@
+{% extends "container/bootstrap-base.dockerfile" %}
+{% block env_vars %}
+{{ super() }}
+ENV DEBIAN_FRONTEND=noninteractive \
+ LANGUAGE=en_US.UTF-8 \
+ LANG=en_US.UTF-8 \
+ LC_ALL=en_US.UTF-8
+{% endblock %}
+{% block install_os_packages %}
+RUN apt-get -yqq update \
+ && apt-get -yqq upgrade \
+ && apt-get -yqq install --no-install-recommends \
+ build-essential \
+ ca-certificates \
+ curl \
+ file \
+ g++ \
+ gcc \
+ gfortran \
+ git \
+ gnupg2 \
+ iproute2 \
+ locales \
+ make \
+ mercurial \
+ subversion \
+ python3 \
+ python3-boto3 \
+ unzip \
+ zstd \
+ && locale-gen en_US.UTF-8 \
+ && rm -rf /var/lib/apt/lists/*
+{% endblock %}
diff --git a/share/spack/templates/depfile/Makefile b/share/spack/templates/depfile/Makefile
index 4b76475267..cd9df1491c 100644
--- a/share/spack/templates/depfile/Makefile
+++ b/share/spack/templates/depfile/Makefile
@@ -1,4 +1,4 @@
-SPACK ?= spack -c config:install_status:false
+SPACK ?= {{ spack_script }} -c config:install_status:false
SPACK_INSTALL_FLAGS ?=
# This variable can be used to add post install hooks
diff --git a/share/spack/templates/mock-repository/package.pyt b/share/spack/templates/mock-repository/package.pyt
index 82bd50bd05..a4a52ec700 100644
--- a/share/spack/templates/mock-repository/package.pyt
+++ b/share/spack/templates/mock-repository/package.pyt
@@ -1,3 +1,5 @@
+from spack.package import *
+
class {{ cls_name }}(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/root-1.0.tar.gz"
diff --git a/share/spack/templates/modules/modulefile.tcl b/share/spack/templates/modules/modulefile.tcl
index d1593b8828..b162e3f62e 100644
--- a/share/spack/templates/modules/modulefile.tcl
+++ b/share/spack/templates/modules/modulefile.tcl
@@ -4,7 +4,7 @@
## {{ spec.short_spec }}
##
{% if configure_options %}
-## Configure options: {{ configure_options }}
+## Configure options: {{ configure_options | wordwrap(8192 - 23, True, "\n## ", 0) }}
##
{% endif %}