A version , often also called revision , is a defined development stage of software with all associated components. Different versions represent the changes and further development of software or a part (e.g. program library ) over time; they always have a common historical basis. Versioning systems are used to distinguish newer versions of software from older ones.
Different numeric, alphanumeric or also date-based version numbers are used for differentiation and designation. The process is often technically accompanied by a version management system . Software before completion (e.g. beta versions ) usually has a version number that starts with 0.
In general linguistic usage, variants of software (e.g. Windows XP Home and Windows XP Professional) are often referred to as versions. In order to avoid confusion, however, the differentiation between the term version and the variant is very helpful, but it cannot always be carried out exactly.
One attempt to standardize software versioning is Semantic Versioning (SemVer), in which the version consists of three digits: the major version , minor version and patch version . An increment of the patch version means that the software has been corrected to be backwards compatible (see Patch (Software) ), an increment of the minor version means that new functionality has been added to be backwards compatible, whereas a new major version may also contain changes that make the API incompatible with earlier versions.