From 738619fd820756236bb2fe49202437617fc868ef Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 14 Nov 2025 18:29:52 -0600 Subject: [PATCH 01/15] Upgrade spack to v1.1.0 --- spack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack.sh b/spack.sh index 45e5a83f..5aedca8e 100644 --- a/spack.sh +++ b/spack.sh @@ -3,7 +3,7 @@ SPACK_ORGREPO="spack/spack" ## Spack github version, e.g. v0.18.1 or commit hash ## note: nightly builds will use e.g. releases/v1.0 -SPACK_VERSION="v1.0.2" +SPACK_VERSION="v1.1.0" ## Space-separated list of spack cherry-picks read -r -d '' SPACK_CHERRYPICKS <<- \ From 935ad1b938625d99120d449779bc910b335ec3c1 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sat, 15 Nov 2025 20:53:35 -0600 Subject: [PATCH 02/15] Create directory for Spack user scope configuration --- containers/debian/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 4546e083..2bc0586b 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -239,6 +239,7 @@ target=${target[${TARGETPLATFORM}]} spack config --scope site add "packages:all:require:[target=${target}]" spack config --scope site add "packages:all:target:[${target}]" spack config blame packages +mkdir -p $HOME/.spack/ spack config --scope user add "config:suppress_gpg_warnings:true" spack config --scope user add "config:build_jobs:${jobs}" spack config --scope user add "config:db_lock_timeout:${jobs}00" From 062c73fbee39bcba40c102824d35b116dcae8468 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 13:50:41 -0600 Subject: [PATCH 03/15] fix: concretize: unify: when_possible for new compiler treatment --- spack-environment/ci/spack.yaml | 2 ++ spack-environment/xl/spack.yaml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index eeb95abf..047eda5f 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -3,6 +3,8 @@ spack: - ../concretizer.yaml - ../packages.yaml - ../view.yaml + concretizer: + unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 2384ec06..af35d111 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -4,7 +4,7 @@ spack: - ../packages.yaml - ../view.yaml concretizer: - unify: when_possible # multiple epic versions + unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg From cb80e09b2229e1979614384e5f47e97b2461c1c4 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 13:52:13 -0600 Subject: [PATCH 04/15] fix: spack cherry-pick: py-flatbuffers: add v25.9.23 --- spack-packages.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spack-packages.sh b/spack-packages.sh index c304adae..8d41f0a8 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -44,6 +44,7 @@ bc25e5eb2f8f7a8733cdc10d92e9787358c82cfa c4d983b764d7b1ee2b63da79f5f25365ac61ce7a 44da889cc86bb8a5315c729a7c79f2c002c9c951 5c37f836753e8f9683fdc547f3661c5045abcbd1 +4f8d5f08c5b74e3be124f6180515cd78080d3b9f --- ## Optional hash table with comma-separated file list read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ @@ -89,3 +90,4 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## c4d983b764d7b1ee2b63da79f5f25365ac61ce7a: Julia: add v1.11.6 ## 44da889cc86bb8a5315c729a7c79f2c002c9c951: Julia: add v1.11.7 ## 5c37f836753e8f9683fdc547f3661c5045abcbd1: root: require openblas ~ilp64 symbol_suffix=none when ^openblas +## 4f8d5f08c5b74e3be124f6180515cd78080d3b9f: py-flatbuffers: add v25.9.23 From 9aaae1741a56d3232538ffe7b126c185929dbaf4 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 13:52:38 -0600 Subject: [PATCH 05/15] fix: packages: py-flatbuffers: require: @25.9.23 for py-setuptools --- spack-environment/packages.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index b13d8bfd..7db63954 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -356,6 +356,9 @@ packages: py-epic-capybara: require: - '@git.ef2a8790312b9b697655b28a07b353e601bfa3b8' + py-flatbuffers: + require: + - '@25.9.23:' py-hepunits: require: - '@2.3.2:' From a734c1f02d8eb976aa7a94a82cc3ef3a0ed81aa9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 18:39:33 -0600 Subject: [PATCH 06/15] doc: add comment indicating reason for ~/.spack --- containers/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 2bc0586b..28792437 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -239,7 +239,7 @@ target=${target[${TARGETPLATFORM}]} spack config --scope site add "packages:all:require:[target=${target}]" spack config --scope site add "packages:all:target:[${target}]" spack config blame packages -mkdir -p $HOME/.spack/ +mkdir -p $HOME/.spack/ # https://github.com/spack/spack/issues/51564 spack config --scope user add "config:suppress_gpg_warnings:true" spack config --scope user add "config:build_jobs:${jobs}" spack config --scope user add "config:db_lock_timeout:${jobs}00" From a8065f98507ef647a19b98f66af254ca761e3526 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 18:39:53 -0600 Subject: [PATCH 07/15] fix: add extra hinting for dd4hep to avoid duplication --- spack-environment/ci/spack.yaml | 4 ++-- spack-environment/xl/spack.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index 047eda5f..e289136e 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -11,7 +11,7 @@ spack: - afterburner - cmake - covfie - - dd4hep -ddeve + - dd4hep -ddeve -utilityapps - edm4hep - eigen - fastjet @@ -31,7 +31,7 @@ spack: - iwyu - jana2 - nopayloadclient - - npsim -geocad + - npsim -geocad ^dd4hep -ddeve -utilityapps - onnx - osg-ca-certs - podio diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index af35d111..47712942 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -23,7 +23,7 @@ spack: - cppcoro - dawn - dawncut - - dd4hep +ddeve + - dd4hep +ddeve +utilityapps - east - edm4hep - eic-smear @@ -60,7 +60,7 @@ spack: - nano - ninja - nopayloadclient - - npsim + - npsim ^dd4hep +ddeve +utilityapps - onnx - opencascade - osg-ca-certs From 5e8e53ce93c23f05619aa256604ecf31674ce04d Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 19:29:01 -0600 Subject: [PATCH 08/15] Disable fail-fast in build-push workflow --- .github/workflows/build-push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 4c102408..8f8d28cb 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -71,6 +71,7 @@ jobs: PLATFORM: linux/arm64 runner: ubuntu-24.04-arm arch: arm64 + fail-fast: false steps: - name: Checkout uses: actions/checkout@v4 @@ -297,6 +298,7 @@ jobs: - arch: arm64 runner: ubuntu-24.04-arm PLATFORM: linux/arm64 + fail-fast: false steps: - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@v1.3.1 From 2c517665adf4ce6ea61d09ad796894da3a38bfdf Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 20:51:33 -0600 Subject: [PATCH 09/15] fix: add extra hinting for dd4hep to avoid duplication --- spack-environment/ci/spack.yaml | 2 +- spack-environment/xl/spack.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index e289136e..a3c0acf2 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -6,7 +6,7 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts + - acts ^dd4hep -ddeve -utilityapps - actsvg - afterburner - cmake diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 47712942..39983364 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -6,7 +6,7 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts + - acts ^dd4hep +ddeve +utilityapps - actsvg - afterburner - autoconf From 2bacb4faf6198f42a260d8019786c015f911c9f7 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 21:31:37 -0600 Subject: [PATCH 10/15] fix: mv spec hints to package section --- spack-environment/ci/spack.yaml | 10 +++++++--- spack-environment/xl/spack.yaml | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index a3c0acf2..f2328191 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -6,12 +6,12 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts ^dd4hep -ddeve -utilityapps + - acts - actsvg - afterburner - cmake - covfie - - dd4hep -ddeve -utilityapps + - dd4hep - edm4hep - eigen - fastjet @@ -31,7 +31,7 @@ spack: - iwyu - jana2 - nopayloadclient - - npsim -geocad ^dd4hep -ddeve -utilityapps + - npsim -geocad - onnx - osg-ca-certs - podio @@ -72,3 +72,7 @@ spack: - snakemake - spdlog - xrootd + packages: + dd4hep: + require: + - -ddeve -utilityapps diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 39983364..af2f12a5 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -6,7 +6,7 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts ^dd4hep +ddeve +utilityapps + - acts - actsvg - afterburner - autoconf @@ -23,7 +23,7 @@ spack: - cppcoro - dawn - dawncut - - dd4hep +ddeve +utilityapps + - dd4hep - east - edm4hep - eic-smear @@ -60,7 +60,7 @@ spack: - nano - ninja - nopayloadclient - - npsim ^dd4hep +ddeve +utilityapps + - npsim - onnx - opencascade - osg-ca-certs @@ -127,3 +127,7 @@ spack: - valgrind - xrootd - xeyes + packages: + dd4hep: + require: + - +ddeve +utilityapps From 5be0f429fe1daaba532e945b0a83cebbca705ad0 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 11:29:18 -0600 Subject: [PATCH 11/15] fix: separate root requirements and apply per environment --- spack-environment/ci/spack.yaml | 7 ++----- spack-environment/packages_root_with_opengl.yaml | 4 ++++ spack-environment/packages_root_without_opengl.yaml | 4 ++++ spack-environment/xl/spack.yaml | 7 ++----- 4 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 spack-environment/packages_root_with_opengl.yaml create mode 100644 spack-environment/packages_root_without_opengl.yaml diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index f2328191..01191362 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -2,6 +2,7 @@ spack: include: - ../concretizer.yaml - ../packages.yaml + - ../packages_root_without_opengl.yaml - ../view.yaml concretizer: unify: when_possible # FIXME Using mixture of gcc and clang @@ -68,11 +69,7 @@ spack: - py-toml - py-uproot - py-vector - - root -opengl -webgui + - root - snakemake - spdlog - xrootd - packages: - dd4hep: - require: - - -ddeve -utilityapps diff --git a/spack-environment/packages_root_with_opengl.yaml b/spack-environment/packages_root_with_opengl.yaml new file mode 100644 index 00000000..ced3cc10 --- /dev/null +++ b/spack-environment/packages_root_with_opengl.yaml @@ -0,0 +1,4 @@ +packages: + root: + require: + - +opengl +webgui diff --git a/spack-environment/packages_root_without_opengl.yaml b/spack-environment/packages_root_without_opengl.yaml new file mode 100644 index 00000000..e57a100c --- /dev/null +++ b/spack-environment/packages_root_without_opengl.yaml @@ -0,0 +1,4 @@ +packages: + root: + require: + - ~opengl ~webgui diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index af2f12a5..fe57b784 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -2,6 +2,7 @@ spack: include: - ../concretizer.yaml - ../packages.yaml + - ../packages_root_with_opengl.yaml - ../view.yaml concretizer: unify: when_possible # FIXME Using mixture of gcc and clang @@ -116,7 +117,7 @@ spack: - py-wurlitzer - py-yapf - rivet - - root +opengl +webgui +x + - root - sherpa - simsipm - slurm sysconfdir=/etc/slurm @@ -127,7 +128,3 @@ spack: - valgrind - xrootd - xeyes - packages: - dd4hep: - require: - - +ddeve +utilityapps From 3b3b19a67d07673b349cbb5a17070f1d8fbf7a09 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 12:52:30 -0600 Subject: [PATCH 12/15] fix: avoid py-urllib3 where not desired --- spack-environment/packages.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 7db63954..e0790c07 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -350,6 +350,10 @@ packages: py-dask: require: - '@2024.7.1:' + - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer + py-dask-awkward: + require: + - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-dask-histogram: require: - '@2025.2.0:' @@ -439,6 +443,9 @@ packages: py-pyyaml: require: - '@6.0.2:' + py-requests: + require: + - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-rucio-clients: require: - '@37.3.0:' From 3b2d7f7cd718f7512a3ba575cea7174b0bd490ac Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 16:07:23 -0600 Subject: [PATCH 13/15] fix: build argument for spack duplicates --- containers/eic/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 833e3040..51053729 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -46,6 +46,7 @@ ARG ENV=xl ENV SPACK_ENV=/opt/spack-environment/${ENV} ARG SPACK_FLAGS="--backtrace" ARG SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" +ARG SPACK_DUPLICATE_ALLOWLIST="epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" ENV SPACK_COLOR="always" ENV GIT_TERMINAL_PROMPT=0 @@ -57,7 +58,7 @@ spack external find --not-buildable --scope env:${SPACK_ENV} --path /usr/local/c spack external find --scope env:${SPACK_ENV} llvm spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 | grep -v -w -e "\(epic\|llvm\|py-setuptools\|py-urllib3\)" \ +| uniq -D -f2 | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | tee /tmp/duplicates.txt if [ -s /tmp/duplicates.txt ] ; then echo "Duplicate packages found" @@ -193,7 +194,7 @@ if [ -n "${JUGGLER_SHA}" ] ; then fi spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 | grep -v -w -e "\(epic\|llvm\|py-setuptools\|py-urllib3\)" \ +| uniq -D -f2 | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | tee /tmp/duplicates.txt if [ -s /tmp/duplicates.txt ] ; then echo "Duplicate packages found" From 515068c5846304ed784652937beed96748ad4044 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 16:14:57 -0600 Subject: [PATCH 14/15] fix: remove py-urllib3 version requirements again --- spack-environment/packages.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index e0790c07..7db63954 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -350,10 +350,6 @@ packages: py-dask: require: - '@2024.7.1:' - - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer - py-dask-awkward: - require: - - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-dask-histogram: require: - '@2025.2.0:' @@ -443,9 +439,6 @@ packages: py-pyyaml: require: - '@6.0.2:' - py-requests: - require: - - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-rucio-clients: require: - '@37.3.0:' From c36ffa604003b6afb5a41fe03ef6adfa5bb859c1 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 24 Nov 2025 20:48:17 -0600 Subject: [PATCH 15/15] fix: packages: pyrobird ~batch Removed batch requirement for pyrobird and added xrootd. --- spack-environment/packages.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 7db63954..5dcab29c 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -330,7 +330,8 @@ packages: pyrobird: require: - '@0.1.23:' - - +batch +xrootd + - +xrootd + - ~batch # until 0.2.6, +batch requires py-pyppeteer which requires py-urllib3@1 pythia8: require: - '@8.315'