Semantic Versioning

How many packages are you using in your current project? Have you ever occured any big problems after updating them? In most of cases – no. That’s why we use various package managers. Whether it’s NuGet for .Net or npm for JavaScript stuff. They probably need to know when they can update libraries and which version is the highest one they can use. That’s why Tom Preston-Werner created Semantic Versioning, a.k.a. SemVer

Long story short

Semantic Versioning defines three types of updates:

  • Major – incompatibile api changes.
  • Minor – new stuff, backwards-compatible
  • Patch – backwards-compatible bug fix

Each package needs to be updated in this pattern: Major.Minor.Patch, e.g. Angular 4.2.0.

This is super important for both sides: the people who are responsible for development and the people who are gonna use their libraries. That’s all for today, but it can be important (and deadly) topic, so please read a bit more about it. I can promise to you that I will.