Welcome to day 43 of the 49 Days of Ruby! 🎉
Today's topic is not strictly Ruby-related, but it is important when you start working with software development.
Have you noticed that there are often versions attached to applications? Sometimes it is version 1.0.0, othertimes it is version 2.1.4. What do those numbers mean?
Those numbers come from a concept called Semantic Versioning.
It is a way to let other people know about the kind of changes in a new release of an application.
The way it works is like the following:
MAJOR.MINOR.PATCH
The first number is the major version. This number increments when something changes that breaks the compatibility with existing earlier versions.
The second number is the minor version. This number increments when something is added or changed to the software, but it does not break compatibility with earlier versions.
The last number is the patch version. This number increments when a minor bug fix is released, for example, or something else that does not impact the way the software is used by the user.
Ruby in December of 2020 release version 3.0.0 of the language. That was a major release. The incrementing of the first number in the version is a warning to developers that, while they may enjoy the new features added, their old code may no longer work.
The latest stable release of Ruby as of this writing is 3.0.1. That means that recently a patch version was released. A developer can assume that, if the language follows semantic versioning, nothing about the way they use the language changed, and only a bug fix or security vulnerability was addressed.
Today, as you explore software, pay attention to those three numbers, and try and figure out what it is telling you about the software. Not every software maintainer follows semantic versioning, but for those that do, it offers a quick way for other people to know what is going on with a glance.
Come back tomorrow for the next installment of 49 Days of Ruby! You can join the conversation on Twitter with the hashtag #49daysofruby.
Top comments (0)