Version numbering is a confusing topic. Getting more confusing by software companies all using different schemes. Worse, I’ve seen MARKETING people deciding how versioning should work, defining strange semantic differences between “beta versions” and “early access versions”. Stupid. So, here is the official version spec for ZSS.
Version Number Specification
- Major: This involves a total rewrite or rearchitecting of a software product. Changes in language, major changes in design, and changes in platform fall into this category. This number starts at 1 (one).
- Minor: This involves additions in features that require changes in documentation/external API. This number starts at 0 (zero).
- Bugfix: This is any change that doesn’t require documentation/external API changes. This number starts at 0 (zero).
Increments start at the base number for that number type. They continue up with no rollover. They are sorted numerically, PER number. Thus, 1.2.20 is less than 1.19.0, and 1.9.0 will never increment to 2.0.0 when it should be 1.10.0.
All version numbering is based on external view. Meaning, this is a number scheme that intended to reflect the release of a product, not the internal production. Thus, recompilation does not effect the version number.
The terms “alpha” and “beta” shall not be used in the version number. These terms reflect little these days and aren’t qualitative (i.e. “1.0.0” sorts before “1.0.0 alpha”, but should sort after).