Pride Versioning

Avatar of Julio Jimenez
Julio Jimenez Posted · in Programming Humor

We are somewhat forced to use semantic versioning in modern software development, or pride versioning, as the meme puts it. I however have a few opinions on why I don't like it.

To be fair, I think it makes sense for dependencies, libraries, or components that will be used in other applications/dependencies.

I also think that its provisions for patch, minor, and major upgrades handed us a "get out of jail free card" for introducing breaking changes and stop supporting backwards compatibility.

Again, this is my opinion, but I feel like semantic versioning has helped in creating the mess that dependency management is today, i.e. dependency conflicts, dependency lock, security upgrades, etc.

I also think that semantic versioning introduces a ton of ambiguity regarding the history of an application.

Take for example 0.0.29487. We can probably assume there's been that many releases. I know, crazy number.

As soon as you bump to 0.1.0, or better yet, bumped once more to 0.1.1, you cannot intuit that this dependency has a ridiculous number of releases. For all I know, this dependency has 2 releases.

"But Julio, go look at the release notes, or the repo!" True, but I believe that it would be better if you could deduce the maturity of a project by just looking at the version.

I've been working on a small passion project. A simple linux shell. I'm switching from semver to linear versioning, because it just seems unnecessary for this type of software.

Discussion

Sign in to participate in the conversation.

No comments yet.