When using semantic versioning, the structure of a version number is described based on a version number consisting of
MAJOR.MINOR.PATCH. The individual elements are incremented as follows.
MAJORis incremented when API incompatible changes are released
MINORis incremented when new functionality compatible with the previous API is released
PATCHis incremented when changes include API-compatible (bug) fixes only
In addition, pre-release identifiers and build metadata are available as extensions to the
The notes on when to increment which number refer to the API, the Application Programming Interface. An application is usually consumed by users, not by other software components, and therefore has no API.
Instead of the API compatibility, the compatibility of system requirements can be used for applications for versioning.
MAJOR is increased if the system requirements have changed, for example, a newer operating system or an additional resource is required. If the system requirements remain the same and new functionalities have been added,
MINOR is increased; if only bugs have been fixed,
PATCH is increased.