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.3only 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.jsonfreezes the exact versions.
See also: Git branching (workflows), Open-source licences (MIT, Apache, GPL)