Each version identifier consists of three digits each of which has following meaning:
|Identifies a major release (generation). Changed in case of serious design changes/improvements, which may cause incompatibility with previous versions not only in API but also in behavior-related aspects (for example, the threading policy has been changed).
|Identifies a minor release. Updated in case of minor improvements, new features that do not seriously break compatibility with previous versions and remain software in stable design. However, it may require some adoption steps from the customers (like to rename some functions or recompile the code). API changes which break customer's code based on the previous version are also the reason for update of at least minor version.
|Identifies a bug-fix release. The binary compatibility is kept with previous releases of the same major and minor version.
|Incremental Build Number (optional)
|Updated only if the primary functionality was not affected (documentation updates, license updates, typos fixing, etc.).