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).

Hello @mrm,

Thank you for your tireless work on PS, what you are doing is truly remarkable.

I was meaning to ask if you could clarify more the versioning of PS. I spent a lot of time searching far and wide on the forum, on the site, on Reddit, and am still unable to fully wrap my head around it.

The information is there, but it’s scattered across many pages on your site and on sometimes a little unclear. I understand it’s hard to keep docs up to date. If there is any way any of us could help you, perhaps by having your documentation site forkable on Github?

Here is my latest confusing experience below. I have been a subscriber since v1 and recently decided to finally throw PS at my NAS… and found a bit of a “fog of docs” situation, which I think could be much improved and maybe even lead to more customers :slight_smile:

I am currently running photostructure/server:latest on my Syno, which reports itself as 2.1.0-alpha.7.

I understand that since August '23 you switched to Calendar Versioning, but there are still popular releases that use the old versioning scheme. No CalVer releases appear to be alpha, are they all prealpha still?

I am also aware of the yearly Release Notes posts on your site, like PhotoStructure | 2023 PhotoStructure release notes. While comprehensive, it’s not clear what prealpha actually means. Are there four version tiers or should prealpha be ignored as too dangerous? It looks like you are putting a ton of work on prealpha!

  • prealpha
  • alpha
  • beta
  • stable

The site’s homepage still lists 1.1 as the latest desktop package — I understand this is due to more work required to get the 2.x branch to work robustly on macOS and Windows.

In one post here on the forum you say that you are running the latest Alpha release on your Synology NAS, and many users also recommend running the Alphas because despite the scary label they are more stable and much improved over stable

In Alpha, beta, stable, and latest; What should you use? there is no mention of what latest means (maybe I missed it?). Is it latest Alpha? Latest CalVer? I now know because I have it running, but only just now realised that alpha.7 is from a year ago.

Overall I think that a OSS-style revamp of PS’s documentation could do a lot for the project. Could something like https://docusaurus.io help?

Unfortunately that is the case, currently. If you’re on PhotoStructure for Node, or Docker, :prealpha should be pretty stable at this point–I’m going to promote the build to :alpha soon.