Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR upgrades the Spack package manager version from v1.0.2 to v1.1.0 to incorporate the latest upstream changes and improvements from the Spack project.
- Updates the
SPACK_VERSIONvariable to reference the v1.1.0 release - Maintains existing cherry-picks for custom patches
- No breaking changes or behavior modifications
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
d83f05f to
28b4f41
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
28b4f41 to
6893049
Compare
8cc24d5 to
8d3576f
Compare
8d3576f to
515068c
Compare
This comment was marked as resolved.
This comment was marked as resolved.
Removed llvm package requirement for gold.
| --build-arg ENV=${ENV} | ||
| --build-arg SPACK_DUPLICATE_ALLOWLIST=$( | ||
| case "${ENV}" in | ||
| ci|ci_without_acts|cuda|dbg|jl|prod) | ||
| echo "epic|llvm|py-setuptools|py-urllib3" ;; | ||
| 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" ;; | ||
| esac | ||
| ) |
There was a problem hiding this comment.
SPACK_DUPLICATE_ALLOWLIST is passed via command substitution and contains |, but the value is not quoted. After substitution, the shell will treat | as a pipeline operator (e.g. --build-arg ...=epic|llvm|...), which can break the docker buildx build invocation. Quote the substitution (e.g., assign to a variable and wrap in double quotes, or use --build-arg SPACK_DUPLICATE_ALLOWLIST="$(...)").
| | tee /tmp/duplicates_all.txt \ | ||
| | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | ||
| | tee /tmp/duplicates_disallowed.txt |
There was a problem hiding this comment.
When SPACK_DUPLICATE_ALLOWLIST is empty (default), the grep regex becomes () and grep -Evw will exclude every line, making the duplicate-package check a no-op. Consider skipping the grep step when the allowlist is empty, or default the allowlist to a pattern that matches nothing so duplicates are still caught for local builds.
| | tee /tmp/duplicates_all.txt \ | |
| | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | |
| | tee /tmp/duplicates_disallowed.txt | |
| | tee /tmp/duplicates_all.txt | |
| if [ -n "${SPACK_DUPLICATE_ALLOWLIST}" ] ; then | |
| grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" /tmp/duplicates_all.txt \ | |
| | tee /tmp/duplicates_disallowed.txt | |
| else | |
| cat /tmp/duplicates_all.txt \ | |
| | tee /tmp/duplicates_disallowed.txt | |
| fi |
| 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="" |
There was a problem hiding this comment.
SPACK_DUPLICATE_ALLOWLIST defaults to an empty string, but the subsequent grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" will then effectively match every line (empty regex) and filter out all duplicates, disabling the duplicate-package check for builds that don’t explicitly pass the build-arg. Consider setting a safe default (e.g., a regex that matches nothing, or the current CI allowlist) or making the grep conditional when the allowlist is empty.
| ARG SPACK_DUPLICATE_ALLOWLIST="" | |
| ARG SPACK_DUPLICATE_ALLOWLIST="a^" |
Briefly, what does this PR introduce?
Needs:
preferandrequiresforpackages:all#48This PR upgrades spack to v1.1.0, https://github.com/spack/spack/releases/tag/v1.1.0.
What kind of change does this PR introduce?
Please check if this PR fulfills the following:
Does this PR introduce breaking changes? What changes might users need to make to their code?
No.
Does this PR change default behavior?
No.