Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Backward compatibility means that user programs compiled against e.g. one release will still compile and execute with another release. Generally, the objective is to maintain backward compatibility for minor releases and patch releases but not major releases. For example, 2.1.5 will execute when run with e.g. 2.1.6 . There but there is no guarantee that the reverse is true, i.e. that user programs compiled against 2.1.6 will compile or run against 2.1.5.

Major Release

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 replacing the patch number with "x".

Minor Release

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 Release

Patch Release

Patch releases contain bug fixes compared to the previous patch, minor, or major release on which they are built. Patch 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.