12.3. Release Versioning
This section assumes that you have read the "Version Numbers" section in Chapter 10.
The first rule defines the version number of the first stable release:
In this context, backward compatibility means that code written using one version of a package keeps working correctly with a newer version. When the major version number increases and the new major version is incompatible with the previous major version, the package name has to change by appending the new major version. For example, if you have Foo version 1.9.0 and Foo 2.0.0, and Foo 2.0.0 is not backward compatible, the package is renamed to Foo2. The release still uses the same version number (for example, Foo2-2.0). If for some reason, this scheme does not fit with the package name (for example, if the last character in the package name is already a digit), two alternative forms are accepted: Foov2 and Foo_v2.
The reference implementation for comparing version numbers is PHP's version_compare() function.