From 5b15a8de50cbac9f8ca62e2194119e12f5dd5db7 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 a7bee4b0c7965adf1b5e8d1a1024570acc6038ae Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sat, 15 Nov 2025 20:53:35 -0600 Subject: [PATCH 02/15] fix: 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 370098e9..9693884c 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -249,6 +249,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/ # workaround for Spack not creating config directory automatically in some versions (see 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 3e3e741f4433e0a79c3f856880790c7486487103 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 16:07:23 -0600 Subject: [PATCH 03/15] fix: build argument for spack duplicates --- containers/eic/Dockerfile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index d06d6257..3b7d5315 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -46,6 +46,14 @@ 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" +# The SPACK_DUPLICATE_ALLOWLIST specifies packages that are allowed to have duplicate concretizations. +# This is necessary for certain packages (e.g., epic, llvm, py-setuptools, py-urllib3, py-dask) due to +# their complex dependency trees or compatibility requirements. The new additions (py-dask-awkward, +# py-dask-histogram, py-distributed, py-requests) are included because they may be required in multiple +# versions or configurations by different packages in the environment, and allowing duplicates prevents +# build failures or conflicts during concretization. This list should be reviewed periodically to ensure +# only necessary packages are included. +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 @@ -55,7 +63,7 @@ set -e spack env activate --without-view --dir ${SPACK_ENV} 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" @@ -192,7 +200,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 77a6132f6d2efdbbe8173bdd47612533a45fc3e9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 25 Nov 2025 16:08:51 -0600 Subject: [PATCH 04/15] Remove llvm gold requirement from packages.yaml Removed llvm package requirement for gold. --- spack-environment/packages.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 1216251d..494fee5e 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -270,9 +270,9 @@ packages: require: - '@6.5.5' - +python - llvm: - require: - - any_of: [~gold, '@:'] + #llvm: + #require: + #- any_of: [~gold, '@:'] # FIXME any ipo requirement breaks llvm external reuse #- any_of: [~ipo, '@:'] madx: From c0c4100277723313e9a9bbfe3fdc64a96d27e945 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 28 Dec 2025 15:58:59 -0600 Subject: [PATCH 05/15] fix: concretizer: unify: when_possible due to py-numba ^llvm@15 --- spack-environment/tf/spack.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spack-environment/tf/spack.yaml b/spack-environment/tf/spack.yaml index 41562917..c3bf83c7 100644 --- a/spack-environment/tf/spack.yaml +++ b/spack-environment/tf/spack.yaml @@ -3,6 +3,8 @@ spack: - ../concretizer.yaml - ../packages.yaml - ../view.yaml + concretizer: + unify: when_possible # py-numba needs a different llvm than the one provided as external specs: - edm4hep - onnx From cde63bba598cfafea2b37ee628d2d5a2669dc421 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 28 Dec 2025 16:00:40 -0600 Subject: [PATCH 06/15] fix: packages: pin or constrain py-numpy and swig --- spack-environment/packages.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 494fee5e..e26566f1 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -444,7 +444,7 @@ packages: - '@0.61.0:' py-numpy: require: - - '@2.0.2:' + - '@2.2' # pin to avoid duplicates in eic_tf py-onnx: require: - '@1.17.0' @@ -543,6 +543,9 @@ packages: snakemake: require: - '@8.5.2' + swig: + require: + - '@4.1:' # constrain to avoid duplicates in eic_tf py-snakemake-storage-plugin-fs: require: - '@0.2.0:' From 57a0e4c6c4950c91d0fda02b9707f3a4ed3622dc Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 28 Dec 2025 16:18:47 -0600 Subject: [PATCH 07/15] fix: pass duplicate allow list with matrix; default to empty --- .github/workflows/build-push.yml | 9 +++++++++ .gitlab-ci.yml | 10 ++++++++++ containers/eic/Dockerfile | 31 +++++++++++++------------------ 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 21276e66..141d3686 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -353,6 +353,7 @@ jobs: runner: ubuntu-latest PLATFORM: linux/amd64 target: final + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: debian_stable_base @@ -362,6 +363,7 @@ jobs: runner: ubuntu-latest PLATFORM: linux/amd64/v3 target: final + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: debian_stable_base @@ -371,6 +373,7 @@ jobs: runner: ubuntu-24.04-arm PLATFORM: linux/arm64 target: final + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: debian_stable_base @@ -380,6 +383,7 @@ jobs: runner: ubuntu-latest PLATFORM: linux/amd64 target: final + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: debian_stable_base @@ -389,6 +393,7 @@ jobs: runner: ubuntu-latest PLATFORM: linux/amd64/v3 target: final + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: debian_stable_base @@ -398,6 +403,7 @@ jobs: runner: ubuntu-24.04-arm PLATFORM: linux/arm64 target: final + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: cuda_devel @@ -407,6 +413,7 @@ jobs: runner: ubuntu-latest PLATFORM: linux/amd64 target: builder_concretization_default + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3" - BUILD_IMAGE: eic_ BUILD_TYPE: default BUILDER_IMAGE: cuda_devel @@ -416,6 +423,7 @@ jobs: runner: ubuntu-latest PLATFORM: linux/amd64 target: builder_concretization_default + SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3" fail-fast: false steps: - name: Free Disk Space (Ubuntu) @@ -537,6 +545,7 @@ jobs: RUNTIME_IMAGE=${{ matrix.RUNTIME_IMAGE }} INTERNAL_TAG=${{ env.INTERNAL_TAG }} ENV=${{ matrix.ENV }} + SPACK_DUPLICATE_ALLOWLIST=${{ matrix.SPACK_DUPLICATE_ALLOWLIST }} cache-from: | type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REGISTRY_USER }}/buildcache:${{ matrix.BUILD_IMAGE }}${{ matrix.ENV }}-${{ matrix.BUILD_TYPE }}-${{ env.GITHUB_REF_POINT_SLUG }}-${{ matrix.arch }} type=registry,ref=${{ env.GH_REGISTRY }}/${{ env.GH_REGISTRY_USER }}/buildcache:${{ matrix.BUILD_IMAGE }}${{ matrix.ENV }}-${{ matrix.BUILD_TYPE }}-${{ env.GITHUB_BASE_REF_SLUG }}-${{ matrix.arch }} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2e57257..7737c96f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -473,6 +473,16 @@ eic: --build-arg JUGGLER_SHA=$(sh .ci/resolve_git_ref eic/juggler ${JUGGLER_VERSION:-main}) } --build-arg ENV=${ENV} + --build-arg SPACK_DUPLICATE_ALLOWLIST=$( + case "${ENV}" in + ci|ci_without_acts|dbg|jl|prod) + echo "epic|llvm|py-setuptools|py-urllib3" ;; + xl|cuda|tf) + echo "epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" ;; + *) + echo "epic|llvm|py-setuptools|py-urllib3" ;; + esac + ) --build-arg jobs=${JOBS} --build-context spack-environment=spack-environment --secret id=mirrors,src=mirrors.yaml diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 3b7d5315..31b2211d 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -46,14 +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" -# The SPACK_DUPLICATE_ALLOWLIST specifies packages that are allowed to have duplicate concretizations. -# This is necessary for certain packages (e.g., epic, llvm, py-setuptools, py-urllib3, py-dask) due to -# their complex dependency trees or compatibility requirements. The new additions (py-dask-awkward, -# py-dask-histogram, py-distributed, py-requests) are included because they may be required in multiple -# versions or configurations by different packages in the environment, and allowing duplicates prevents -# build failures or conflicts during concretization. This list should be reviewed periodically to ensure -# only necessary packages are included. -ARG SPACK_DUPLICATE_ALLOWLIST="epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" +ARG SPACK_DUPLICATE_ALLOWLIST="" ENV SPACK_COLOR="always" ENV GIT_TERMINAL_PROMPT=0 @@ -63,11 +56,12 @@ set -e spack env activate --without-view --dir ${SPACK_ENV} spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ -| tee /tmp/duplicates.txt -if [ -s /tmp/duplicates.txt ] ; then - echo "Duplicate packages found" - cat /tmp/duplicates.txt | while read status hash spec ; do +| uniq -D -f2 > /tmp/duplicates_all.txt +grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" /tmp/duplicates_all.txt > /tmp/duplicates_disallowed.txt +if [ -s /tmp/duplicates_disallowed.txt ] ; then + echo "Duplicate packages found:" + cat /tmp/duplicates_disallowed.txt + cat /tmp/duplicates_disallowed.txt | while read status hash spec ; do spack --backtrace spec --long /${hash} if [ "$prevspec" = "$spec" ] ; then spack diff /${hash} /${prevhash} @@ -200,11 +194,12 @@ if [ -n "${JUGGLER_SHA}" ] ; then fi spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ -| tee /tmp/duplicates.txt -if [ -s /tmp/duplicates.txt ] ; then - echo "Duplicate packages found" - cat /tmp/duplicates.txt | while read status hash spec ; do +| uniq -D -f2 > /tmp/duplicates_all.txt +grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" /tmp/duplicates_all.txt > /tmp/duplicates_disallowed.txt +if [ -s /tmp/duplicates_disallowed.txt ] ; then + echo "Duplicate packages found:" + cat /tmp/duplicates_disallowed.txt + cat /tmp/duplicates_disallowed.txt | while read status hash spec ; do spack --backtrace spec --long /${hash} if [ "$prevspec" = "$spec" ] ; then spack diff /${hash} /${prevhash} From e93ddf2e91183db0af32e38529951c650095ee39 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 28 Dec 2025 18:46:40 -0600 Subject: [PATCH 08/15] fix: avoid premature error on grep -v --- containers/eic/Dockerfile | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 31b2211d..cb675517 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -52,12 +52,14 @@ ENV GIT_TERMINAL_PROMPT=0 # Concretization (default environment) RUN < /tmp/duplicates_all.txt -grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" /tmp/duplicates_all.txt > /tmp/duplicates_disallowed.txt +| uniq -D -f2 \ +| /tmp/duplicates_all.txt \ +| grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ +| tee /tmp/duplicates_disallowed.txt if [ -s /tmp/duplicates_disallowed.txt ] ; then echo "Duplicate packages found:" cat /tmp/duplicates_disallowed.txt @@ -194,8 +196,10 @@ if [ -n "${JUGGLER_SHA}" ] ; then fi spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 > /tmp/duplicates_all.txt -grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" /tmp/duplicates_all.txt > /tmp/duplicates_disallowed.txt +| uniq -D -f2 \ +| /tmp/duplicates_all.txt \ +| grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ +| tee /tmp/duplicates_disallowed.txt if [ -s /tmp/duplicates_disallowed.txt ] ; then echo "Duplicate packages found:" cat /tmp/duplicates_disallowed.txt From 84c72470d631ea0e76deb1eeab59ddfe87640728 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 28 Dec 2025 19:08:49 -0600 Subject: [PATCH 09/15] fix: tee to duplicates_all.txt --- containers/eic/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index cb675517..3a6d0956 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -57,7 +57,7 @@ spack env activate --without-view --dir ${SPACK_ENV} spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ | uniq -D -f2 \ -| /tmp/duplicates_all.txt \ +| tee /tmp/duplicates_all.txt \ | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | tee /tmp/duplicates_disallowed.txt if [ -s /tmp/duplicates_disallowed.txt ] ; then @@ -197,7 +197,7 @@ fi spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ | uniq -D -f2 \ -| /tmp/duplicates_all.txt \ +| tee /tmp/duplicates_all.txt \ | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | tee /tmp/duplicates_disallowed.txt if [ -s /tmp/duplicates_disallowed.txt ] ; then From a36aa1b424350ed18149a367c5726b24beaf76fe Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 29 Dec 2025 13:15:43 -0600 Subject: [PATCH 10/15] fix: revert back from `set -ex` to `set -e` --- containers/eic/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 3a6d0956..8ed49da7 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -52,7 +52,7 @@ ENV GIT_TERMINAL_PROMPT=0 # Concretization (default environment) RUN < Date: Tue, 30 Dec 2025 14:32:19 -0600 Subject: [PATCH 11/15] fix: be explicit about language/compiler providers --- spack-environment/packages.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index e26566f1..e6db4856 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -31,10 +31,10 @@ packages: - '@44.3.0' - cxxstd=20 +dd4hep ~edm4hep +examples +fatras +geant4 +json +onnx +podio +python +svg +tgeo +pr4496 +pr4502 +pr4620 # ACTS requires same compiler as DD4hep since compiler options are reused - - spec: '%gcc' - when: '^dd4hep%gcc' - - spec: '%clang' - when: '^dd4hep%clang' + - spec: '%c=gcc %cxx=gcc' + when: '^dd4hep %c=gcc %cxx=gcc' + - spec: '%c=clang %cxx=clang' + when: '^dd4hep %c=clang %cxx=clang' actsvg: require: - '@0.4.56' @@ -495,7 +495,7 @@ packages: - '@0.13.2:' py-tensorflow: require: - - '%clang' + - '%cxx=clang' - '@2.20' py-toml: require: From 3394278b9811e53147ec49fe2463413f89dd72e8 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 5 Jan 2026 14:51:15 -0600 Subject: [PATCH 12/15] fix: rename scope site -> spack --- containers/debian/Dockerfile | 22 +++++++++++----------- containers/eic/Dockerfile | 12 ++++++------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 9693884c..4cd6bb02 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -231,7 +231,7 @@ if [ -n "${SPACKPACKAGES_CHERRYPICKS}" ] ; then done fi git -C ${SPACKPACKAGES_ROOT} gc --prune=all --aggressive -spack repo add --scope site "${SPACKPACKAGES_ROOT}/repos/spack_repo/builtin" +spack repo add --scope spack "${SPACKPACKAGES_ROOT}/repos/spack_repo/builtin" EOF ## Setup build configuration @@ -246,8 +246,8 @@ declare -A target=( ["linux/arm64"]="aarch64" ) target=${target[${TARGETPLATFORM}]} -spack config --scope site add "packages:all:require:[target=${target}]" -spack config --scope site add "packages:all:target:[${target}]" +spack config --scope spack add "packages:all:require:[target=${target}]" +spack config --scope spack add "packages:all:target:[${target}]" spack config blame packages mkdir -p $HOME/.spack/ # workaround for Spack not creating config directory automatically in some versions (see https://github.com/spack/spack/issues/51564) spack config --scope user add "config:suppress_gpg_warnings:true" @@ -257,7 +257,7 @@ spack config --scope user add "config:source_cache:/var/cache/spack" spack config --scope user add "config:install_tree:root:/opt/software" spack config --scope user add "config:ccache:true" spack config blame config -spack compiler find --scope site +spack compiler find --scope spack # Ensure GCC externals have LTO‑safe binutils configured. # # 1. LTO issue being worked around: @@ -291,9 +291,9 @@ EOF ## - allow llvm to be buildable for py-numba > py-llvmlite RUN < Date: Sun, 18 Jan 2026 09:30:55 -0600 Subject: [PATCH 13/15] fix: reduce duplicate allow list for cuda on eicweb --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7737c96f..5d47361c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -475,9 +475,9 @@ eic: --build-arg ENV=${ENV} --build-arg SPACK_DUPLICATE_ALLOWLIST=$( case "${ENV}" in - ci|ci_without_acts|dbg|jl|prod) + ci|ci_without_acts|cuda|dbg|jl|prod) echo "epic|llvm|py-setuptools|py-urllib3" ;; - xl|cuda|tf) + xl|tf) echo "epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" ;; *) echo "epic|llvm|py-setuptools|py-urllib3" ;; From 9a79ddb0fa29d8050a828a8aa4f32918d10c3e39 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 19 Jan 2026 15:43:30 -0600 Subject: [PATCH 14/15] feat: build eic_tf to target final on GitHub --- .github/workflows/build-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 141d3686..6970fe96 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -422,7 +422,7 @@ jobs: arch: amd64 runner: ubuntu-latest PLATFORM: linux/amd64 - target: builder_concretization_default + target: final SPACK_DUPLICATE_ALLOWLIST: "epic|llvm|py-setuptools|py-urllib3" fail-fast: false steps: From f3f74ac3e1b9dc6c6eaac945244bb867a3eeb740 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 21 Jan 2026 07:38:54 -0600 Subject: [PATCH 15/15] fix: abseil-cpp: require: cxxstd=17 --- spack-environment/packages.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index e6db4856..06c85873 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -26,6 +26,10 @@ packages: #- any_of: [+ipo, '@:'] - any_of: [build_system=cmake, '@:'] - any_of: [build_type=Release, '@:'] + abseil-cpp: + require: + # Without constraints on abseil-cpp, we end up with cxxstd=14 branches + - cxxstd=17 acts: require: - '@44.3.0'