SemVer and CalVer — 2 popular software versioning schemes

Luke Chen
3 min readNov 7, 2020

This is one of the articles from the Software Release Engineering series that I have been working on. Suggestions on topics to cover are very welcomed.

Overview

With version control (or revision control) becoming a standard practice of modern software development, software release is yet another critical practice that is aimed for packaging a group of changes together and exposing them to users in one go. The frequency of releases for a software product is usually considerably lower than that of software revisions. How frequently a software product is released depends on various factors, out of which the most important one is the adoption cadence of software product users. In order to distinguish between past and future releases, a given release should have a unique version number, and all version numbers of the same software product should follow a consistent and predefined set of rules called versioning scheme. There are actually quite a number of versioning schemes out there. In this post I’m going to provide an introduction to two of the most popular ones — SemVer and CalVer.

SemVer

SemVer, or Semantic Versioning, is likely the most widely-used versioning scheme in modern software industry. It was originally authored by Tom Preston-Werner, and has reached its own version 2.0.0 (and yes, this version itself is a SemVer!)

A SemVer version number is composed of 3 parts (delimited by “.”) —…

--

--

Luke Chen

OpenSource & Automation make me excited. Release engineering @MongoDB