This post belongs to the rant-ish category, but it’s something that I think is not only prevalent throughout the programming community but is also a

Just Use Semantic Versioning

submited by
Style Pass
2024-06-09 12:00:02

This post belongs to the rant-ish category, but it’s something that I think is not only prevalent throughout the programming community but is also actively slowing it down, hence the discussion.

This post is partly inspired by my own mistakes when developing Neorg and let me tell you — once you notice your own mistake, you see it everywhere else. Another source of inspiration is the half-broken state the Neovim community is in right now stability-wise.

Versions are a more human-readable hash. They declare how far the project is into its development and quantify the size and impact of each sequential/meaningful change. Thus it is best if the version contains as much information within itself as possible.

This information is critical to all consumers of your software - both users and developers alike. Users gain from this information as they know when the software they use has had a breakage, a feature release or a bug fix - it permits them to use a specific version of that software where they can guarantee their configurations and existing files will continue to work.

Such information is equally critical to developers. A developer knows that once your software’s version changes in a specific way (e.g. signifying a breaking change) they should refrain from using that new version if they want to maintain compatibility in their project.

Leave a Comment