A good software follows semantic versioning standards, that is release number like 1.0.0
, v1.0.0
, etc. These numbering tells a lot of stories for a software. For me, I will maintain the following disciplines based on priority.
When working on an existing software development, it is best to seek out their documentation related to its release strategy, processes and version tag procedures. These are known as standards of procedures (SOP).
It they do exist, comply to the house rules.
If there is no semantic versioning SOP available, then I will default to the git semantic versioning system, the one with the 'v
'. Example:
v0.1.0
v0.125.3
v1.0.0
v1.25.0
The pattern is:
v[major].[minor].[patch]
Where:
major
number indicates **backward incompatible** changes, possibly breaking things.minor
number indicates **backward compatible** changes, an update to the previous version.patch
number indicates **small changes** like bug fixes, security releases or documentation updates.major
number 0.X.X
indicates project is still under development, hence, any crazy things may happen in between.That's all about my discipline for semantic versioning and tagging discipline.