Skip to content

Commit a944dc9

Browse files
authored
JEDI components update July 2026 (#2065)
This PR updates the JEDI components oops, ioda, ropp-ufo, and ufo to newer hashes used in NEPTUNE/FALCON development as of July 2026.
1 parent c4cfa21 commit a944dc9

7 files changed

Lines changed: 157 additions & 31 deletions

File tree

repos/spack_stack/spack_repo/spack_stack/packages/ioda/package.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ class Ioda(CMakePackage):
1717
maintainers("climbfuji")
1818

1919
version("develop", branch="develop", no_cache=True)
20+
version("2.9.0.20260326", commit="9e0eb39fb87ae66667ef966cf27b62d5a804cc54")
2021
version("2.9.0.20250826", commit="6e76616001067384f7d0ca4341ad78e81527af8b")
2122

2223
patch("ioda_cmake_import.patch", when="@2.9.0.20250826")
23-
patch("ioda_yaml_root.patch", when="@2.9.0.20250826")
24+
patch("ioda_yaml_root.patch", when="@2.9.0.20250826:")
2425

2526
variant("doc", default=False, description="Build IODA documentation")
2627
# Let's always assume IODA_BUILD_LANGUAGE_FORTRAN=on.
@@ -43,7 +44,8 @@ class Ioda(CMakePackage):
4344
depends_on("bufr@12.0.1:", when="@2.9:")
4445
depends_on("bufr-query@0.0.4:", when="@2.9:")
4546
depends_on("cmake", type=("build"))
46-
depends_on("cmake@3.14:", type=("build"), when="@2.9:")
47+
depends_on("cmake@3.15:", type=("build"), when="@2.9.0.20260326")
48+
depends_on("cmake@3.14:", type=("build"), when="@2.9.0.20250826")
4749
depends_on("ecbuild", type=("build"))
4850
depends_on("ecbuild@3.3.2:", type=("build"), when="@2.9:")
4951
depends_on("eckit")
@@ -55,7 +57,8 @@ class Ioda(CMakePackage):
5557
depends_on("hdf5@1.12.0: +mpi")
5658
depends_on("hdf5@1.14.0: +mpi", when="@2.9:")
5759
depends_on("ioda-data", type=("build", "test"))
58-
depends_on("ioda-data@2.9.0.20250805", type=("build", "test"), when="@2.9:")
60+
depends_on("ioda-data@2.9.0.20260319", type=("build", "test"), when="@2.9.0.20260326")
61+
depends_on("ioda-data@2.9.0.20250805", type=("build", "test"), when="@2.9.0.20250826")
5962
depends_on("jedi-cmake", type=("build"))
6063
depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "link", "run"))
6164
depends_on("mpi")
@@ -65,7 +68,8 @@ class Ioda(CMakePackage):
6568
depends_on("odc@1.4.6:", when="@2.9: +odc")
6669
depends_on("oops+openmp", when="+openmp")
6770
depends_on("oops~openmp", when="~openmp")
68-
depends_on("oops@1.10", when="@2.9:")
71+
depends_on("oops@1.10.0.20260331", when="@2.9.0.20260326")
72+
depends_on("oops@1.10.0.20250827", when="@2.9.0.20250826")
6973
depends_on("python")
7074
depends_on("python@3.9:3.11", when="@2.9:")
7175
depends_on("py-pybind11")
@@ -94,19 +98,16 @@ def check(self):
9498
"test_ioda_bufr_python_encoder",
9599
"test_ioda_bufr_python_parallel",
96100
]
101+
with when("@2.9.0.20260326"):
102+
# No time to deal with the bufr Python dependency
103+
skipped_tests = [
104+
"ioda_bufr_python_encoder",
105+
"ioda_bufr_python_parallel",
106+
]
97107

98108
ctest = Executable(self.spec["cmake"].prefix.bin.ctest)
99109
with working_dir(self.build_directory):
100110
if skipped_tests:
101111
ctest("--timeout", "120", "-E", "|".join(skipped_tests))
102112
else:
103113
ctest("--timeout", "120")
104-
105-
#@run_after("install")
106-
#def fix_ioda_yaml_root_path(self):
107-
# with when("@2.9.0.20250826"):
108-
# filter_file(
109-
# join_path(self.build_directory, "share/test/testinput/"),
110-
# join_path(self.prefix, "share/ioda/yaml"),
111-
# join_path(self.prefix, "lib64/cmake/ioda/ioda-import.cmake"),
112-
# )

repos/spack_stack/spack_repo/spack_stack/packages/ioda_converters/package.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ def check(self):
8080
# >> 2169 The following tests FAILED:
8181
# 52 - test_iodaconv_mrms (Timeout) iodaconv
8282
"test_iodaconv_mrms",
83+
#2: ./gsi_ncdiag.py:80:77: E502 the backslash is redundant between brackets
84+
#2: ./gsi_ncdiag.py:81:53: E502 the backslash is redundant between brackets
85+
#2: checking ./ncdiag_to_feedback.py
86+
#2: checking ./proc_gsi_ncdiag.py
87+
#2: checking ./test_gsidiag.py
88+
#2: 2 E502 the backslash is redundant between brackets
89+
#1/1 Test #2: iodaconv_gsi_ncdiag_coding_norms ...***Failed 0.30 sec
90+
"iodaconv_gsi_ncdiag_coding_norms",
8391
]
8492

8593
ctest = Executable(self.spec["cmake"].prefix.bin.ctest)

repos/spack_stack/spack_repo/spack_stack/packages/ioda_data/package.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,9 @@ class IodaData(CMakePackage):
1717
maintainers("climbfuji")
1818

1919
version("develop", branch="develop", no_cache=True)
20+
version("2.9.0.20260319", commit="2886c75398b4b3bdd3a4235298af188370727c2e")
2021
version("2.9.0.20250805", commit="c6f8842648ea473eebc9f66d7c27e2204e5220d6")
2122

22-
# patch("ioda_cmake_import.patch", when="@2.9.0.20250826")
23-
#
24-
# variant("doc", default=False, description="Build IODA documentation")
25-
# # Let's always assume IODA_BUILD_LANGUAGE_FORTRAN=on.
26-
# # variant('fortran', default=True, description='Build the ioda Fortran interface')
27-
# variant("odc", default=True, description="Build ODC bindings")
28-
# # ioda has no explicit OpenMP calls, but header files from Eigen and oops do use openmp.
29-
# variant("openmp", default=True, description="Build with OpenMP support")
30-
# # Let's always BUILD_PYTHON_BINDINGS.
31-
# # variant('python', default=True, description='Build the ioda Python interface')
32-
3323
generator("make")
3424

3525
depends_on("c", type=("build"))

repos/spack_stack/spack_repo/spack_stack/packages/jedi_neptune_env/package.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class JediNeptuneEnv(BundlePackage):
1717

1818
maintainers("climbfuji", "areineke")
1919

20+
version("1.1.0")
2021
version("1.0.0")
2122

2223
variant("adp", default=False, description="Build ADP preprocessors")
@@ -34,7 +35,7 @@ class JediNeptuneEnv(BundlePackage):
3435
with when("+sdp"):
3536
depends_on("sdp-preprocessors", type="run")
3637

37-
with when("+jedi"):
38+
with when("@1.0.0 +jedi"):
3839
# https://github.com/JCSDA/spack-stack/issues/2015
3940
# Changed type from "run" to "build" so that
4041
# the modules don't get loaded automatically
@@ -44,3 +45,12 @@ class JediNeptuneEnv(BundlePackage):
4445
depends_on("ioda-converters@0.0.1.20250830", type="build")
4546
depends_on("ropp-ufo@11.0.20251022", type="build")
4647
depends_on("ufo@1.10.0.20250821 +ropp", type="build")
48+
49+
with when("@1.1.0 +jedi"):
50+
depends_on("oops@1.10.0.20260331", type="build")
51+
depends_on("crtm@3.1.3", type="build")
52+
depends_on("ioda@2.9.0.20260326", type="build")
53+
# Same ioda-converters and ropp-ufo as for 1.0.0
54+
depends_on("ioda-converters@0.0.1.20250830", type="build")
55+
depends_on("ropp-ufo@11.0.20251022", type="build")
56+
depends_on("ufo@1.10.0.20260331 +ropp", type="build")

repos/spack_stack/spack_repo/spack_stack/packages/oops/package.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Oops(CMakePackage):
1717
maintainers("climbfuji")
1818

1919
version("develop", branch="develop", no_cache=True)
20+
version("1.10.0.20260331", commit="0f7849866a74d17344215db8e742ba18c30a1ba5")
2021
# This commit plus the patch below accounts for commit
2122
# 2340e9b664f82de9fa01c136c3a31d87e4a0bec9 in NRL GitHub
2223
version("1.10.0.20250827", commit="91889ad09d3789f14a1184701dd80a4913d3ce3e")
@@ -39,13 +40,15 @@ class Oops(CMakePackage):
3940

4041
depends_on("boost@1.64:")
4142
depends_on("cmake", type=("build"))
42-
depends_on("cmake@3.12:", type=("build"), when="@1.10:")
43+
depends_on("cmake@3.23:", type=("build"), when="@1.10.0.20260331:")
44+
depends_on("cmake@3.12:", type=("build"), when="@1.10.0.20250827")
4345
depends_on("ecbuild", type=("build"))
4446
depends_on("ecbuild@3.3.2:", type=("build"), when="@1.10:")
4547
depends_on("eckit")
4648
depends_on("eckit@1.24.4:", when="@1.10:")
4749
depends_on("ecmwf-atlas")
4850
depends_on("ecmwf-atlas@0.35.0:", when="@1.10:")
51+
# hic dependency if ecmwf-atlas@0.39: ?
4952
depends_on("eigen")
5053
depends_on("fckit")
5154
depends_on("fckit@0.11.0:", when="@1.10:")
@@ -62,7 +65,10 @@ class Oops(CMakePackage):
6265

6366
def cmake_args(self):
6467
res = [
65-
self.define("BUILD_TESTING", self.run_tests),
68+
# Need to build so that header files for downstream
69+
# testing are installed (e.g. ioda needs them)
70+
#self.define("BUILD_TESTING", self.run_tests),
71+
self.define("BUILD_TESTING", "ON"),
6672
self.define_from_variant("ENABLE_LORENZ95_MODEL", "l95"),
6773
self.define_from_variant("ENABLE_QG_MODEL", "qg"),
6874
self.define_from_variant("ENABLE_MKL", "mkl"),
@@ -84,6 +90,19 @@ def check(self):
8490
"test_qg_verticallocev",
8591
"test_qg_verticallocev_io",
8692
]
93+
with when("@1.10.0.20260331"):
94+
skipped_tests = [
95+
"oops_qg_increment",
96+
"oops_qg_verticallocev",
97+
"oops_qg_verticallocev_io",
98+
"oops_qg_rescale_ens_perts",
99+
"oops_qg_4densvar_single-obs_loc_4d_fast",
100+
"oops_qg_4densvar_single-obs_loc_4d_aggressive",
101+
"oops_qg_4densvar_single-obs_loc_4d_standard",
102+
"oops_qg_4densvar_single-obs_loc_4d_time_decay_fast",
103+
"oops_qg_4densvar_single-obs_loc_4d_time_decay_standard",
104+
"oops_qg_4densvar_single-obs_no_loc",
105+
]
87106

88107
ctest = Executable(self.spec["cmake"].prefix.bin.ctest)
89108
with working_dir(self.build_directory):

repos/spack_stack/spack_repo/spack_stack/packages/ufo/package.py

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Ufo(CMakePackage):
1717
maintainers("climbfuji")
1818

1919
version("develop", branch="develop", no_cache=True)
20+
version("1.10.0.20260331", commit="0fa9567eb6d0b3ce079001b98f44f3f0853ee821")
2021
version("1.10.0.20250821", commit="1ca49e253caa6d6a507f41ffa6875e0db7cc0751")
2122

2223
patch(
@@ -25,7 +26,7 @@ class Ufo(CMakePackage):
2526
when="@1.10.0.20250821",
2627
)
2728

28-
patch("ufo_crtm_testfiles.patch", when="@1.10.0.20250821")
29+
patch("ufo_crtm_testfiles.patch", when="@1.10:")
2930

3031
# JCSDA-internal repository needed.
3132
variant("geos-aero", default=False, description="Build GEOS-AERO AOD operator")
@@ -51,6 +52,10 @@ class Ufo(CMakePackage):
5152
depends_on("fortran", type=("build"))
5253

5354
depends_on("boost")
55+
# Leaky inherited dependency from ioda in version 1.10.0.20260331
56+
depends_on("bufr@12.0.1:", when="@1.10.0.20260331")
57+
depends_on("bufr-query@0.0.4:", when="@1.10.0.20260331")
58+
#
5459
depends_on("cmake", type=("build"))
5560
depends_on("cmake@3.12:", type=("build"), when="@1.10:")
5661
depends_on("crtm@3")
@@ -64,14 +69,17 @@ class Ufo(CMakePackage):
6469
depends_on("fckit@0.11.0:", when="@1.10:")
6570
depends_on("gsl-lite")
6671
depends_on("ioda")
67-
depends_on("ioda@2.9", when="@1.10:")
72+
depends_on("ioda@2.9.0.20260326", when="@1.10.0.20260331")
73+
depends_on("ioda@2.9.0.20250826", when="@1.10.0.20250821")
6874
depends_on("jedi-cmake", type=("build"))
6975
depends_on("mpi")
7076
depends_on("netcdf-c+mpi")
7177
depends_on("netcdf-fortran")
7278
depends_on("oops")
73-
depends_on("oops@1.10", when="@1.10")
74-
depends_on("ufo-data@2.9.0.20250821", type=("build", "test"), when="@1.10")
79+
depends_on("oops@1.10.0.20260331", when="@1.10.0.20260331")
80+
depends_on("oops@1.10.0.20250827", when="@1.10.0.20250821")
81+
depends_on("ufo-data@2.9.0.20260326", type=("build", "test"), when="@1.10.0.20260331")
82+
depends_on("ufo-data@2.9.0.20250821", type=("build", "test"), when="@1.10.0.20250821")
7583

7684
# depends_on('geos-aero', when='+geos-aero')
7785
# depends_on('geos-aero@0.0.0', when='@1.7.0 +geos-aero')
@@ -168,6 +176,95 @@ def check(self):
168176
"ufo_test_tier1_instrument_sfcMarine_geos_qc",
169177
"ufo_test_tier1_test_ufo_opr_sfccorrected_pressure",
170178
]
179+
with when("@1.10.0.20260331"):
180+
skipped_tests = []
181+
if self.spec.satisfies("%gcc"):
182+
skipped_tests += [
183+
"ufo_instrument_amsua_n18_gfs_HofX_bc",
184+
"ufo_obserrordiffusion",
185+
]
186+
if self.spec.satisfies("%oneapi"):
187+
skipped_tests += [
188+
"ufo_instrument_airs_aqua_gfs_HofX",
189+
"ufo_instrument_airs_aqua_gfs_HofX_bc",
190+
"ufo_instrument_airs_aqua_gfs_HofX_qc",
191+
"ufo_instrument_airs_aqua_gfs_HofX_qc_obin",
192+
"ufo_instrument_amsua_n18_gfs_HofX_bc",
193+
"ufo_instrument_avhrr_metop-a_gfs_HofX",
194+
"ufo_instrument_avhrr_n18_gfs_HofX",
195+
"ufo_instrument_avhrr_metop-a_gfs_HofX_bc",
196+
"ufo_instrument_avhrr_n18_gfs_HofX_bc",
197+
"ufo_instrument_avhrr_metop-a_gfs_HofX_qc",
198+
"ufo_instrument_avhrr_n18_gfs_HofX_qc",
199+
"ufo_instrument_cris-fsr_n20_gfs_HofX",
200+
"ufo_instrument_cris-fsr_npp_gfs_HofX",
201+
"ufo_instrument_cris-fsr_n20_gfs_HofX_bc",
202+
"ufo_instrument_cris-fsr_npp_gfs_HofX_bc",
203+
"ufo_instrument_cris-fsr_n20_geos_HofX_qc",
204+
"ufo_instrument_cris-fsr_n20_gfs_HofX_qc",
205+
"ufo_instrument_cris-fsr_npp_gfs_HofX_qc",
206+
"ufo_instrument_iasi_metop-a_gfs_HofX",
207+
"ufo_instrument_iasi_metop-b_gfs_HofX",
208+
"ufo_instrument_iasi_metop-a_gfs_HofX_bc",
209+
"ufo_instrument_iasi_metop-b_gfs_HofX_bc",
210+
"ufo_instrument_iasi_metop-a_gfs_HofX_qc",
211+
"ufo_instrument_iasi_metop-b_gfs_HofX_qc",
212+
"ufo_instrument_seviri_m11_gfs_HofX",
213+
"ufo_instrument_seviri_m11_gfs_HofX_bc",
214+
"ufo_instrument_seviri_m11_gfs_HofX_qc",
215+
"ufo_instrument_abi_g16_gfs_HofX",
216+
"ufo_instrument_abi_g16_gfs_HofX_bc",
217+
"ufo_obserrorcrossvarcorr",
218+
"ufo_obserrorwithingroupcorr",
219+
"ufo_obserrordiagonal",
220+
"ufo_obserrordiagonal_inv_gamma",
221+
"ufo_gnssrobendmetoffice_qc",
222+
"ufo_gnssrobendmetoffice_obserror",
223+
"ufo_gnssro_super_refraction_check",
224+
"ufo_airs_qc_filters",
225+
"ufo_cris_qc",
226+
"ufo_cris_qc_filters",
227+
"ufo_cris_qc_land",
228+
"ufo_iasi_qc_filters",
229+
"ufo_qc_flags_true",
230+
"ufo_opr_gnssrorefmetoffice",
231+
"ufo_opr_gnssrorefmetoffice_refractivity_changes",
232+
"ufo_opr_gnssrobendmetoffice",
233+
"ufo_linopr_gnssrobendmetoffice",
234+
"ufo_opr_gnssrobendmetoffice_nopseudo",
235+
"ufo_linopr_gnssrobendmetoffice_nopseudo",
236+
"ufo_opr_gnssrobendmetoffice_profile",
237+
"ufo_opr_gnssrobendmetoffice_nosupercheck",
238+
"ufo_linopr_gnssrobendmetoffice_nosupercheck",
239+
"ufo_opr_gnssrobendmetoffice_refractivity_changes",
240+
"ufo_linopr_gnssrobendmetoffice_refractivity_changes",
241+
"ufo_opr_abi_ahi_crtm",
242+
"ufo_linopr_abi_ahi_crtm",
243+
"ufo_opr_airs_crtm",
244+
"ufo_linopr_airs_crtm",
245+
"ufo_opr_crtm_vis_albedo",
246+
"ufo_opr_cris_crtm",
247+
"ufo_linopr_cris_crtm",
248+
"ufo_opr_cris_crtm_co2_options",
249+
"ufo_linopr_cris_crtm_co2_options",
250+
"ufo_opr_hirs4_crtm",
251+
"ufo_linopr_hirs4_crtm",
252+
"ufo_opr_iasi_crtm",
253+
"ufo_iasi_crtmreconrad_linop_check",
254+
"ufo_iasi_crtmreconrad_linop_tlad_check",
255+
"ufo_linopr_iasi_crtm",
256+
"ufo_opr_seviri_crtm",
257+
"ufo_linopr_seviri_crtm",
258+
"ufo_opr_sndrd1-4_crtm",
259+
"ufo_linopr_sndrd1-4_crtm",
260+
"ufo_obsdiag_crtm_airs_jacobian",
261+
"ufo_obsdiag_crtm_airs_optics",
262+
"ufo_obsdiag_crtm_cris_jacobian",
263+
"ufo_obsdiag_crtm_cris_optics",
264+
"ufo_obsdiag_crtm_iasi_jacobian",
265+
"ufo_obsdiag_crtm_iasi_optics",
266+
]
267+
171268
ctest = Executable(self.spec["cmake"].prefix.bin.ctest)
172269
with working_dir(self.build_directory):
173270
if skipped_tests:

repos/spack_stack/spack_repo/spack_stack/packages/ufo_data/package.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class UfoData(CMakePackage):
1717
maintainers("climbfuji")
1818

1919
version("develop", branch="develop", no_cache=True)
20+
version("2.9.0.20260326", commit="e61d7c0e601e3699062009be109212566aea7ba8")
2021
version("2.9.0.20250821", commit="9078290c2eb68050af9941113a311200bb06aba8")
2122

2223
generator("make")

0 commit comments

Comments
 (0)