Tag Archives: Semantic

Why Is Software Numbered Like This 2.2.5?

If you are thinking of developing your own software application then at some point you are going to have to decide on how you will keep track of your application software development updates.

This will not only help you to understand what has been done to update, and maintain the current version, but it will also help your users; it will give an indication of what the current version is to use, and what has been done to improve it.

The Semantic Versioning System

There are a number of ways this can be done, but the most popular method, for software applications, is the “semantic versioning” system approach; each number has a meaning; “Major, Minor, and Patch.” It is simple, makes sense to both the software developer, the end user, and follows the usual traditional pattern when trying to understand how computers work; the step-by-step process; operation.

Example 1:

“Why is software numbered like this 2.2.5?”

Using the semantic versioning system this number (2.2.5) would indicate that this particular current version of software has had:

  1. a significate major change, and as moved up from version 1 to version 2
  2. two minor updates have been implemented
  3. five patches or bug fixes have been made to make the software function more securely

Example 2:

The new Python application version 3.12.4.

Using the semantic versioning system this number (3.12.4) would indicate that this particular current version of software has:

  1. “Major”- a major software application update from version 2 to version 3; its 3rd major release
  2. “Minor” – minor updates; 12 new minor “feature additions or enhancements”
  3. “Patch” – a patch consisting of 4 bug fixes or security patches

The Basic Semantic Versioning System

  1. Major – a major update or change to the software application; a major redesign.
  2. Minor – a minor update; a slight enhancement or an added small feature addition to the software application.
  3. Patch – a security patch or bug fix.

Highly recommended reading:

  1. This is the original authored specification edition by Tom Preston-Werner the cofounder of GitHub: Semantic Versioning 2.0.0 | Semantic Versioning (semver.org)
  2. A more extensive piece of information on semantic versioning from Wikipedia: Software versioning – Wikipedia