Skip to content

Migration to art 3.15

Lynn Garren edited this page Aug 25, 2026 · 2 revisions

This page will document changes needed when upgrading from art 3.14 to art 3.15.

cet::split_path is deprecated

  • problem:
/scratch/garren/nu/v3_24_00/srcs/nugen/nugen/EventGeneratorBase/GENIE/GENIEHelper.cxx: In member function ‘void evgb::GENIEHelper::ExpandFluxFilePatternsDirect()’:
/scratch/garren/nu/v3_24_00/srcs/nugen/nugen/EventGeneratorBase/GENIE/GENIEHelper.cxx:1974:20: error: ‘void cet::split_path(const std::string&, std::vector<std::__cxx11::basic_string<char> >&)’ is deprecated: use cet::split_search_path() [-Werror=deprecated-declarations]
 1974 |     cet::split_path(fFluxSearchPaths,dirs);
      |     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /scratch/garren/nu/v3_24_00/srcs/nugen/nugen/EventGeneratorBase/GENIE/GENIEHelper.cxx:172:
/products/cetlib/v3_19_00/slf7.x86_64.e28.prof/include/cetlib/split_path.h:15:55: note: declared here
   15 |   [[deprecated("use cet::split_search_path()")]] void split_path(
      |                                                       ^~~~~~~~~~
  • solution:
@@ -169,7 +169,7 @@
 #include "art/Framework/Services/Registry/ServiceHandle.h"
 #include "cetlib/search_path.h"
 #include "cetlib/getenv.h"
-#include "cetlib/split_path.h"
+#include "cetlib/split_search_path.h"
 #include "cetlib_except/exception.h"
 #include "fhiclcpp/ParameterSet.h"
 #include "messagefacility/MessageLogger/MessageLogger.h"
@@ -1971,7 +1971,7 @@ namespace evgb {
     if ( fFluxType.find("tree_") == 0 ) randomizeFiles = true;
 
     std::vector<std::string> dirs;
-    cet::split_path(fFluxSearchPaths,dirs);
+    dirs=cet::split_search_path(fFluxSearchPaths);
     if ( dirs.empty() ) dirs.push_back(std::string()); // at least null string
 
     glob_t g;

generating a dictionary

problem:

[ 73%] Generating ROOTCint dictionary in nuevdb/EventDisplayBase
In file included from input_line_9:10:
In file included from /scratch/garren/nu/v3_24_00/srcs/nuevdb/nuevdb/EventDisplayBase/ServiceTable.h:9:
In file included from /products/fhiclcpp/v4_19_00/include/fhiclcpp/ParameterSet.h:12:
/products/fhiclcpp/v4_19_00/include/fhiclcpp/coding.h:202:16: error: out-of-line definition of 'encode' does not match any declaration in namespace 'fhicl::detail'
fhicl::detail::encode(T const& value)
               ^~~~~~
Error: /products/root/v6_30_06/Linux64bit+3.10-2.17-e28-p3915-prof/bin/rootcling: compilation failure (/scratch/garren/nu/v3_24_00/e28p/build_slf7.x86_64/nuevdb/slf7.x86_64.e28.prof/lib/libEventDisplayBase576b2759d4_dictUmbrella.h)

build with the critic v2_14_02 suite

  • art v3_15_01
  • canvas v3_17_01
  • canvas_root_io v1_14_02
  • gallery v1_23_02
  • clhep v2_4_7_2
  • s133

Supported compilers

Because art 3.15 uses c++20 concepts, only e28 (gcc v13_1_0) is supported.

Clone this wiki locally