Is fv3-bundle still developed and supported?

I and others are trying to work with the FV3 JEDI interface and have attempted to use fv3-bundle on Hera, Hercules, and inside the published gnu-openmpi-dev containers. However, on all the platforms we’ve tried, we’ve discovered that the develop branch of https://github.com/JCSDA/fv3-bundle appears to be broken in multiple ways. It will not complete the ecbuild step successfully without multiple modifications to its CMakeLists.txt file.

None of these problems exist in the jedi-bundle. It is also very surprising to me that these significant issues exist on the develop branch and it makes me think maybe fv3-bundle isn’t really maintained anymore?

Can someone please confirm the status of fv3-bundle development?

For your reference the following outlines at least three big problems we’ve found so far when trying to build on multiple platforms.

The first issue is a problem with jedi-cmake:

-- Adding bundle project crtm
-- Cloning crtm from https://github.com/jcsda/crtm.git into /home/nonroot/fv3-bundle/crtm...
-- /home/nonroot/fv3-bundle/crtm retrieved.
-- Updating crtm to TAG v2.3-jedi.0...
-- git fetch --all @ /home/nonroot/fv3-bundle/crtm
-- git fetch --all --tags @ /home/nonroot/fv3-bundle/crtm
-- git checkout v2.3-jedi.0 @ /home/nonroot/fv3-bundle/crtm
-- ---------------------------------------------------------
-- [crtm] (2.3.0) [46e3292]
-- Feature TESTS enabled
CMake Error at build/jedicmake/jedicmake-config.cmake:19 (message):
  File or directory /home/nonroot/fv3-bundle/jedicmake/cmake/Functions
  referenced by variable jedicmake_FUNCTIONS does not exist !
Call Stack (most recent call first):
  build/jedicmake/jedicmake-config.cmake:35 (set_and_check)
  crtm/CMakeLists.txt:20 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/nonroot/fv3-bundle/build/CMakeFiles/CMakeOutput.log".

The above can be fixed by replacing that part of the bundle with the corresponding piece from jedi-bundle as follows:

# Use external jedi-cmake or build in bundle
if(DEFINED ENV{jedi_cmake_ROOT})
  include( $ENV{jedi_cmake_ROOT}/share/jedicmake/Functions/git_functions.cmake )
else()
  ecbuild_bundle( PROJECT jedicmake GIT "https://github.com/jcsda/jedi-cmake.git" BRANCH develop UPDATE RECURSIVE )
  include( jedicmake/cmake/Functions/git_functions.cmake )
endif()

The next problem is that it can’t find vader because it’s not in the bundle!

CMake Error at fv3-jedi/CMakeLists.txt:109 (find_package):
  By not providing "Findvader.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "vader", but
  CMake did not find one.

  Could not find a package configuration file provided by "vader" (requested
  version 1.4.0) with any of the following names:

    vaderConfig.cmake
    vader-config.cmake

  Add the installation prefix of "vader" to CMAKE_PREFIX_PATH or set
  "vader_DIR" to a directory containing one of the above files.  If "vader"
  provides a separate development package or SDK, be sure it has been
  installed.

The above is easily fixed by adding vader to the fv3-bundle:

ecbuild_bundle( PROJECT vader GIT "https://github.com/jcsda/vader.git" BRANCH develop UPDATE )

And, finally, after fixing those two problems, there is still a third problem to fix:

-- [fv3jedi] (1.7.0) [07e3621]
-- Feature TESTS enabled
-- Found NetCDF: /opt/view/include (found version "4.9.2") found components: Fortran 
-- FindNetCDF defines targets:
--   - NetCDF_VERSION [4.9.2]
--   - NetCDF_PARALLEL [TRUE]
--   - NetCDF_C_CONFIG_EXECUTABLE [/opt/view/bin/nc-config]
--   - NetCDF::NetCDF_C [SHARED] [Root: /opt/view] Lib: /opt/view/lib/libnetcdf.so 
--   - NetCDF_Fortran_CONFIG_EXECUTABLE [/opt/view/bin/nf-config]
--   - NetCDF::NetCDF_Fortran [SHARED] [Root: /opt/view] Lib: /opt/view/lib/libnetcdff.so 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5") found components: CXX 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5") found components: CXX Fortran 
-- Found OpenMP_Fortran: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5") found components: Fortran 
-- Found OpenMP_Fortran: -fopenmp (found version "4.5") 
-- Found sp: /opt/view/lib/libsp_4.a (found version "2.3.3")
-- Found OpenMP_Fortran: -fopenmp (found version "4.5") 
-- FV3-SABER block GSI is enabled
-- Found sp: /opt/view/lib/libsp_4.a (found version "2.3.3")
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP_Fortran: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5") found components: C CXX Fortran 
-- Found OpenMP_Fortran: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5") found components: Fortran 
-- Found MPI: TRUE (found version "3.1") found components: CXX Fortran 
CMake Error at fv3-jedi/test/CMakeLists.txt:11 (message):
  Found crtm but UFO_CRTM_TESTFILES_PATH was not set by ufo


-- Configuring incomplete, errors occurred!

It is unclear what the correct solution to the above is, but replacing the version of CRTM used in the bundle with the one used in jedi-bundle allows ecbuild to complete without errors.

try jedi-bundle instead, which include fv3-jedi. for some reasons, fv3-jedi failed in my test, but jedi-bundle works fine.

I have tried jedi-bundle and it’s true that it does’t suffer from the same ecbuild issues. However, for my purposes, it’s a bit bloated, and contains a bunch of stuff I don’t want/need. I’d rather just work with a slimmer bundle specific to FV3 if possible.

But… if that’s the only way forward, then that’s what I’ll do I guess. Or I might have to make my own custom bundle, but I’m not fond of that idea.

I suggest using jedi-bundle as fv3-bundle is no longer supported. In jedi-bundle, you can comment out the repos you don’t use to speed up the build step.

@maryamao - Thank you for the definitive answer. I will work with jedi-bundle instead and deal with the commenting in automation (some clones/builds happen in scripts without a human) as needed.

cc @NaureenBharwaniNOAA

1 Like