I just thought about PhotoStructure versioning a bit more, as it was discussed here.
SemVer vs CalVer
For those following along at home, PhotoStructure has been historically versioned using semantic versioning, or “SemVer”, and looks like 1.0.3
.
Calendar-based versioning, or “CalVer” is what Ubuntu uses, and looks like 2021.08.14
The advantage of CalVer is that it’s easy to look at a version number and see when it was built.
SemVer vs most commercial software
SemVer says you should only increment the first number if you have breaking, or “incompatible API” changes, but most commercial software versions tend to increment the first number, or “major release”, when there are substantial new features. Chrome versioning takes it a step farther: by 92.0.4515.131
: but by updating the major version on every stable release, users only need to reference “version 92”.
As PhotoStructure upgrades are seamless (or at least should be), we’d be stuck at v1.x forevermore (unless I follow the “big new features bump the major version number” tradition).
Goal: simple to explain and simple to use
I need PhotoStructure’s version to be easily read and typed (as users will need to share what version they’re using). Fewer numbers to juggle is better.
I will increment the major release number when releases have substantive new features.
I will increment the minor release number when releases contain bugfixes and minor new features
While this doesn’t adhere to SemVer, it does keeps the version string nice and short.
I also suspect it matches the expectations for most non-engineer users.