Skip to content
Takatoshi Kondo edited this page Oct 29, 2019 · 1 revision

Versioning Policy

mqtt_cpp uses semver. The version format is vMajor.Minior.Patch.

  • Major version is updated if the release contains breaking changes.
  • Patch version is updated when the release contains only bug fixes.
    • It could be change the behavior but we don't call it is breaking change. Because the original (buggy) behavior is unexpected. Some users might depend on such buggy behavior. In this case, users need to update their code.
  • Minor version is updated other reasons.
    • Typically adding functionalities.

Branch Operation

master branch

It is up to date branch. It is normal pull request target.

Let's say the latest release is v1.0.0.

The next release version candidate is as follows:

Priority(small number is high) Merged Update Next version
1 Major e.g.)Breaking change v2.0.0
2 Minor e.g.)Add functionality v1.1.0
3 Patch e.g.)Bug fix v1.0.1

If a bugfix is merged to the master, then the version candidate is updated. It is reflected to README.md. Once the higher priority update is merged, then lower priority update doesn't affect the version.

vN.x branch

If a serious bug is fixed e.g.) memory corruption, and if the major version candidate of the master has already been updated, then create the new branch from the release tag. e.g.)v1.x. And the bugfix is merged to vN.x branch and release as vN.x.

It required to manage multiple branches. We create vN.x branch only if it is required. Please understand we have very limited resource, and managing multiple vN.x branches consume our resource.