We are looking into updating existing compositions to use a new version of an archetype.
However the VERSIONED_COMPOSITION class has this invariant:
for_all v in all_versions | v.archetype_node_id.is_equal (all_versions.first.archetype_node_id)
And the archetype_node_id should contain the stringified archetype_id:
At an archetype root point, the value of this attribute [archetype_node_id] is always the stringified form of the
archetype_idfound in the
This seems to imply that the archetype_id (including the version number) cannot change between composition versions.
Is my understanding of this constraint correct, i.e. is updating the archetype of a composition currently not allowed?
If so, should this be allowed? I think it is valid for long-lived (e.g.
episodic) compositions to be migrated to a new archetype version. For example, when a new field is added it should become usable in existing compositions.
What do you think?