Skip to content
Merged
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 configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -479,13 +479,13 @@ packages:
py-pandas:
require:
- '@:2'
prefer:
- '~performance'
# 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-versioneer to @0.28
# (shared with py-pyogrio) so only py-versioneer itself is duplicated.
- ^py-versioneer@0.28
prefer:
- '~performance'

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.

This got added in the last change and ended up setting py-versioneer@0.28 as preferred, I had to move it down to make sure py-versioneer@0.28 stayed in the require: block.

# To avoid duplicate packages
py-poetry-core:
require:
Expand Down
2 changes: 1 addition & 1 deletion configs/sites/tier1/container/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ packages:
intel-oneapi-compilers:
buildable: false
externals:
- spec: intel-oneapi-compilers@2025.3.0
- spec: intel-oneapi-compilers@2025.3.0 +fix_rt_linkage
prefix: /opt/intel/oneapi
modules:
- umf/1.0.2
Expand Down
6 changes: 4 additions & 2 deletions configs/sites/tier2/aws-ubuntu2404/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ pico ${PWD}/site/packages.yaml
# intel-oneapi-compilers:
# buildable: false
# externals:
# - spec: intel-oneapi-compilers@2026.1.1
# - spec: intel-oneapi-compilers@2026.1.1 +fix_rt_linkage
# prefix: /opt/intel/oneapi
# modules:
# - umf/1.1.0
Expand Down Expand Up @@ -362,9 +362,11 @@ cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
- 'cxxflags="-O1"'
jedi-base-env:
require:
- ~bufrquery
- +fftw
- +hdf4
jedi-python-env:
require:
- ~bufrquery
py-pyyaml:
require:
- +libyaml
Expand Down
4 changes: 3 additions & 1 deletion configs/sites/tier2/aws-ubuntu2404/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ packages:
require:
- "@1.7.2"
jedi-base-env:
require: [+fftw, +hdf4, +bufrquery]
require: [+fftw, +hdf4]
jedi-python-env:
require: [+bufrquery]

# System packages.
autoconf:
Expand Down
6 changes: 4 additions & 2 deletions configs/sites/tier2/aws-ubuntu2404/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ packages:
intel-oneapi-compilers:
buildable: false
externals:
- spec: intel-oneapi-compilers@2026.1.1
- spec: intel-oneapi-compilers@2026.1.1 +fix_rt_linkage
prefix: /opt/intel/oneapi
modules:
- umf/1.1.0
Expand Down Expand Up @@ -84,7 +84,9 @@ packages:

# Package constraints.
jedi-base-env:
require: [+fftw, +hdf4, +bufrquery]
require: [+fftw, +hdf4]
jedi-python-env:
require: [+bufrquery]
eccodes:
require:
- "jp2k=jasper"
Expand Down
1 change: 1 addition & 0 deletions configs/templates/skylab-dev/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ spack:
- jedi-geos-env ^esmf@=8.9.1
- jedi-mpas-env
- jedi-neptune-env ^esmf@=9.0.0b18
- jedi-python-env
- jedi-tools-env
- jedi-ufs-env ^esmf@=8.8.0
- neptune-env ^esmf@=9.0.0b18
Expand Down
1 change: 1 addition & 0 deletions configs/templates/unified-dev/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ spack:
- jedi-geos-env ^esmf@=9.0.0b18
- jedi-mpas-env
- jedi-neptune-env ^esmf@=9.0.0b18
- jedi-python-env
- jedi-ufs-env ^esmf@=8.8.0
- neptune-env ^esmf@=9.0.0b18
- neptune-python-env ^esmf@=9.0.0b18
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class AiEnv(BundlePackage):
version("1.0.0")

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
depends_on("py-torch", type="run")

# There is no need for install() since there is no code.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class EwokEnv(BundlePackage):
)

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
depends_on("awscli-v2", type="run")
depends_on("py-boto3", type="run")
depends_on("py-cartopy", type="run")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class GmaoSwellEnv(BundlePackage):

# Main JEDI modules
depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")

# Add CRTM 2.4.0
depends_on("crtm", type="run")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,12 @@ class JediBaseEnv(BundlePackage):
# Need to find a free fftw provider for fftw-api ...
variant("fftw", default=True, description="Build fftw")
variant("hdf4", default=True, description="Build hdf4 library and python hdf module")
variant("bufrquery", default=True, description="Build bufr-query library")

depends_on("libbacktrace", type="run")
depends_on("base-env", type="run")
depends_on("bison", type="run")
depends_on("blas", type="run")
depends_on("boost", type="run")
depends_on("bufr", type="run")
depends_on("bufr-query", when="+bufrquery", type="run")
# Force users to load manually
# depends_on("crtm@v2.4.1-jedi", type="run")
depends_on("ecbuild", type="run")
Expand All @@ -54,19 +51,9 @@ class JediBaseEnv(BundlePackage):
#depends_on("sp", type="run", when="^ip@:4")
depends_on("udunits", type="run")

# Python packages
depends_on("py-eccodes", type="run")
depends_on("py-f90nml", type="run")
depends_on("py-h5py", type="run")
depends_on("py-netcdf4", type="run")
depends_on("py-pandas", type="run")
depends_on("py-pycodestyle", type="run")
# Python packages. Everything else moved to jedi-python-env; py-pybind11
# stays because core JEDI packages link its headers.
depends_on("py-pybind11", type="run")
depends_on("py-pyhdf", when="+hdf4", type="run")
depends_on("py-python-dateutil", type="run")
depends_on("py-pyyaml", type="run")
depends_on("py-scipy", type="run")
depends_on("py-xarray", type="run")

conflicts(
"platform=darwin %gcc",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class JediGeosEnv(BundlePackage):
version("1.0.0")

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
#depends_on("blas", type="run")
depends_on("mepo", type="run")
depends_on("esmf", type="run")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class JediNeptuneEnv(BundlePackage):
variant("jedi", default=False, description="Build JEDI components required for JEDI-NEPTUNE")

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
depends_on("neptune-env", type="run")
depends_on("neptune-python-env", type="run")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack_repo.builtin.build_systems.bundle import BundlePackage
from spack.package import *


class JediPythonEnv(BundlePackage):
"""Python dependencies for JEDI applications, on top of jedi-base-env"""

homepage = "https://github.com/jcsda/spack-stack"
git = "https://github.com/jcsda/spack-stack.git"

maintainers("eap", "srherbener")

version("1.0.0")

# Mirrors the jedi-base-env variant so py-pyhdf tracks the hdf4 library
variant("hdf4", default=True, description="Build hdf4 library and python hdf module")
variant("bufrquery", default=True, description="Build bufr-query library")

depends_on("jedi-base-env", type="run")
depends_on("jedi-base-env +hdf4", when="+hdf4", type="run")
depends_on("jedi-base-env ~hdf4", when="~hdf4", type="run")

# bufr is built +python in configs/common/packages.yaml, so it carries a
# py-numpy run dependency; bufr-query is its python-bindings companion.
depends_on("bufr", type="run")
depends_on("bufr-query", when="+bufrquery", type="run")

# Python packages
depends_on("py-eccodes", type="run")
depends_on("py-f90nml", type="run")
depends_on("py-h5py", type="run")
depends_on("py-netcdf4", type="run")
depends_on("py-pandas", type="run")
depends_on("py-pycodestyle", type="run")
depends_on("py-pyhdf", when="+hdf4", type="run")
depends_on("py-python-dateutil", type="run")
depends_on("py-pyyaml", type="run")
depends_on("py-scipy", type="run")
depends_on("py-xarray", type="run")

# There is no need for install() since there is no code.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class JediUfsEnv(BundlePackage):
version("1.0.0")

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
depends_on("fms +gfs_phys constants=GFS", type="run")

depends_on("bacio", type="run")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class JediUmEnv(BundlePackage):
version("1.0.0")

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
depends_on("ectrans", type="run")
depends_on("fiat", type="run")
depends_on("shumlib", type="run")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class SocaEnv(BundlePackage):
version("1.0.0")

depends_on("jedi-base-env", type="run")
depends_on("jedi-python-env", type="run")
depends_on("nco", type="run")

# There is no need for install() since there is no code.
Loading