EMZETT.
Login

Semantic versioning

In short: Semantic versioning (SemVer) numbers program versions as MAJOR.MINOR.PATCH, for example 2.4.1, and gives each position a fixed meaning.

In more detail: PATCH rises for bug fixes without interface change, MINOR for new, backward-compatible features, MAJOR for changes that can break existing code. From the version jump you can see how risky an update is.

In Depth

  • Version ranges: ^1.2.3 (npm) allows updates up to the next major version, ~1.2.3 only patches.
  • 0.x.y: no stable interface yet, any change may break.
  • Pre-releases: 1.0.0-beta.2.
  • Changelog: lists the changes per version.
  • Lockfile: package-lock.json freezes the exact versions.

See also: Git branching (workflows), Open-source licences (MIT, Apache, GPL)