The release number consists of three digits separated by decimal points, followed by an optional status e.g. 2.1.6-beta2. The first digit is the major release number; the second is the minor release number; the third is the patch number. The optional status is an indicator of the release status, e.g. -alpha2, -rc1, etc. Generally, the status indicator is only used for major releases, e.g. 1.0.0-rc1 but is available for any release at the release manager's discretion.
During development of a release, nightly builds are typically done and published under the SNAPSHOT rubric. The SNAPSHOT will contain the latest result of building the release, regardless of the release status. For example, while developing release 2.1.6, the version 2.1.6-SNAPSHOT will be the latest result even though the status changes from -alpha, -alpha2, -beta, -beta2, -rc1, -rc2. The last nightly before release would still be 2.1.6-SNAPSHOT.
Backward compatibility means that user programs compiled against e.g. 2.1.5 will execute when run with e.g. 2.1.6. There is no guarantee that the reverse is true, i.e. that user programs compiled against 2.1.6 will run against 2.1.5.
Major releases have the minor and patch numbers set to 0. Major releases contain functionality changes compared to earlier major releases and may break backward compatibility if necessary. Once a major release is issued, a branch is created for maintenance, dropping the patch number.
Minor releases have the patch number set to 0. Minor releases contain functionality changes compared to earlier minor releases within the same major release, but do not break backward compatibility. A minor release is created based on the previous minor release tag, or the major release tag if this is the first minor release from the major release.
Patch releases increment the patch number compared to the most recent patch release. Patch releases contain no functionality changes, only bug fixes. Backward compatibility is maintained. A patch release is created based on the previous patch release tag, on the minor release tag if this is the first patch release of a minor release, or on the major release tag if this is the first patch release of a major release.
Unsubscribe or edit your notifications preferences