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
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu-ci-x86_64-gnu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ jobs:

# Concretize, check for duplicates and for correct compilers being used
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer
spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME}

# Add and update source cache
Expand Down Expand Up @@ -182,7 +182,7 @@ jobs:

# Concretize, check for duplicates and for correct compilers being used
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer
spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME}

# Install from cache
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ jobs:

# Concretize, check for duplicates and for correct compilers being used
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer
spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME}

# Add and update source cache
Expand Down Expand Up @@ -201,7 +201,7 @@ jobs:

# Concretize, check for duplicates and for correct compilers being used
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer
spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME}

# Install from cache
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu-ci-x86_64-oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ jobs:

# Concretize, check for duplicates and for correct compilers being used
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer
spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME}

# Add and update source cache
Expand Down Expand Up @@ -201,7 +201,7 @@ jobs:

# Concretize, check for duplicates and for correct compilers being used
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer
spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME}

# Install from cache
Expand Down
82 changes: 38 additions & 44 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@ packages:
require:
- '@0.0.5'
- +python
# cairo@1.18.0: is uses the meson recipe. The meson build enforces variants
# that are all-enabled or all-disabled. The "all-enabled" variants are set to help
# the concretizer resolve the correct version without disabling all variants.
cairo:
require:
- '@1.18:'
- +zlib+ft+fc+png+pdf
cdo:
require:
- ~openmp
Expand Down Expand Up @@ -109,10 +116,13 @@ packages:
- +netcdf
- +png
- +tools
# uwtools@2.17: needs ecflow@5.16:; leave the version to the concretizer
# ecflow@5.18 is not compatible with py-pybind11@3.0:
ecflow:
require:
- '@5.11.4'
- +ui
- '@5.18:'
- ^py-pybind11@:2

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this to avoid duplicates, or does the ecflow recipe potentially need to be updated?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to update the ecflow recipe.

eckit:
require:
- '@2.0.7'
Expand Down Expand Up @@ -404,8 +414,11 @@ packages:
# are removed, which itself is problematic.
python:
require:
- '@3.11'
- ~crypt
- '@3.13'
# The crypt variant only exists for python<=3.12 since the module was dropped.
# An unconditional ~crypt caps python at 3.12
- spec: ~crypt
when: '@:3.12'
# Not sure about the exact version requirements, but earlier
# versions (definitely 4.5.3 and earlier) don't work with newer
# py-setuptools (version 68 and later) because of a breaking
Expand All @@ -416,18 +429,18 @@ packages:
py-cartopy:
require:
- +plotting
# See py-pycparser
py-click:
require:
- '@8.1.8'
# Pin py-colorama to avoid duplicate packages, hopefully can be removed soon
py-colorama:
require:
- '@0.4.6'
# Pin to version 42 to avoid maturin dependency that breaks Intel oneAPI builds
py-cryptography:
# No tutorials extras; prevent py-pandas-datareader dep with broken configparser call
py-arch:
require:
- '@42'
- ~tutorial
# Exclude @:2021.3.0 (broken configparser call), which its default +bag/+delayed variants select
py-dask:
require:
- '@2023.4.1:'
py-h5py:
require:
- ~mpi
Expand All @@ -453,65 +466,45 @@ packages:
# To avoid duplicate packages
py-numpy:
require:
- '@1'
- '@2'
# Restrict py-pandas to older versions compatible with py-numpy and py-xarray
py-pandas:
require:
- '@:2'
# See py-pycparser
py-pandas-datareader:
require:
- '@:0.10'
# py-versioneer is unavoidably duplicated by pins in py-pyogrio (@0.28) and
# py-partd (@0.29). py-pandas is unconstrained and can further cascade splits
# into py-xarray/met/metplus/jedi-base-env. This constraints py-pandas to @0.28

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# into py-xarray/met/metplus/jedi-base-env. This constraints py-pandas to @0.28
# into py-xarray/met/metplus/jedi-base-env. This constraints py-versioneer to @0.28

# (shared with py-pyogrio) so only py-versioneer itself is duplicated.
- ^py-versioneer@0.28

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hopefully we get away with duplicates of py-versioneer.

We may be able to relax one of the package constraints; quite often, these are too restrictive and simply in there because that's what the author tested with. It seems unlikely that 0.28 and 0.29 are that incompatible ...

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, either way this is an upstream change that we are stuck with until fixed upstream. For the moment this feels forgivable since its only a build dep and at least I can prevent it from causing a large-scale package split.

# To avoid duplicate packages
py-poetry-core:
require:
- '@1.7'
# See py-pycparser
py-pooch:
require:
- '@1.7.0'
# Need older version of py-pycparser until we can update setuputils to >= 77 ?
# https://github.com/pydata/xarray/issues/10588
py-pycparser:
require:
- '@2.21'
# Need at least py-pygithub@2.7 for self-hosted runner management
py-pygithub:
require:
- '@2.7:'
# See py-pycparser
py-imageio:
require:
- '@2.37.0'
# This version builds with Intel oneAPI compilers, newer versions don't
py-pyogrio:
require:
- '@0.9.0'
# See py-pycparser
py-pyparsing:
require:
- '@3.1.2'
# To avoid duplicate packages
py-python-dateutil:
require:
- '@2'
# To avoid duplicate packages
# To avoid duplicate packages, pin to recent version.
py-requests:
require:
- '@2.32.3'
- '@2.32:'
# To avoid duplicate packages
py-ruamel-yaml:
require:
- '@0.17.16'
# https://github.com/JCSDA/spack-stack/issues/1942
# https://github.com/spack/spack-packages/issues/3695
py-setuptools:
require:
- '@73.0.1'
# See py-pycparser
py-sphinxcontrib-bibtex:
require:
- '@2.5.0'
# NOTE: py-setuptools was pinned @73.0.1 for the py3.11 stack; removed for the
# py3.12/numpy2 migration since modern packages (e.g. py-xarray@2025.7) require
# py-setuptools@77.0.3:. Re-evaluate issue #3695 if setuptools duplicates recur.
py-torch:
require:
- +custom-protobuf
Expand All @@ -521,10 +514,10 @@ packages:
require:
- '@1.26.20'
# OR - '@1.26.12' ?
# To avoid duplicate packages
# Not '@=0.28'; py-pyogrio needs 0.28 and py-partd/py-dask 0.29, build-only so a split is fine
py-versioneer:
require:
- '@=0.28'
- '@0.28:'
# On a per-site basis, either set qt to buildable: false
# or add requirement to build with gcc for Intel oneAPI
qt:
Expand Down Expand Up @@ -565,9 +558,10 @@ packages:
upp:
require:
- '@10.0.10'
# Upper bound keeps the branch version 'main' out; spack sorts it above 2.x
uwtools:
require:
- '@2.7.2'
- '@2.17:2'
w3emc:
require:
- '@2.13.0'
Expand Down
14 changes: 14 additions & 0 deletions configs/common/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ packages:
bison:
require:
- '%c,cxx=gcc'
# pango/harfbuzz/gobject-introspection need cairo+gobject; without pinning it
# the concretizer builds cairo both ways and the two collide on one modulefile.
cairo:
require:
- +gobject
Comment on lines +29 to +33

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move this into common/packages.yaml ?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am trying that in my local test environments.

cmake:
require:
- '%c,cxx=gcc'
Expand Down Expand Up @@ -56,6 +61,10 @@ packages:
nco:
require:
- '%c,cxx=gcc'
# The py-numpy cannot be built with oneAPI.
py-numpy:
require:
- '%c,cxx=gcc'
Comment thread
eap marked this conversation as resolved.
oops:
require:
- +mkl
Expand All @@ -65,6 +74,11 @@ packages:
patchelf:
require:
- '%c=gcc'
# Require a recent py-sphinx; unpinned the concretizer prefers 6.X. The old sphinx creates version
# splits in py-attrs, py-docutils, and py-eccodes affecting jedi-base-env and jedi-fv3-env.
py-sphinx:
require:
- '@9:'
py-maturin:
require:
- '%c=gcc'
Expand Down
2 changes: 1 addition & 1 deletion configs/sites/tier1/acorn/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ packages:
require:: ['%oneapi']
py-colorama:: {}
py-pandas:
require:: ['~excel']
require: ['~excel']
subversion:
require: ['~serf', '+pic']
zlib-ng:
Expand Down
2 changes: 1 addition & 1 deletion configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ packages:
py-maturin:
require: ['%gcc']
py-numpy:
require:: ['@1.26', '%gcc']
require: ['%gcc']
py-scipy:
require: ['@1.10.1']
qt:
Expand Down
2 changes: 0 additions & 2 deletions configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ packages:
require: ['build_system=meson']
proj:
require: ['@9.4.1']
py-numpy::
require:: ['@1.26']
subversion:
require: ['%gcc']
zlib-ng:
Expand Down
1 change: 1 addition & 0 deletions configs/sites/tier1/aws-pcluster/packages_intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,6 @@ packages:
- '@1.4.2 ~mkl'
py-numpy:
require::
- '@2'
- '^openblas'
# *DH
3 changes: 0 additions & 3 deletions configs/sites/tier1/container/packages.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
packages:
all:
target: [x86_64_v3]
awscli-v2:
require:
- "@2.22.4"
cairo:
variants: +pic
ewok-env:
Expand Down
1 change: 1 addition & 0 deletions configs/sites/tier1/hera/packages_intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@ packages:
- '@1.4.2 ~mkl'
py-numpy:
require::
- '@2'
- '^openblas'
# *DH
2 changes: 1 addition & 1 deletion configs/sites/tier1/hera/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ packages:
- '@1.4.2 ~mkl'
py-numpy:
require::
- '@1.26'
- '@2'
- '^openblas'
# *DH
cdo:
Expand Down
1 change: 1 addition & 0 deletions configs/sites/tier1/noaa-gcloud/packages_intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@ packages:
- '@1.4.2 ~mkl'
py-numpy:
require::
- '@2'
- '^openblas'
# *DH
2 changes: 1 addition & 1 deletion configs/sites/tier1/noaa-gcloud/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ packages:
- '@1.4.2 ~mkl'
py-numpy:
require::
- '@1.26'
- '@2'
- '^openblas'
# *DH
cdo:
Expand Down
2 changes: 1 addition & 1 deletion configs/sites/tier1/wcoss2/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ packages:
require:: ['@4.9.2', '+mpi', '~parallel-netcdf', '~dap', '~blosc', '~szip']
py-colorama:: {}
py-pandas:
require:: ['~excel']
require:: ['~excel', '@:2', '^py-versioneer@0.28']
scotch:
require::
- '@7.0.7'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ packages:
py-maturin:
require: ['%gcc']
py-numpy:
require:: ['@1.26', '%gcc']
require:: ['@2', '%gcc']
py-scipy:
require: ['@1.10.1']
qt:
Expand Down
2 changes: 0 additions & 2 deletions configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,6 @@ packages:
require: ['build_system=meson']
proj:
require: ['@9.4.1']
py-numpy::
require:: ['@1.26']
subversion:
require: ['%gcc']
zlib-ng:
Expand Down
Loading
Loading