Although Semantic Versioning is conceived for APIs instead of for applications, we adopt a very similar convention. Thus, changes become predictable and you can know, from the version numbers, when a version is no more compatible with a previous version.
Given a version MAJOR.MINOR.UPDATE:
MAIOR is increased when the Compiler or the Language is no more compatible with the previous version.
MINOR is increased when adding functionality in a backwards-compatible manner.
UPDATE is increased when there are fixes, little changes or little novelties - all of them backwards-compatible.
0.2.0 is compatible with 0.1.0
0.1.1 is compatible with 0.1.0
1.0.0 is not compatible with 0.2.0
NPM upgrades without breaking compatibility (when MINORorUPDATE changes).
For migrating a MAJOR version (e.g., 1.x to 2.x) please read our Migration Guide.