What do PhotoStructure version numbers mean?

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.

1 Like

This is great. Do you have thoughts around the update cadence (even for minor releases)?

I want to strike a balance between frequent-enough-to-push-out-bugfixes, but not so frequent that they are onerous or bothersome for people.

I released version 1.1 just 3 days after v1.0, but it was a small bugfix release.

I expect to release version 1.2 in probably a couple weeks (it’ll need an -alpha release due to upgrades to electron, sharp, and several other non-trivial changes).