Version numbers explained

I realized that I've been using the same version number scheme in my projects consistently for a long time, so it might be a good idea to document it somewhere. Here it is:

<major>.<minor>.<revision>

Major number is incremented once on final release and after that only in case of huge updates.

Minor number is incremented on first beta release and after that in updates with significant new content.

Revision number is incremented if none of the other numbers change. In practice this used for bug fix releases and alpha updates.

There is really no standard version number scheme out there but this kind of three or four stage semantic numbering is pretty common. It's convenient because the version numbers can be internally represented as one 32-bit integer which then allows very easy comparing of version numbers with no extra code.

I also like how, in my case, the leading zeroes indicate the development phase. For example Polychoron's current version is 0.0.8 (eighth alpha version) and Hyper Ultra Astronautics' current version is 1.1.1 (final release + one update with new content + one bug fix update). In case of Polychoron, people tend to assume that the "small" version number means it's in very early development phase but in this case it's nearly content-ready and I would call it "late alpha".

P.S. There's a big Polychoron alpha update coming soon. The current development version depends on new features in Godot Engine 3.2.4, which is currently in beta testing, so I will have to wait until a stable release of the engine is available.

Back to home

Posted on 2021-01-26