Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d7b3e43
some updates for python 3.12
eap Aug 10, 2026
a386b31
Python 3.12 changes
eap Aug 11, 2026
1899d4f
More config changes for python 3.13
eap Aug 13, 2026
ce28283
All the oneapi fixes
eap Aug 14, 2026
a0878a8
Merge branch 'develop' into feature/python-updates
eap Aug 18, 2026
d225520
Merge branch 'develop' into feature/python-updates
eap Aug 19, 2026
df6db6d
Merge remote-tracking branch 'origin/develop' into feature/python-upd…
eap Sep 11, 2026
8a0c542
Constrain ecflow@5.18 to py-pybind11@:2
eap Sep 14, 2026
18067be
Site spack updates with numpy 2.0 overrides and other fixes
eap Sep 14, 2026
840e2a1
Merge branch 'develop' into feature/python-updates
eap Sep 14, 2026
0e52543
integration tests ignore duplicate py-versioneer
eap Sep 14, 2026
4971939
Fix acorn
eap Sep 15, 2026
c75190a
Simplify constraints, remove unnecessary constraints
eap Sep 15, 2026
76968ca
Update configs/common/packages.yaml
eap Sep 16, 2026
a80e7c5
Update spack-packages to latest commit
eap Sep 16, 2026
447fdd5
Bug fixes for building neptune environments with oneapi and gcc
climbfuji Sep 17, 2026
2d7f317
Merge remote-tracking branch 'origin/develop' into feature/python-upd…
eap Sep 17, 2026
562120c
Merge pull request #2 from climbfuji/feature/python-updates-dom
eap Sep 17, 2026
cfcab56
Update configs/common/packages.yaml: pin py-bind11 separately from ec…
climbfuji Sep 17, 2026
57c9206
Merge pull request #3 from climbfuji/feature/python-updates-dom-2
eap Sep 17, 2026
b349fc5
Apply suggestion from @climbfuji
climbfuji Sep 17, 2026
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
86 changes: 42 additions & 44 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ 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.
# 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:
- '@1.18:'
- +zlib+ft+fc+png+pdf+gobject
cdo:
require:
- ~openmp
Expand Down Expand Up @@ -109,10 +118,11 @@ packages:
- +netcdf
- +png
- +tools
# uwtools@2.17: needs ecflow@5.16:; leave the version to the concretizer
ecflow:
require:
- '@5.11.4'
- +ui
- '@5.18:'
eckit:
require:
- '@2.0.7'
Expand Down Expand Up @@ -404,30 +414,37 @@ 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
# change: error in beautifulsoup4 setup command: use_2to3 is invalid
py-beautifulsoup4:
require:
- '@4.12.3:'
# Pin to avoid duplicates
py-pybind11:
require:
- '@:2'
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:
- ~tutorial
# Exclude @:2021.3.0 (broken configparser call), which its default +bag/+delayed variants select
py-dask:
require:
- '@42'
- '@2023.4.1:'
py-h5py:
require:
- ~mpi
Expand All @@ -453,65 +470,45 @@ packages:
# To avoid duplicate packages
py-numpy:
require:
- '@1'
- '@=2.4.6'
# 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
Comment thread
eap marked this conversation as resolved.
# 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
Comment thread
eap marked this conversation as resolved.
# 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 +518,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 +562,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
9 changes: 9 additions & 0 deletions configs/common/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,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 +69,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