Skip to content
Draft
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
3 changes: 3 additions & 0 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,9 @@ packages:
py-versioneer:
require:
- '@0.28:'
py-zarr:
require:
- '@3:'
# On a per-site basis, either set qt to buildable: false
# or add requirement to build with gcc for Intel oneAPI
qt:
Expand Down
4 changes: 3 additions & 1 deletion configs/sites/tier2/aws-ubuntu2404/README.md
Original file line number Diff line number Diff line change
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
4 changes: 3 additions & 1 deletion configs/sites/tier2/aws-ubuntu2404/packages_oneapi.yaml
Original file line number Diff line number Diff line change
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 @@ -26,6 +26,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,47 @@
# 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")
depends_on("py-zarr", 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