From a40857cfb7493ef0746456a9599c702f906be21a Mon Sep 17 00:00:00 2001 From: John Parent Date: Wed, 7 Oct 2026 13:39:10 -0400 Subject: [PATCH 1/3] Spack Developer Stacks: Stacks for Spack development Factors out packages in the generic dev tools stack that were speficially there for Spack development into their own stacks Allows generic dev tools stack to move versions of those packages forward independent of Spack's needs Allows for more specificity in the Spack developer tools stack without limiting the general purpose dev tools stack Signed-off-by: John Parent --- .ci/gitlab/.gitlab-ci.yml | 69 +++++++++++++++++++ .../spack.yaml | 54 +++++++++++++++ stacks/developer-bootstrap-darwin/spack.yaml | 47 +++++++++++++ .../spack.yaml | 54 +++++++++++++++ .../spack.yaml | 8 +-- stacks/developer-tools-darwin/spack.yaml | 8 +-- .../spack.yaml | 3 +- 7 files changed, 230 insertions(+), 13 deletions(-) create mode 100644 stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml create mode 100644 stacks/developer-bootstrap-darwin/spack.yaml create mode 100644 stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml diff --git a/.ci/gitlab/.gitlab-ci.yml b/.ci/gitlab/.gitlab-ci.yml index e0223cdb7b2..8fc51c7fac1 100644 --- a/.ci/gitlab/.gitlab-ci.yml +++ b/.ci/gitlab/.gitlab-ci.yml @@ -499,6 +499,75 @@ developer-tools-darwin-build: - artifacts: True job: developer-tools-darwin-generate +########################################## +# Developer Tools needed to develop Spack +# arm linux +########################################## +.developer-bootstrap-aarch64-linux-gnu: + variables: + SPACK_CI_STACK_NAME: developer-bootstrap-aarch64-linux-gnu + +developer-bootstrap-aarch64-linux-gnu-generate: + extends: [ ".developer-bootstrap-aarch64-linux-gnu", ".generate-aarch64"] + image: ghcr.io/spack/aarch64-linux-gnu:v2024-12-18 + +developer-bootstrap-aarch64-linux-gnu-build: + extends: [ ".developer-bootstrap-aarch64-linux-gnu", ".build" ] + trigger: + << : *trigger_build + include: + - artifact: jobs_scratch_dir/developer-bootstrap-aarch64-linux-gnu/cloud-ci-pipeline.yml + job: developer-bootstrap-aarch64-linux-gnu-generate + needs: + - artifacts: True + job: developer-bootstrap-aarch64-linux-gnu-generate + +########################################### +# Developer tools needed to develop Spack +# x86_64_v3 linux +########################################### +.developer-bootstrap-x86_64_v3-linux-gnu: + variables: + SPACK_CI_STACK_NAME: developer-bootstrap-x86_64_v3-linux-gnu + +developer-bootstrap-x86_64_v3-linux-gnu-generate: + extends: [ ".developer-bootstrap-x86_64_v3-linux-gnu", ".generate-x86_64"] + image: ghcr.io/spack/x86_64_v3-linux-gnu:2024-12-12 + +developer-bootstrap-x86_64_v3-linux-gnu-build: + extends: [ ".developer-bootstrap-x86_64_v3-linux-gnu", ".build" ] + trigger: + << : *trigger_build + include: + - artifact: jobs_scratch_dir/developer-bootstrap-x86_64_v3-linux-gnu/cloud-ci-pipeline.yml + job: developer-bootstrap-x86_64_v3-linux-gnu-generate + needs: + - artifacts: True + job: developer-bootstrap-x86_64_v3-linux-gnu-generate + +########################################### +# Developer tools needed to develop Spack +# darwin +########################################### +.developer-bootstrap-darwin: + variables: + SPACK_CI_STACK_NAME: developer-bootstrap-darwin + +developer-bootstrap-darwin-generate: + tags: [ "macos-tahoe", "apple-clang-17", "aarch64-macos" ] + extends: [ ".developer-bootstrap-darwin", ".generate-base"] + +developer-bootstrap-darwin-build: + extends: [ ".developer-bootstrap-darwin", ".build" ] + trigger: + << : *trigger_build + include: + - artifact: jobs_scratch_dir/developer-bootstrap-darwin/cloud-ci-pipeline.yml + job: developer-bootstrap-darwin-generate + needs: + - artifacts: True + job: developer-bootstrap-darwin-generate + ######################################### # RADIUSS ######################################### diff --git a/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml b/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml new file mode 100644 index 00000000000..19faf62cc1c --- /dev/null +++ b/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml @@ -0,0 +1,54 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - target=aarch64 + - ~cuda + - ~rocm + c: + prefer: + - "gcc" + cxx: + prefer: + - "gcc" + concretizer: + unify: when_possible + reuse: false + static_analysis: true + definitions: + - py-dev: + - py-ruff@0.16.10 + - py-ty@0.0.85 + - py-pytest@9.0.3 + - python: + - python@3.10 + - python@3.14 + specs: + # spack developer tools + # pinned to versions CI uses + - group: rust + specs: + - rust@1.97.1 + - group: dev-rust + needs: [rust] + specs: + - matrix: + - - $py-dev + - - $^python + override: + packages: + all: + prefer: + - rust@1.97.1 + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/aarch64-linux-gnu:v2024-12-18 + + cdash: + build-group: Spack Development Tools aarch64-linux-gnu diff --git a/stacks/developer-bootstrap-darwin/spack.yaml b/stacks/developer-bootstrap-darwin/spack.yaml new file mode 100644 index 00000000000..d2fd3686efd --- /dev/null +++ b/stacks/developer-bootstrap-darwin/spack.yaml @@ -0,0 +1,47 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + packages: + all: + variants: + - build_type=MinSizeRel + require: + - target=aarch64 + concretizer: + unify: when_possible + reuse: false + definitions: + - py-dev: + - py-ruff@0.16.10 + - py-ty@0.0.85 + - py-pytest@9.0.3 + - python: + - python@3.10 + - python@3.14 + specs: + # spack developer tools + # pinned to versions CI uses + - group: rust + specs: + - rust@1.97.1 + - group: dev-rust + needs: [rust] + specs: + - matrix: + - - $py-dev + - - $^python + override: + packages: + all: + prefer: + - rust@1.97.1 + ci: + pipeline-gen: + - build-job: + variables: + CI_GPG_KEY_ROOT: /etc/protected-runner + + cdash: + build-group: Spack Development Tools Darwin diff --git a/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml b/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml new file mode 100644 index 00000000000..dd6471fda1e --- /dev/null +++ b/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml @@ -0,0 +1,54 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - target=x86_64_v3 + - ~cuda + - ~rocm + c: + prefer: + - "gcc" + cxx: + prefer: + - "gcc" + concretizer: + unify: when_possible + reuse: false + static_analysis: true + definitions: + - py-dev: + - py-ruff@0.16.10 + - py-ty@0.0.85 + - py-pytest@9.0.3 + - python: + - python@3.10 + - python@3.14 + specs: + # spack developer tools + # pinned to versions CI uses + - group: rust + specs: + - rust@1.97.1 + - group: dev-rust + needs: [rust] + specs: + - matrix: + - - $py-dev + - - $^python + override: + packages: + all: + prefer: + - rust@1.97.1 + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/x86_64_v3-linux-gnu:2024-12-12 + + cdash: + build-group: Spack Development Tools x86_64_v3-linux-gnu diff --git a/stacks/developer-tools-aarch64-linux-gnu/spack.yaml b/stacks/developer-tools-aarch64-linux-gnu/spack.yaml index e80a9f0a799..9a4d845a45c 100644 --- a/stacks/developer-tools-aarch64-linux-gnu/spack.yaml +++ b/stacks/developer-tools-aarch64-linux-gnu/spack.yaml @@ -47,6 +47,8 @@ spack: - py-mypy - py-black - py-flake8 + - py-ruff + - py-ty # cli dev tools - ripgrep - gh @@ -80,12 +82,6 @@ spack: - graphviz - doxygen - meson - # spack developer tools - # style - - "py-mypy@0.900: ^py-mypy-extensions@:1.0" - - py-pytest@9.0.3 - - py-ruff@0.15.0 - - py-ty@0.0.20 ci: pipeline-gen: diff --git a/stacks/developer-tools-darwin/spack.yaml b/stacks/developer-tools-darwin/spack.yaml index f6950a65761..5fbcdf25a8b 100644 --- a/stacks/developer-tools-darwin/spack.yaml +++ b/stacks/developer-tools-darwin/spack.yaml @@ -69,6 +69,8 @@ spack: - py-mypy - py-python-lsp-ruff - py-python-lsp-server + - py-ty + - py-ruff - typos - uncrustify - gopls @@ -92,12 +94,6 @@ spack: - gmake - ninja - meson - # spack developer tools - # style - - "py-mypy@0.900: ^py-mypy-extensions@:1.0" - - py-pytest@9.0.3 - - py-ruff@0.15.0 - - py-ty@0.0.20 ci: pipeline-gen: diff --git a/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml b/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml index eb709aed53e..6c90b163c20 100644 --- a/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml +++ b/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml @@ -50,6 +50,8 @@ spack: - py-mypy - py-black - py-flake8 + - py-ruff + - py-ty # cli dev tools - ripgrep - gh @@ -85,7 +87,6 @@ spack: - meson # spack developer tools # style - - "py-mypy@0.900: ^py-mypy-extensions@:1.0" - py-pytest@9.0.3 - py-ruff@0.15.0 - py-ty@0.0.20 From a3c129128ad40b4fe7905dfb8b395aae361bc70f Mon Sep 17 00:00:00 2001 From: John Parent Date: Mon, 19 Oct 2026 17:37:56 -0400 Subject: [PATCH 2/3] Bump python version Signed-off-by: John Parent --- stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml | 2 +- stacks/developer-bootstrap-darwin/spack.yaml | 2 +- stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml b/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml index 19faf62cc1c..1796e9f50a1 100644 --- a/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml +++ b/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml @@ -27,7 +27,7 @@ spack: - py-pytest@9.0.3 - python: - python@3.10 - - python@3.14 + - python@3.15 specs: # spack developer tools # pinned to versions CI uses diff --git a/stacks/developer-bootstrap-darwin/spack.yaml b/stacks/developer-bootstrap-darwin/spack.yaml index d2fd3686efd..7912c000427 100644 --- a/stacks/developer-bootstrap-darwin/spack.yaml +++ b/stacks/developer-bootstrap-darwin/spack.yaml @@ -19,7 +19,7 @@ spack: - py-pytest@9.0.3 - python: - python@3.10 - - python@3.14 + - python@3.15 specs: # spack developer tools # pinned to versions CI uses diff --git a/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml b/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml index dd6471fda1e..8c3c6489865 100644 --- a/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml +++ b/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml @@ -27,7 +27,7 @@ spack: - py-pytest@9.0.3 - python: - python@3.10 - - python@3.14 + - python@3.15 specs: # spack developer tools # pinned to versions CI uses From f86b51231c769d1e7e16b6a87031823d61810d67 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 23 Oct 2026 11:41:08 -0400 Subject: [PATCH 3/3] Workaround for broken python builds Signed-off-by: John Parent --- stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml | 2 +- stacks/developer-bootstrap-darwin/spack.yaml | 2 +- stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml b/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml index 1796e9f50a1..5b566f6c78e 100644 --- a/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml +++ b/stacks/developer-bootstrap-aarch64-linux-gnu/spack.yaml @@ -27,7 +27,7 @@ spack: - py-pytest@9.0.3 - python: - python@3.10 - - python@3.15 + - python@3.15+zstd specs: # spack developer tools # pinned to versions CI uses diff --git a/stacks/developer-bootstrap-darwin/spack.yaml b/stacks/developer-bootstrap-darwin/spack.yaml index 7912c000427..7e64f8dd49c 100644 --- a/stacks/developer-bootstrap-darwin/spack.yaml +++ b/stacks/developer-bootstrap-darwin/spack.yaml @@ -19,7 +19,7 @@ spack: - py-pytest@9.0.3 - python: - python@3.10 - - python@3.15 + - python@3.15+zstd specs: # spack developer tools # pinned to versions CI uses diff --git a/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml b/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml index 8c3c6489865..69d2aa0429f 100644 --- a/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml +++ b/stacks/developer-bootstrap-x86_64_v3-linux-gnu/spack.yaml @@ -27,7 +27,7 @@ spack: - py-pytest@9.0.3 - python: - python@3.10 - - python@3.15 + - python@3.15+zstd specs: # spack developer tools # pinned to versions CI uses