This document briefly outlines the strategy for naming versions. It applies to versions 1.0.0 and above. Versions below that are all instable and have a different naming schema.
The major version is incremented whenever a considerate, major features have been added. This is expected to happen quite infrequently.
The minor version number is incremented whenever there is "sufficient need" (at the discretion of the developers). There is a notable difference between stable and instable branches. The stable branch always has a minor version number in the range from 0 to 9. It is expected that the stable branch will receive bug and security fixes only. So the range of minor version numbers should be quite sufficient.
For the instable branch, minor version numbers always start at 10 and are incremented as needed (again, at the discretion of the developers). Here, new minor versions include both fixes as well as new features (hopefully most of the time). They are expected to be released quite often.
The patch level (third number) is incremented whenever a really minor thing must be added to an existing version. This is expected to happen quite infrequently.
In general, the instable branch carries all new development. Once it concludes with a sufficiently-enhanced, quite stable version, a new major stable version is assigned.