For a frontend web app version 3.9, we have a visual change that I would constitute as a backwards compatible (as far as the API) new feature. Therefor, my SemVer instinct is to bump the minor version number.
But how do I do that when we're at 3.9?
For a frontend web app version 3.9, we have a visual change that I would constitute as a backwards compatible (as far as the API) new feature. Therefor, my SemVer instinct is to bump the minor version number.
But how do I do that when we're at 3.9?
Use version 3.10 since it is a backwards-compatible new feature. Semantic versioning does not limit you to only 10 revisions of a particular major/minor version. I'm using version 1.73.0 of VS Code and 107.0.5304.121 of Chrome, and neither is unusual in terms of versioning.
Semantic Versioning is intended to version public APIs, usually in the form of packages or libraries. It is not designed for use in versioning applications. This will prevent you from strictly implementing Semantic Versioning as it's defined in the specification, but you can use the general ideas.
If the change to the application is "backwards compatible" in the sense that users who use the system today won't experience changes in their workflow or their use of the application, the correct action would likely be to increment the minor or the patch version. New or modified features/functionality would trigger a minor version increment (making the new version 3.10.0) while non-visible changes (like refactoring or technical debt paydown) or cosmetic changes (like changing colors or minor layout changes) may trigger a patch version increment (making the new version 3.9.1).
Since Semantic Versioning doesn't offer explicit guidance for applications, it would be useful for users consuming the version information to understand updates and changes to have a reasonably clear (and application-specific) definition for what constitutes major, minor, and patch releases.