Software versioning is the process of numbering different releases of a particular software program for both internal use and release designation. It allows programmers to know when changes have been made and track changes enforced in the software. At the same time, it enables potential customers to be acquainted with new releases and recognize the updated versions.
Version numbers are typically assigned in increasing order and correspond to new developments in the software. Some software possess internal version numbers that differ from the product version numbers.
Perhaps the most popular versioning scheme uses sequence based identifiers where every release is provided with a unique identifier containing one or more sequence numbers or letters. They signify changes between releases, where changes are based on significance level. The first sequence changes designate the most significant level and changes after that show less significance. For example, v1.01 might be a minor bug fix, where v1.2 signifies a more major release. This scheme can also use a zero in the first sequence to represent alpha status, one for beta status, two for release candidate, and three for public release. Another method is separating sequences with characters. Sometimes, a fourth unpublished number represents the software build. Negative version numbers may also be used in certain software packages.
Other techniques involve using years and dates (think Windows 95), or just random codes (Adobe Photoshop CS2).