Skip to content

Feature request: Documentation on how to manage Boost.Serialization schema evolution #48

Open
@drbenmorgan

Description

@drbenmorgan

SuperNEMO are in the process of modernising the code Event Data Model, and this will require:

  1. Changes to data member types and layout in persistent classes
  2. Changes to inheritance tree of persistent classes
  3. Changes to namespaces under which persistent classes appear

We require documentation (at the level of "HOWTOs") on the steps needed for developers to:

  • Safely modify their persistent classes when adding/removing/changing order or type of, persistent data members.
    • This should include information on allowing backward compatibility, so old files can be read, and what to do if a break in compatibility is required.
  • As above, but for the case of changing the inheritance tree, i.e. both cases:
    • Adding public inheritance, e.g. class foo -> class foo : public bar
    • Removing public inheritance, e.g. class foo : public bar -> class foo
  • As above but for namespace changes, i.e. both:
    • namespace foo { class bar{}; } -> namespace foo { namespace baz {class foo{}; } }
    • namespace foo { namespace baz {class foo{}; } } -> namespace foo { class bar{}; }

As this affects ongoing work, this is needed by the end of September at the latest.

cc'ing @yramachers, @emchauve, @cherylepatrick

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions