So what exactly are those pesky versions in your package.json and Gemfiles anyway? An introduction to Semantic Versioning

Ackshaey Singh
3 min readMar 14, 2023

You may not give it a second thought, but as a software engineer, you come across Semantic Versioning every day. Simply put, it’s a way of standardizing how version numbers are assigned and interpreted. It follows a three-part numbering system: Major.Minor.Patch. And trust me, understanding what each number means can save you a lot of time and headaches down the line.

Let’s start with the PATCH version. This level is for implementation level detail changes, like small bug fixes. It’s denoted by a number in the form of 0.0.x. So, if you see a new version of software that has changed the PATCH number, you can safely update your code without worrying about backwards compatibility issues.

Moving on to the MINOR version, which is denoted by a number in the form of 0.x.0. This level is for any backwards compatible API changes, like new functionality/features. So, if you see that a new MINOR version has been released, you can safely update your code and expect it to work as expected.

Finally, the MAJOR version, which is denoted by a number in the form of x.0.0. This level is for backwards incompatible API changes, such as changes that will break existing users’ code if they update. So, if you see…

--

--

Ackshaey Singh

Founder @ firecode.io / designerdiscount.club | Ex Staff SWE / Manager @Opendoor | Ex @Twitter Ads Engineering