Project

General

Profile

Breaking Changes

This is an attempt to track all the "breaking" changes which will require a general maintenance action to have the code back working.

Table of recent changes

Date Version/commit Description Issue
20191113 v08_36_00 Update to nutools v3_05_00 with nuevdb
20191113 v08_36_00 Using boost v1_70_0
20191113 v08_36_00 update to art v3_03_01
20191111 v08_35_01 Lengthen raw::RawDigit fSamples
20191023 v08_33_00 Removal of Calorimetry hard-coded values #23457
20190820 v08_31_00 artdaq_core calls clock_gettime
20190820 v08_31_00 macOS missing TGX11
20190820 v08_31_00 root IO rules #23013
20190814 v08_28_01 code cleanup
20190809 v08_28_00 genie v3_00_06
20190725 v08_27_00 nutools v3_02_00
20190610 v08_22_00 nutools v3_00_00
201904xx v08_15_00 New PhotonVisibilityService features
2019 Update to art v3_02
20181213 v08_00_00 Update from art v2 to art v3
20181129 v07_12_00 Remove deprecated members and methods from recob::Track

Changes for larsoft v06_xx_yy and previous

For ease of navigation, older breaking changes have been moved to Breaking Changes prior to v07_00_00

Update to nutools v3_05_00 with nuevdb

When was committed: v08_36_00
Motivation: nutools EventDisplayBase is now in nuevdb
Affects: user or experiment code
Failure when not fixed: Compilation or linking errors.
Fix: run UseNuevdb.sh (found in nutools v3_05_00 or later)
Contact: The Scisoft Team

Using boost v1_70_0

When was committed: v08_36_00
Motivation: updated dependency from art
Affects: user or experiment code
Failure when not fixed: cmake and compilation errors
Fix: use cetbuildtools v7_14_00 or later
Contact: The Scisoft Team

Update to art v3_03_01

When was committed: v08_36_00
Motivation: Move from art v3_02 to art v3_03
Affects: user or experiment code
Failure when not fixed: Compilation or linking errors.
Fix: see the art series 3.03 page for art breaking changes
Contact: The Scisoft Team

Lengthen raw::RawDigit fSamples

When was committed: v08_35_01
Motivation: See https://indico.fnal.gov/event/22319/contribution/2/material/slides/0.pdf
Affects: Certain loops that did not use an explicit unsigned int.
Failure when not fixed: Compilation errors.

/home/garren/scratch/larsoft/v08_35_01/srcs/ubcore/ubcore/BurstNoiseMetrics/BurstNoiseMetrics_module.cc: 
In member function ‘virtual void BurstNoiseMetrics::produce(art::Event&)’:
/home/garren/scratch/larsoft/v08_35_01/srcs/ubcore/ubcore/BurstNoiseMetrics/BurstNoiseMetrics_module.cc:162:20: 
error: comparison between signed and unsigned integer expressions 
[-Werror=sign-compare]
    for(int k = 0; k < allrawdigits_vec.at(1).Samples(); k++){ 
//UberWaveform Calculations
                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix:
-  for(int k = 0; k < allrawdigits_vec.at(1).Samples(); k++){   //UberWaveform Calculations
+  for(unsigned int k = 0; k < allrawdigits_vec.at(1).Samples(); k++){  //UberWaveform Calculations

Contact: The Scisoft Team

Removal of Calorimetry hard-coded values

When was committed: v08_33_00
Motivation: hard-coded values conflict with ICARUS detector (see issue #23457)
Affects: users of LArSoft Calorimetry module
Failure when not fixed: possible differences in calorimetry of badly reconstructed tracks
Fix: none needed; to restore the old behaviour, add to Calorimetry module configuration: NotOnTrackZcut: -100.0
Contact: Gianluca Petrillo

artdaq_core calls clock_gettime

When was committed: v08_31_00
Motivation: Use artdaq_core 3.05.02
Affects: Any user code that builds with artdaq_core v3_05_00 or later.
Failure when not fixed: Compilation or linking errors.
Fix: link with ${ARTDAQ-CORE_UTILITIES}, which is defined in artdaq_coreConfig.cmake
Contact: The Scisoft Team

macOS missing TGX11

When was committed: v08_31_00
Motivation: new release of root to resolve an I/O rule problem
Affects: user code initializing X11 graphics on macOS.
Failure when not fixed: Compilation or linking errors.

/Users/macdev/workspace/build-larsoft/BUILDTYPE/debug/QUAL/s91-c2/label1/swarm/label2/OSX-10.14/build/larpandora/v08_07_17-buildFW/src/larpandora/RootGraphics/RootGraphicsEnabler.cxx:24:10: fatal error: 'TGX11.h' file not found
#include "TGX11.h" // this header currently triggers a compiler error,
         ^~~~~~~~~
1 error generated.

Fix:
With root v6_18_xx, macOS builds must use the native macOS COCO graphics interface.
Use the root generic graphics initialization instead of explicit X11 initialization.
@@ -17,7 +17,6 @@
 #include "TApplication.h" 
 #include "TRootApplication.h" 
 #include "TGClient.h" 
-#include "TGX11.h" 
 #include "TRint.h" 
 #include "TSystem.h" 
 #include "TSysEvtHandler.h" 
@@ -50,9 +49,7 @@ namespace evdb{
     else {
       gROOT->SetBatch(kFALSE);
       if (gClient==0) {
-       gSystem->Load("libGX11.so");
-       gVirtualX = new TGX11("X11","X11 session");
-       new TGClient(getenv("DISPLAY"));
+        app->InitializeGraphics();
       }
     }

Contact: The Scisoft Team

root IO rules

  • With root v6_16_00, I/O rules were broken. This is a problem when reading certain old data files (see #23013).
  • A working fix for the problem is available in root v6_18_04.
  • Certain I/O rules involving Double32_t must be removed from classes_def.xml files if they exist. This has been done for larsoft v08_31_00. Please see #23013 for more information.

code cleanup

When was committed: v08_28_01
Motivation: remove unnecessary headers and link time libraries
Affects: user code
Failure when not fixed: Compilation or linking errors.
Fix:
Add appropriate headers to the code. It may also be necessary to add libraries to the cmake link list. If available, use feature/knoepfel_rm_unused_headers.

genie v3_00_06

When was committed: v08_28_00
Motivation: upgrade to genie v3_00_06.
Affects: user code using GENIE.
Failure when not fixed: Compilation or linking errors.
Fix:
Run UseGenie3.sh (found in nugen v1_03_00 and later). This script will update the headers.
There is NO one-to-one mapping from genie v2 libraries to genie v3 libraries. Please use the provided feature branch, feature/team_for_v08_28_00.
The genie_xsec qualifiers have also changed.

nutools v3_02_00

When was committed: v08_27_00
Motivation: separate GEANT4 interface from the rest of nutools.
Affects: user code using G4Base, MagneticField, and ParticleNavigation.
Failure when not fixed: Compilation or linking errors.
Fix:
Run UseNuG4.sh and add find_ups_product(nug4) to the top level CMakeLists.txt file.
The migration assistants is available after a setup of nutools v3_02_00 or later.
Contact: The Scisoft Team

nutools v3_00_00

When was committed: v08_22_00
Motivation: separate GENIE interface from the rest of nutools. Also split NuRandomService into its own package.
Affects: user code calling GENIEHelper and NuRandomService.
Failure when not fixed: Compilation or linking errors.
Fix:
For packages using NuRandomService, run UseNuRandom.sh
For packages using GENIE, run UseNuGen.sh
Both migration assistants are available after a setup of nutools v3_00_00 or later.
Contact: The Scisoft Team

New PhotonVisibilityService features

When was committed: v08_15_00
Motivation: allow exploitation of detector symmetries to reduce the size of the photon visibility libraries.
Affects: user code calling phot::PhotonVisibilityService, plus code using some more hidden LArSoft utility for managing voxelized volumes.
Failure when not fixed: Compilation or linking errors.
Fix: Several different cases are possible. Please see the additional material slides in the presentation of the new feature at LArSoft coordination meeting on April 9, 2019 .
Contact: Gianluca Petrillo

Remove deprecated members and methods from recob::Track

When was committed: v07_12_00

New recob::Track interface introduced in early 2017. This came with the deprecation of several outdated features. In many cases such features were maintained for backwards compatibility: dQ/dx (fdQdx data member, NumberdQdx and DQdxAtPoint methods), NumberFitMomentum method, various methods based on TVector3 or TMatrixD, old constructors. After almost 2 years it’s time to cleanup the interface from the old junk (indeed all those concepts are not actively used anymore, still they are present in a large fraction of the larsoft code)

Failure when not fixed: Compilation error.

Fix:

Several different cases are possible. Please see this presentation for an overview and a list of the most common changes.

Contact: The Scisoft Team