No, there is no standard. You can even use names, roman numerals or whatever, but I would not recommend it.
Most authors use Semantic Versioning: Major.Minor.Patch
.
This has several drawbacks:
- Users are afraid of “big changes”. Upgrades for a new version with a change in the first part (
Major
) are often delayed, or users are waiting for the first “service pack” (2.0.1). - Developers are sometimes not sure when to change which part. What is major? A big code change may have little impact for the user experience.
- The length of a version number is not predictable.
1.2.3
vs.2.12.123
. Not a big deal, but not ideal.
In practice, Semantic Versioning isn’t that semantic.
I prefer the date as version number: 2012.11.19
- Changes in the first number are obviously not related to “big changes” in the program.
- No
0
at the end. Never. 🙂 - Always the same length (except when you have more than one version per day).
- Compatible with
version_compare()
– this could be seen as a standard.
Recommended reading:
- Programmers Stack Exchange: Date as software version number.
- Jeff Atwood: What’s In a Version Number, Anyway? and The Infinite Version.
Both schemes work. The difference is mostly in the user experience.