Module versions

Version numbers for modules consist of three numeric parts separated by dots. The parts are referred to as "major", "minor", and "micro". All numbers must be positive integers, and are allowed to be zero.

1.3.14
^ ^ ^^
| | Micro
| |
| Minor
|
Major

Typically a change in the micro value indicates that the release includes bug fixes and minor enhancements only. The convention is that upgrading to a new version which only differs by a micro version will not require any effort on the user's part, and typically will not result in any noticable change besides greater overall stability.

Changes to the minor version can include more significant enhancements. There should still be no upgrading effort required on the user's part, but the upgrade may change user interface elements and functionality. In some cases users may be required to upgrade other modules to satisfy interdependecies.

Changes to the major version of module indicate that large changes or enhancements were implemented. To upgrade the user may be required to take extra effort, such as also upgrading other modules upon which the module depends. Major version changes are required if a module's API has been changed in any way that would break other modules that depend upon it.

In M2M2, modules are priced upon the major version number only. After a user acquires a license to use a module at a particular major version, they are entitled to use the module at that major version indefinitely. In particular they are entitled to all minor and micro upgrades of the module for free.