BxCppDev / Bayeux

Core Persistency, Geometry and Data Processing C++ Library for Particle and Nuclear Physics Experiments
GNU General Public License v3.0
4 stars 9 forks source link

Readability of Boost.Serialized data with newer/older Boost #30

Closed drbenmorgan closed 5 years ago

drbenmorgan commented 5 years ago

As discussed in #29, SuperNEMO would like to move to a newer Boost version to resolve serialisation issues on macOS with Boost 1.63, which we've been using for a while now.

I couldn't find anything in the Bayeux or Boost.Serialization docs on what, if any, guarantees there are on forward/backward readability of Bayeux's output files with newer Bayeux/Boost versions. For example

I think it would be useful to have a clear description of what is, and isn't guaranteed here. With real data starting to flow, SuperNEMO need to plan for long-term storage and reprocessing. We can handle fixed software versions for reading, but just need to know to allow that to be accounted for.

fmauger commented 5 years ago

I add a Point4: now if user code (i.e. classes) relies on class versionning, the library offers some tools to ensure backward compatibility in the user serialization template methods (read an old version of a class and restore it as a new version in memory). It works well but requires care of course from the developper.

drbenmorgan commented 5 years ago

Thanks @fmauger, I think that clarifies things.