Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/build-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,15 @@ jobs:
runner: ubuntu-latest
PLATFORM: linux/amd64
target: builder_concretization_default
- BUILD_IMAGE: eic_
BUILD_TYPE: default
BUILDER_IMAGE: cuda_devel
RUNTIME_IMAGE: cuda_devel
ENV: tf
arch: amd64
runner: ubuntu-latest
PLATFORM: linux/amd64
target: builder_concretization_default
fail-fast: false
steps:
- name: Free Disk Space (Ubuntu)
Expand Down
1 change: 1 addition & 0 deletions containers/debian/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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/ # 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"
Expand Down
12 changes: 10 additions & 2 deletions containers/eic/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -57,7 +65,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"
Expand Down Expand Up @@ -194,7 +202,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"
Expand Down
5 changes: 3 additions & 2 deletions spack-environment/ci/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ spack:
include:
- ../concretizer.yaml
- ../packages.yaml
- ../packages_root_without_opengl.yaml
- ../view.yaml
specs:
- acts
- actsvg
- afterburner
- cmake
- covfie
- dd4hep -ddeve
- dd4hep
- edm4hep
- eigen
- fastjet
Expand Down Expand Up @@ -67,7 +68,7 @@ spack:
- py-toml
- py-uproot
- py-vector
- root -opengl -webgui
- root
- snakemake
- spdlog
- xrootd
9 changes: 7 additions & 2 deletions spack-environment/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,6 @@ packages:
- +python
llvm:
require:
- ~gold
- any_of: [~ipo, '@:']
madx:
require:
Expand Down Expand Up @@ -349,7 +348,10 @@ packages:
pyrobird:
require:
- '@0.1.23:'
- +batch +xrootd
- +xrootd
- spec: ~batch
when: '@:0.2.6'
message: "through at least 0.2.6, +batch requires py-pyppeteer which requires py-urllib3@1"
pythia8:
require:
- '@8.315'
Expand Down Expand Up @@ -378,6 +380,9 @@ packages:
py-epic-capybara:
require:
- '@git.ef2a8790312b9b697655b28a07b353e601bfa3b8'
py-flatbuffers:
require:
- '@25.9.23:'
py-hatchling:
require:
- '@1.27:'
Expand Down
4 changes: 4 additions & 0 deletions spack-environment/packages_root_with_opengl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
packages:
root:
require:
- +opengl +webgui
4 changes: 4 additions & 0 deletions spack-environment/packages_root_without_opengl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
packages:
root:
require:
- ~opengl ~webgui
5 changes: 3 additions & 2 deletions spack-environment/xl/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ spack:
include:
- ../concretizer.yaml
- ../packages.yaml
- ../packages_root_with_opengl.yaml
- ../view.yaml
concretizer:
unify: when_possible # multiple epic versions
Expand All @@ -23,7 +24,7 @@ spack:
- cppcoro
- dawn
- dawncut
- dd4hep +ddeve
- dd4hep
- east
- edm4hep
- eic-smear
Expand Down Expand Up @@ -117,7 +118,7 @@ spack:
- py-wurlitzer
- py-yapf
- rivet
- root +opengl +webgui +x
- root
- sherpa
- simsipm
- slurm sysconfdir=/etc/slurm
Expand Down
4 changes: 3 additions & 1 deletion spack-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ be6546b82b43d82edba804f1e362a709809ba537
f5742718da7bd1d078ddc8423011a82ef2e3c759
56e5282f7ef78180895b5d99db57d2a166b6d0e1
922b2f6011dbf01aebb332a1ebf949b105c74247
2ba80e697faf80613b038615b2345b7a777cc438
---
## Optional hash table with comma-separated file list
## For these commits, the cherry-pick will be restricted to the listed files only.
Expand Down Expand Up @@ -147,4 +148,5 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \
## be6546b82b43d82edba804f1e362a709809ba537: gaudi: allow newer fmt for v39
## f5742718da7bd1d078ddc8423011a82ef2e3c759: gaudi: workaround test-dependency bug with a when
## 56e5282f7ef78180895b5d99db57d2a166b6d0e1: celeritas: new versions 0.6.1, 0.6.2
## 922b2f6011dbf01aebb332a1ebf949b105c74247: celeritas: add v0.6.3
## 922b2f6011dbf01aebb332a1ebf949b105c74247: celeritas: add v0.6.3
## 2ba80e697faf80613b038615b2345b7a777cc438: py-flatbuffers: add v25.9.23
2 changes: 1 addition & 1 deletion spack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<- \
Expand Down
Loading