Use semantic versioning

Semantic versioning is a well-specified convention used by many software projects, although admittedly the extent to which the convention is followed can vary considerably between projects. In essence semantic versions results in a version number that takes the form MAJOR.MINOR.PATCH, and from this we can articulate to users the extent of any changes in our library based on our incrementing of these values.

Developers should increment these values based on the following rules:

  1. Increment the MAJOR version when you make incompatible API changes,
  2. Increment the MINOR version when you add functionality in a backwards compatible manner, and
  3. Increment the PATCH version when you make backwards compatible bug fixes.

When semantic versioning is followed, users of our libraries can clearly discern the amount of caution that they should proceed with if they wish to upgrade to a newer version of a library. Upgrading to a higher patch version can be considered with relative ease, whereas upgrading to a higher major version should proceed with caution and much more testing.

For more details on all considerations that must be made as part of following proper semantic versioning conventions, refer to the details at https://semver.org/.