Product versioning conventions

We are using 3 numbers in the version: major, minor, and patch.
Product versions are vx_y_z (the ups convention uses underscores), where x is the major version, y is the minor version, and z is the patch version.

Anytime a product is changed, the version should also change.

Always use the three part version.

The parts mean the following:

  1. complete change in API or fundamental design or feature set of the package (major version)
    The major version number is only updated for really substantial changes.
  2. added simple features or some API changes happened for improvement (minor)
    If there is a change to the user interface, then the minor version number should be updated (v1_0_0 -> v1_1_0).
  3. patch number (bug fix or performance improvement)
    If the change is a bug fix or other very minor change, then the patch number should be updated (v1_0_0 -> v1_0_1). There is an implicit promise that the user will never need to change their own code when moving from one patch release to another.