Archetype Designer has recently introduced semantic versioning of templates. This is an interesting development which could be very useful, but which may require some fine tuning of the versioning rules.
For archetypes, versioning generally starts with v0.0.1-alpha, and stays that way until the first time it’s published as v1.0.0. While the choice to not use v0.0.5 or v0.3.4 can definitely be discussed, I think the use of -alpha is a good idea, to clearly differentiate development versions from production versions.
Then there are the rules about what’s considered a major, minor or patch change, to guide the version numbering. My initial thought is that the rules we use for archetypes could be used more or less directly:
- Major changes are changes where the new version would break backward compatibility with data persisted using the previous version
- Minor changes are semantic changes which do not break backward compatibility, for example adding new elements
- Patch changes are changes that don’t change or add to the semantics of the template