DEV Community

Dillon Adams
Dillon Adams

Posted on

Versions Are For Humans

What does it mean to version a piece of software? I believe that it applies a meaningful label to indicate the capabilities of the software at that point in time. As software engineers, the most common method of doing this is semantic versioning. Each number in a semantic version conveys a meaning for a human to understand and use as a basis their decisions.

If these version numbers are meant for humans to derive meaning from, the incrementation of any part of the version should not be automated. Automatically incrementing a version strips the version of it's meaning. Let's say that we increment the patch version of a softare package each time we merge to the main branch. The issue is anyone consuming this software package has no clue whether there are breaking changes, new features, or just bug fixes in the new version.

Version numbers are meant for humans, and they should be set by humans. The engineers making changes to a software package should set the new version number as a part of their change. They are the ones that understand the change best and are the most suited to translate the effects of the change into a semantic version.

Original Post: https://codejanitor.dev/blog/2023/07/06/Versions-Are-For-Humans

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay