Does Semantic versioning make sense for desktop applications?

November 09, 2017 General Desktop Open Source

TLDR: I think it does.

Semantic versioning is a system for software versioning, it’s specifically designed for software with a public API. This usually doesn’t include desktop applications.

Over the years I’ve released a bunch of (open source) desktop software, and I’ve always used Semantic versioning (or something like it). A big reason I originally used Semver was that it was a basic framework for bumping versions, instead of it being arbitrary. Here’s the basic framework that I follow:

  • Bump patch for bug fixes.
  • Bump minor new features.
  • Bump major for refactors or rewrites.

This gives the user an idea about what to expect from a release. When there’s a major version release there could be an incompabile change. For example if it’s a note taking application, the new app may require you to manually import your notes. Minor and patch releases can be installed without much thought.

This isn’t a new concept, I’ve seen many others post about similar systems. I generally start my software at 0.0.1 though as I feel it’s more appropriate for a brand new project.

Additional reading:

Powered by Gatsby and WordPress.