Does Semantic versioning make sense for desktop applications?
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.