What is semantic versioning?

Have you seen how a project like Angular is versioned? You have maybe noticed when a brand-new release of that framework is created they release  it with three numbers, e. g. Angular 5.0.0, now the question is: what those three digits mean?

The answer is simple: they are using a system called Semantic Versioning or mostly know as Semver. In this version system the three digits have a meaning:

From the official homepage of semver we can read:

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

So, in our Angular example 5.0.0 means:

  1. Angular 5.0.0 has breaking changes compared with 4.x.y
  2. Angular 5.1.0 would mean a new feature was added to Angular 5.0.0
  3. Angular 5.1.1 would say a bug was fixed regarding the features in 5.1.0

Awesome, isn’t it? Now you know it, try to use a versioning system for your own projects and if it is semver, much better.

Leave a Reply

Your email address will not be published. Required fields are marked *