Versions are sequence-based states of softwares, usually, they increment based on significant changes like bug fixes, implementation of new functionality or changes in the existing program.
Software versioning can be done by giving a version name or number to a software, based on unique states.
Versioning usually increments when there are significant changes like bug fixes, implementation of new functionality or changes in the existing program, the changes can be tracked with the use of revision control software.
The version numbers can be arranged by the preference of the owner or author of the software, the most known and used versioning pattern is:
major.minor[.build[.revision]]
For example:
- Perl 5.10.4
- .NET Framework 3.5
- Ubuntu 12.10