-
Notifications
You must be signed in to change notification settings - Fork 53
Spack-ify JEDI packages for FALCON (neptune-jedi) #1684
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
climbfuji
wants to merge
8
commits into
JCSDA:develop
Choose a base branch
from
climbfuji:feature/falcon_jedi_packages
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
50e18c5
New spack-ext package oops
climbfuji 9def94c
New spack-ext package ioda
climbfuji b1068c1
New spack-ext package ropp-ufo; this is the ropp-submodule branch ...…
climbfuji 641a761
New spack-ext package ufo
climbfuji fd9cb9e
New spack-ext package falcon-env
climbfuji 37d8f5d
Add falcon-env to configs/templates/neptune-dev/spack.yaml
climbfuji 71481ce
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 2b5b4ec
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 61 additions & 0 deletions
61
spack-ext/repos/spack-stack/packages/falcon-env/package.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Copyright 2013-2024 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) | ||
|
||
import sys | ||
|
||
from spack.package import * | ||
|
||
|
||
class FalconEnv(BundlePackage): | ||
"""Development environment for NEPTUNE-JEDI (FALCON)""" | ||
|
||
# Fake URL | ||
homepage = "https://github.nrlmry.navy.mil/falcon/neptune-bundle" | ||
git = "https://github.nrlmry.navy.mil/falcon/neptune-bundle.git" | ||
|
||
maintainers("climbfuji", "sking112") | ||
|
||
version("1.0.0") | ||
|
||
variant("jedi", default=False, description="Build JEDI components") | ||
|
||
depends_on("neptune-env", type="run") | ||
depends_on("neptune-python-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", type="run") | ||
depends_on("ecbuild", type="run") | ||
depends_on("eccodes", type="run") | ||
depends_on("eckit", type="run") | ||
depends_on("ecmwf-atlas", type="run") | ||
depends_on("eigen", type="run") | ||
depends_on("fckit", type="run") | ||
depends_on("fftw-api", type="run") | ||
depends_on("flex", type="run") | ||
depends_on("git-lfs", type="run") | ||
#depends_on("gsibec", type="run") | ||
depends_on("gsl-lite", type="run") | ||
#depends_on("hdf", when="+hdf4", type="run") | ||
depends_on("jedi-cmake", type="run") | ||
depends_on("netcdf-cxx", type="run") | ||
depends_on("nccmp", type="run") | ||
depends_on("ncview", type="run") | ||
depends_on("nlohmann-json", type="run") | ||
depends_on("nlohmann-json-schema-validator", type="run") | ||
depends_on("odc", type="run") | ||
#depends_on("sp", type="run", when="^ip@:4") | ||
depends_on("udunits", type="run") | ||
|
||
with when("+jedi"): | ||
depends_on("oops", type="run") | ||
depends_on("crtm", type="run") | ||
depends_on("ioda", type="run") | ||
depends_on("ropp-ufo", type="run") | ||
depends_on("ufo", type="run") | ||
|
||
# There is no need for install() since there is no code. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# 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.package import * | ||
|
||
|
||
class Ioda(CMakePackage): | ||
"""Interface for Observation Data Access""" | ||
|
||
homepage = "https://github.com/JCSDA/ioda" | ||
git = "https://github.com/JCSDA/ioda.git" | ||
|
||
maintainers = ["climbfuji"] | ||
|
||
version("develop", branch="develop", no_cache=True) | ||
version("2.9.0.20241216", commit="7f0c6c058b189baa6a043c917920cc78a98a094b") | ||
|
||
variant("doc", default=False, description="Build IODA documentation") | ||
# Let's always assume IODA_BUILD_LANGUAGE_FORTRAN=on. | ||
# variant('fortran', default=True, description='Build the ioda Fortran interface') | ||
variant("odc", default=True, description="Build ODC bindings") | ||
# ioda has no explicit OpenMP calls, but header files from Eigen and oops do use openmp. | ||
variant("openmp", default=True, description="Build with OpenMP support") | ||
# Let's always BUILD_PYTHON_BINDINGS. | ||
# variant('python', default=True, description='Build the ioda Python interface') | ||
|
||
depends_on("[email protected]:") | ||
depends_on("bufr") | ||
depends_on("[email protected]:", when="@2.9:") | ||
# This is optional, and it needs netcdf-cxx - which versions? | ||
depends_on("bufr-query", when="@2.9:") | ||
depends_on("cmake", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@2.9:") | ||
depends_on("ecbuild", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@2.9:") | ||
depends_on("eckit") | ||
depends_on("[email protected]:", when="@2.9:") | ||
depends_on("eigen") | ||
depends_on("fckit") | ||
depends_on("[email protected]:", when="@2.9:") | ||
depends_on("gsl-lite") | ||
depends_on("[email protected]: +mpi") | ||
depends_on("[email protected]: +mpi", when="@2.9:") | ||
depends_on("jedi-cmake", type=("build")) | ||
depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "link", "run")) | ||
depends_on("mpi") | ||
depends_on("nccmp") | ||
# netcdf-cxx needed for bufr-query, but which version? | ||
depends_on("netcdf-cxx", when="@2.9:") | ||
depends_on("odc", when="+odc") | ||
depends_on("[email protected]:", when="@2.9: +odc") | ||
depends_on("oops+openmp", when="+openmp") | ||
depends_on("oops~openmp", when="~openmp") | ||
depends_on("[email protected]", when="@2.9:") | ||
depends_on("python") | ||
depends_on("[email protected]:3.11", when="@2.9:") | ||
depends_on("py-pybind11") | ||
depends_on("py-pycodestyle") | ||
depends_on("udunits") | ||
depends_on("[email protected]:", when="@2.9:") | ||
|
||
def cmake_args(self): | ||
res = [ | ||
self.define_from_variant("ENABLE_IODA_DOC", "doc"), | ||
] | ||
return res |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# 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.package import * | ||
|
||
|
||
class Oops(CMakePackage): | ||
"""Object Oriented Prediction System""" | ||
|
||
homepage = "https://github.com/JCSDA/oops" | ||
git = "https://github.com/JCSDA/oops.git" | ||
|
||
maintainers = ["climbfuji"] | ||
|
||
version("develop", branch="develop", no_cache=True) | ||
version("1.10.0.20241216", commit="58b068767ec4af2cbecfe86499b87a0d4723778f") | ||
|
||
variant("l95", default=True, description="Build LORENZ95 toy model") | ||
variant("mkl", default=False, description="Use MKL for LAPACK implementation (if available)") | ||
variant("openmp", default=True, description="Build oops with OpenMP support") | ||
variant("qg", default=True, description="Build QG toy model") | ||
variant('gptl', default=False, description='Use GPTL profiling library (if available)') | ||
|
||
depends_on("[email protected]:") | ||
depends_on("cmake", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@1.10:") | ||
depends_on("ecbuild", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@1.10:") | ||
depends_on("eckit") | ||
depends_on("[email protected]:", when="@1.10:") | ||
depends_on("ecmwf-atlas") | ||
depends_on("[email protected]:", when="@1.10:") | ||
depends_on("eigen") | ||
depends_on("fckit") | ||
depends_on("[email protected]:", when="@1.10:") | ||
depends_on('gptl', when='+gptl') | ||
depends_on("jedi-cmake", type=("build")) | ||
depends_on("lapack", when="~mkl") | ||
depends_on("mkl", when="+mkl") | ||
depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "link", "run")) | ||
depends_on("mpi") | ||
depends_on("netcdf-c+mpi") | ||
depends_on("netcdf-fortran") | ||
depends_on("nlohmann-json") | ||
depends_on("nlohmann-json-schema-validator") | ||
|
||
def cmake_args(self): | ||
res = [ | ||
self.define_from_variant("ENABLE_LORENZ95_MODEL", "l95"), | ||
self.define_from_variant("ENABLE_QG_MODEL", "qg"), | ||
self.define_from_variant("ENABLE_MKL", "mkl"), | ||
self.define_from_variant("OPENMP", "openmp"), | ||
self.define_from_variant("ENABLE_GPTL", "gptl"), | ||
] | ||
return res |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# 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.package import * | ||
|
||
|
||
class RoppUfo(CMakePackage): | ||
"""Unified Forward Operator Interface for Radio Occultation Pre-processing package (ROPP)""" | ||
|
||
# DH* TODO CHANGE BACK TO JCSDA-INTERNALq | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. !!! |
||
homepage = "https://github.nrlmry.navy.mil/jcsda/ropp-ufo" | ||
git = "https://github.nrlmry.navy.mil/jcsda/ropp-ufo.git" | ||
|
||
maintainers = ["climbfuji"] | ||
|
||
version("develop", branch="develop", no_cache=True) | ||
# this is the ropp-submodule branch ... update once merged | ||
version("11.0.20250612", commit="6a0bea80795a1bb50e5466a8f02ab6823b39d23b", submodules=True) | ||
|
||
depends_on("cmake", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@11:") | ||
depends_on("ecbuild", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@11:") | ||
depends_on("jedi-cmake", type=("build")) | ||
depends_on("netcdf-c") | ||
depends_on("netcdf-fortran") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# 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.package import * | ||
|
||
|
||
class Ufo(CMakePackage): | ||
"""Unified Forward Operator""" | ||
|
||
homepage = "https://github.com/JCSDA/ufo" | ||
git = "https://github.com/JCSDA/ufo.git" | ||
|
||
maintainers = ["climbfuji"] | ||
|
||
version("develop", branch="develop", no_cache=True) | ||
version("1.10.0.20241217", commit="49ddba60c484bc5b8bac81b660e3b1b0905cd314") | ||
|
||
variant("crtm-v2", default=True, description="Build CRTM v2 operator") | ||
variant("crtm-v3", default=False, description="Build CRTM v3 operator") | ||
# JCSDA-internal repository needed. | ||
variant("geos-aero", default=False, description="Build GEOS-AERO AOD operator") | ||
variant("gsw", default=True, description="Build marine observation operators") | ||
# JCSDA-internal repository is public, but there is no "release" of the code yet. | ||
variant( | ||
"oasim", default=False, description="Build with Ocean Atmosphere Spectral Irradiance Model" | ||
) | ||
# NRL-internal repository needed. | ||
variant("ropp", default=False, description="Build ROPP operator") | ||
# JCSDA-internal repository needed. | ||
variant("rttov", default=False, description="Build RTTOV operator") | ||
|
||
conflicts("+crtm-v2 +crtm-v3", msg="UFO: choose either CRTM v2 or v3, not both.") | ||
|
||
conflicts("+geos-aero", msg="UFO: GEOS-AERO to be implemented.") | ||
conflicts("+oasim", msg="UFO: OASIM to be implemented.") | ||
conflicts("+rttov", msg="UFO: RTTOV to be implemented.") | ||
|
||
depends_on("boost") | ||
depends_on("cmake", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@1.10:") | ||
depends_on("ecbuild", type=("build")) | ||
depends_on("[email protected]:", type=("build"), when="@1.10:") | ||
depends_on("eckit") | ||
depends_on("[email protected]:", when="@1.10:") | ||
depends_on("eigen") | ||
depends_on("fckit") | ||
depends_on("[email protected]:", when="@1.10:") | ||
depends_on("gsl-lite") | ||
depends_on("ioda") | ||
# DH* TODO | ||
depends_on("[email protected]", when="@1.10:") | ||
depends_on("jedi-cmake", type=("build")) | ||
depends_on("mpi") | ||
depends_on("netcdf-c+mpi") | ||
depends_on("netcdf-fortran") | ||
depends_on("oops") | ||
depends_on("[email protected]", when="@1.10") | ||
|
||
depends_on("crtm@v2", when="+crtm-v2") | ||
# DH* TODO UPDATE | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. !!! |
||
depends_on("crtm@=v2.4.1-jedi", when="@1.10 +crtm-v2") | ||
#depends_on("crtm@=v2.4.1-jedi.2", when="@1.10 +crtm-v2") | ||
# *DH | ||
|
||
depends_on("crtm@3", when="+crtm-v3") | ||
# DH* TODO UPDATE | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. !!! |
||
depends_on("crtm@=3.1.1.2", when="@1.10 +crtm-v3") | ||
#depends_on("crtm@=3.1.2", when="@1.10 +crtm-v3") | ||
# *DH | ||
|
||
# depends_on('geos-aero', when='+geos-aero') | ||
# depends_on('[email protected]', when='@1.7.0 +geos-aero') | ||
|
||
# depends_on('oasim', when='+oasim') | ||
# depends_on('[email protected]', when='@1.7.0 +oasim') | ||
|
||
depends_on("gsw", when="+gsw") | ||
depends_on("[email protected]", when="@1.7: +gsw") | ||
|
||
depends_on('ropp-ufo', when='+ropp') | ||
depends_on('[email protected]', when='@1.10 +ropp') | ||
|
||
# depends_on('rttov', when='+rttov') | ||
# depends_on('[email protected]', when='@1.7.0 +rttov') |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.