Breaking changes for art series 2.10


Removal of modules' reconfigure(ParameterSet const&) virtual function

As of art 2.07.01, the modules' reconfigure(ParameterSet const&) virtual functions are no longer called by the framework. We therefore propose to remove the virtual functions entirely. It is still permitted for modules to call their own reconfigure(...) functions if user-defined ones have been provided. However, the override keyword, if provided, will need to be removed from that function declaration.

It is also worth mentioning that it is inefficient for modules to be constructed via calling reconfigure. To the extent possible, all module data members should be initialized in the initialization list of the constructor.

Module-label prefixes in paths allowed only for filters

The return values from filters can be inverted or ignored in a path by specifying the '!' or '-' characters, respectively, as prefixes. Consider the following configuration:

p1: [a, "-c", d]  # ignore return value of 'c' – assign true
p2: ["!a", b]     # invert return value of 'a'

For older versions of art, these prefixes could be applied to producers as well. As of this version, it will be a configuration error to apply the prefixes to module labels that do not correspond to filters.

Relocation/renaming of art::FirstAbsoluteOrLookupWithDotPolicy

The policy art uses when processing FHiCL configuration files has been moved to the cetlib library. In addition, it has been renamed. Please note the following changes:

- #include "art/Utilities/FirstAbsoluteOrLookupWithDotPolicy.h" 
+ #include "cetlib/filepath_maker.h" 

void f()
- art::FirstAbsoluteOrLookupWithDotPolicy const policy{...};
+ cet::filepath_first_absolute_or_lookup_with_dot const policy{...};

The art_Utilities library dependency should be replaced with the cetlib library for any binaries that need to use the policy.

art::SourceHelper constructor

As mentioned here in the list of art 2.09 breaking changes, it is no longer supported for Source detail classes to own a SourceHelper object by value. To that end, the copy constructor has been deleted. Please make the following change:

- art::SourceHelper sh_;
+ art::SourceHelper const& sh_;


Removal of cet::cbegin and cet::cend free functions

The cet::cbegin and cet::cend free functions were introduced in art 1.02.00 as complements to the STL-provided std::begin and std::end free functions. The compilers we support now provide std::cbegin and std::cend free functions, guaranteed by the C++14 standard. All uses of cet::cbegin and cet::cend should be replaced with their STL equivalents.