Semantic versioning

3.4.1 === major.minor.patch
  • Major

    • New feature which may potentially cause breaking changes to applications dependent on the previous major version.
  • Minor

    • New features that do not break the existing API
  • Patch

    • Bug fixes for the current minor version

Glob patterns for versioning

Caret

Interested in any version so long as the major version remains at \(n\). E.g if we are at ^4.2.1 and we upgrade, we are ok with 4.5.3 or 4.8.2. We are not bothered about the minor or patch version.

This is equivalent to 4.x

Tilde

Interested in any patch version within set major and minor parameters. For example ~1.8.3 means you don’t mind any patch version so long as it is a patch for 1.8. This is equivalent to 1.8.x.

No tilde or caret

Use the exact version specified