-
Notifications
You must be signed in to change notification settings - Fork 56
Spackify JEDI components for NEPTUNE-JEDI #1887
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
Open
climbfuji
wants to merge
45
commits into
JCSDA:develop
Choose a base branch
from
climbfuji:feature/jedi_components
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.
+785
−19
Open
Changes from all commits
Commits
Show all changes
45 commits
Select commit
Hold shift + click to select a range
429203f
Pin py-numpy to version 1 to avoid duplicate packages; update
climbfuji 53ce67f
Update syntax for preferred compiler in configs/common/packages_{clan…
climbfuji c2d22f5
Remove external compiler runtime packages for tier 2 sites bounty and…
climbfuji 05d4c75
Update submodule pointer for spack
climbfuji 8b32c9e
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 1d0ef40
Remove external/non-buildable runtime packages from .github/workflows…
climbfuji fd687ef
Set variants/versions for snappy and py-lxml in configs/common/packag…
climbfuji a22ae76
Attempt to fix spack-ext/lib/jcsda-emc/spack-stack/tests/test_setup_m…
climbfuji 523380e
Update .github/workflows/ubuntu-ci-x86_64-*.yaml: remove old prefer s…
climbfuji afda902
configs/common/packages.yaml: set variant generator=make for libaec t…
climbfuji c9c5fab
configs/common/packages_*.yaml: Upde syntax for preferred compilers
climbfuji ce21e16
spack-ext/lib/jcsda-emc/spack-stack/stack/meta_modules.py: Update met…
climbfuji 44bce84
Update spack-ext unit tests
climbfuji 5b1f3ad
Update .gitmodules and submodule pointer for repos/builtin for code r…
climbfuji e0ce0fa
Bump bufr-query to 0.0.5
climbfuji 7169e1e
Revert .gitmodules and update submodule pointer for repos/builtin
climbfuji 75a0d1f
Remove all external compiler runtime packages from all site configs
climbfuji 1e89d69
Revert .gitmodules for repos/builtin and update submodule pointer for…
climbfuji ea635da
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji fe7d1a5
configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml: add variants…
climbfuji ad72515
Apply suggestions from code review
climbfuji 7b6b850
Add JEDI components oops, ioda, ioda-converters, ropp-ufo, and ufo to…
climbfuji 1cab583
Merge branch 'feature/update_spack-stack-dev_from_develop' of https:/…
climbfuji 75c80ce
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 018b780
configs/common/packages_{gcc,oneapi}.yaml: use new syntax to specify …
climbfuji 414481e
Fix compiler dependencies (build-time only) in new JEDI packages
climbfuji e6dc22b
Turn off jedi variant for neptune-dev for GitHub actions workflows (n…
climbfuji 744ca1b
Clean up repos/spack_stack/spack_repo/spack_stack/packages/jedi_neptu…
climbfuji 8f534bf
Update versions/date tags of JEDI components, set versions in jedi-ne…
climbfuji ba6bd07
Add patch for repos/spack_stack/spack_repo/spack_stack/packages/ioda_…
climbfuji 0f3f083
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 5e23e33
Run unit tests minus failing ones for oops and ioda
climbfuji b52034e
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 6763fa1
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 515d35c
Update .gitmodules and submodule pointer repos/builtin for code revie…
climbfuji d303faa
Update JEDI packages: run ctests, current exclude list is with GCC
climbfuji 550ddb8
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji b78c5c6
In configs/templates/neptune-dev/spack.yaml configs/templates/neptune…
climbfuji 11dd51c
Update repos/spack_stack/spack_repo/spack_stack/packages/oops/package…
climbfuji 991d110
Update submodule pointer for repos/builtin
climbfuji 846157d
Update submodule pointer for repos/builtin
climbfuji f66d1a6
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji 2b28717
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
climbfuji b8fc8a4
Update submodule pointer for repos/builtin
climbfuji 95a0b95
Update new JEDI packages oops,ioda, ioda-converters, ropp-ufo, ufo: a…
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
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
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
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
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 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -23,3 +23,6 @@ packages: | |||||||||
| ectrans: | ||||||||||
| require: | ||||||||||
| - +fftw | ||||||||||
| oops: | ||||||||||
| require: | ||||||||||
| - ~mkl | ||||||||||
|
Collaborator
Author
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.
Suggested change
|
||||||||||
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
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
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
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
18 changes: 18 additions & 0 deletions
18
repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_cmake_import.patch
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,18 @@ | ||
| --- a/cmake/ioda-import.cmake.in | ||
| +++ b/cmake/ioda-import.cmake.in | ||
| @@ -65,6 +65,15 @@ | ||
| if(@odc_FOUND@) | ||
| find_dependency( odc 1.0.2 REQUIRED ) | ||
| endif() | ||
| + | ||
| +if(@bufr_FOUND@) | ||
| + find_dependency( bufr 12.0.1 REQUIRED ) | ||
| +endif() | ||
| + | ||
| +if(@bufr_query_FOUND@) | ||
| + find_dependency( bufr_query 0.0.4 REQUIRED ) | ||
| +endif() | ||
| + | ||
| # Header-only. Not exposed. | ||
| #find_dependency( Boost 1.64.0 ) | ||
|
|
111 changes: 111 additions & 0 deletions
111
repos/spack_stack/spack_repo/spack_stack/packages/ioda/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,111 @@ | ||
| # 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.cmake import CMakePackage, generator | ||
|
|
||
| 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.20250826", commit="6e76616001067384f7d0ca4341ad78e81527af8b") | ||
|
|
||
| patch("ioda_cmake_import.patch", when="@2.9.0.20250826") | ||
|
|
||
| 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') | ||
|
|
||
| generator("make") | ||
|
|
||
| # Project doesn't list "c" as a dependency in CMakeLists.txt, but cmake step fails w/o it | ||
| depends_on("c", type=("build")) | ||
| depends_on("cxx", type=("build")) | ||
| depends_on("fortran", type=("build")) | ||
|
|
||
| depends_on("boost@1.64.0:") | ||
| depends_on("bufr") | ||
| depends_on("bufr@12.0.1:", when="@2.9:") | ||
| depends_on("bufr-query@0.0.4:", when="@2.9:") | ||
| depends_on("cmake", type=("build")) | ||
| depends_on("cmake@3.14:", type=("build"), when="@2.9:") | ||
| depends_on("ecbuild", type=("build")) | ||
| depends_on("ecbuild@3.3.2:", type=("build"), when="@2.9:") | ||
| depends_on("eckit") | ||
| depends_on("eckit@1.23.0:", when="@2.9:") | ||
| depends_on("eigen") | ||
| depends_on("fckit") | ||
| depends_on("fckit@0.10.1:", when="@2.9:") | ||
| depends_on("gsl-lite") | ||
| depends_on("hdf5@1.12.0: +mpi") | ||
| depends_on("hdf5@1.14.0: +mpi", when="@2.9:") | ||
| depends_on("ioda-data", type=("build", "test")) | ||
| depends_on("ioda-data@2.9.0.20250805", type=("build", "test"), 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", type=("build", "test")) | ||
| depends_on("netcdf-cxx", when="@2.9:") | ||
| depends_on("odc", when="+odc") | ||
| depends_on("odc@1.4.6:", when="@2.9: +odc") | ||
| depends_on("oops+openmp", when="+openmp") | ||
| depends_on("oops~openmp", when="~openmp") | ||
| depends_on("oops@1.10", when="@2.9:") | ||
| depends_on("python") | ||
| depends_on("python@3.9:3.11", when="@2.9:") | ||
| depends_on("py-pybind11") | ||
| depends_on("py-pycodestyle", type=("build", "test")) | ||
| depends_on("py-netcdf4", type=("build", "test")) | ||
| depends_on("udunits") | ||
| depends_on("udunits@2.2.0:", when="@2.9:") | ||
|
|
||
| def cmake_args(self): | ||
| res = [ | ||
| self.define("BUILD_TESTING", self.run_tests), | ||
| self.define_from_variant("ENABLE_IODA_DOC", "doc"), | ||
| ] | ||
| return res | ||
|
|
||
| def setup_build_environment(self, env: EnvironmentModifications) -> None: | ||
| """This needs to be set at build time, not at test time, | ||
| to prevent IODA from downloading test data from S4""" | ||
| env.set("IODA_TESTFILES", self.spec["ioda-data"].prefix) | ||
|
|
||
| def check(self): | ||
| skipped_tests = None | ||
| with when("@2.9.0.20250826"): | ||
| # No time to deal with the bufr Python dependency | ||
| skipped_tests = [ | ||
| "test_ioda_bufr_python_encoder", | ||
| "test_ioda_bufr_python_parallel", | ||
| ] | ||
|
|
||
| ctest = Executable(self.spec["cmake"].prefix.bin.ctest) | ||
| with working_dir(self.build_directory): | ||
| if skipped_tests: | ||
| ctest("--timeout", "120", "-E", "|".join(skipped_tests)) | ||
| else: | ||
| ctest("--timeout", "120") | ||
|
|
||
| @run_after("install") | ||
| def fix_ioda_yaml_root_path(self): | ||
| with when("@2.9.0.20250826"): | ||
| filter_file( | ||
| join_path(self.build_directory, "share/test/testinput/"), | ||
| join_path(self.prefix, "share/ioda/yaml"), | ||
| join_path(self.prefix, "lib64/cmake/ioda/ioda-import.cmake"), | ||
| ) |
82 changes: 82 additions & 0 deletions
82
repos/spack_stack/spack_repo/spack_stack/packages/ioda_converters/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,82 @@ | ||
| # 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.cmake import CMakePackage, generator | ||
|
|
||
| from spack.package import * | ||
|
|
||
|
|
||
| class IodaConverters(CMakePackage): | ||
| """Interface for Observation Data Access""" | ||
|
|
||
| homepage = "https://github.com/JCSDA/ioda-converters" | ||
| git = "https://github.com/JCSDA/ioda-converters.git" | ||
|
|
||
| maintainers("climbfuji") | ||
|
|
||
| version("develop", branch="develop", no_cache=True) | ||
| version("0.0.1.20250830", commit="a91f432d9d50940910605e689cd1cf93a1ce3798") | ||
|
|
||
| patch( | ||
| "https://github.com/JCSDA/ioda-converters/commit/2c09857aac09b7dd9029fdd23e33f712933c40c4.patch?full_index=1", | ||
| sha256="c31342a5bcffdcb77a99ee5f16a5ba2d74e9d822f1fe2d44b3ee772765800d83", | ||
| when="@0.0.1.20250830", | ||
| ) | ||
|
|
||
| generator("make") | ||
|
|
||
| # Project doesn't list "c" as a dependency in CMakeLists.txt, but cmake step fails w/o it | ||
| depends_on("c", type=("build")) | ||
| depends_on("cxx", type=("build")) | ||
| depends_on("fortran", type=("build")) | ||
|
|
||
| extends("python") | ||
|
|
||
| depends_on("ecbuild", type=("build")) | ||
| depends_on("ecbuild@3.3.2:", type=("build"), when="@0.0.1:") | ||
|
|
||
| depends_on("bufr@12:") | ||
| depends_on("eccodes") | ||
| depends_on("eckit") | ||
| depends_on("eigen@3") | ||
| depends_on("gsl-lite") | ||
| depends_on("ioda") | ||
| depends_on("jedi-cmake", type=("build")) | ||
| depends_on("mpi") | ||
| depends_on("netcdf-cxx") | ||
| depends_on("netcdf-fortran") | ||
| depends_on("oops") | ||
| depends_on("py-cartopy") | ||
| depends_on("py-pybind11") | ||
|
|
||
| # For running checks | ||
| depends_on("nccmp", type=("build", "test")) | ||
| depends_on("py-pycodestyle", type=("build", "test")) | ||
| depends_on("py-eccodes", type=("build", "test")) | ||
| depends_on("py-h5py", type=("build", "test")) | ||
| depends_on("py-netcdf4", type=("build", "test")) | ||
| depends_on("py-pandas", type=("build", "test")) | ||
| depends_on("py-pyhdf", type=("build", "test")) | ||
| depends_on("py-pyyaml", type=("build", "test")) | ||
| depends_on("py-xarray", type=("build", "test")) | ||
|
|
||
| def cmake_args(self): | ||
| res = [ | ||
| self.define("BUILD_TESTING", self.run_tests), | ||
| ] | ||
| return res | ||
|
|
||
| def check(self): | ||
| skipped_tests = None | ||
| #with when("@0.0.1.20250830"): | ||
| # skipped_tests = [ | ||
| # ] | ||
| # | ||
| ctest = Executable(self.spec["cmake"].prefix.bin.ctest) | ||
| with working_dir(self.build_directory): | ||
| if skipped_tests: | ||
| ctest("--timeout", "120", "-E", "|".join(skipped_tests)) | ||
| else: | ||
| ctest("--timeout", "120") |
51 changes: 51 additions & 0 deletions
51
repos/spack_stack/spack_repo/spack_stack/packages/ioda_data/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,51 @@ | ||
| # 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.cmake import CMakePackage, generator | ||
|
|
||
| from spack.package import * | ||
|
|
||
|
|
||
| class IodaData(CMakePackage): | ||
| """Test data for IODA (Interface for Observation Data Access)""" | ||
|
|
||
| homepage = "https://github.com/JCSDA-internal/ioda-data" | ||
| git = "https://github.com/JCSDA-internal/ioda-data.git" | ||
|
|
||
| maintainers("climbfuji") | ||
|
|
||
| version("develop", branch="develop", no_cache=True) | ||
| version("2.9.0.20250805", commit="c6f8842648ea473eebc9f66d7c27e2204e5220d6") | ||
|
|
||
| # patch("ioda_cmake_import.patch", when="@2.9.0.20250826") | ||
| # | ||
| # 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') | ||
|
|
||
| generator("make") | ||
|
|
||
| depends_on("c", type=("build")) | ||
| depends_on("cxx", type=("build")) | ||
|
|
||
| depends_on("cmake", type=("build")) | ||
| depends_on("cmake@3.12:", type=("build"), when="@2.9:") | ||
| depends_on("ecbuild", type=("build")) | ||
| depends_on("ecbuild@3.3.2:", type=("build"), when="@2.9:") | ||
|
|
||
| def install(self, spec, prefix): | ||
| install_tree(self.stage.source_path, prefix) | ||
| # JEDI dependencies expect ioda test data in subdirectory | ||
| # ioda-data of the IODA_TESTFILES environment variable | ||
| mkdirp(join_path(prefix, "ioda-data")) | ||
| symlink( | ||
| join_path(prefix, "testinput_tier_1"), | ||
| join_path(prefix, "ioda-data", "testinput_tier_1"), | ||
| ) |
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.
this will be reverted anyway