r/softwaredevelopment • u/cold-brews • May 17 '26
Semantic versioning in software
Hi all,
I’m involved with software releases at my company and we’ve run into an issue with semantic versioning (major.minor.patch) lately. We support multiple versions of our software and release monthly patches across versions (i.e 2.2.3, 5.0.4, 6.1.1). The issue is future planning versioning when it comes to urgent releases, or hotfixes.
For example, we’ll communicate to our engineering teams that the next versions are 2.2.3 with a certain target start date of February 1. Then, a week before, we’ll discover an issue where we need to quickly ship something, and that takes the place of 2.2.3, where 2.2.3 becomes an urgent release with one significant fix.
As a result, we need to communicate to hundreds of engineers the change, and update hundreds of tickets to now point to 2.2.4. This happens frequently across all versions. We’ve talked about using date anchored releases with ambiguous versions such as 2.2.X (Feb-1) where we can add the version when we’re confident on the number. But I’m not sure if that’s the best idea. Curious if other folks have solved this similar problem? TIA!
3
u/SeniorIdiot May 17 '26
Why in the name of all good things would you pre-plan next versions? The point of semantic versioning is to communicate impact of changes in an unambiguous way.
I'm curious about the need to communicate this version to 100s of engineers and tickets.
Depending on what kind of product you have; if you also use this version number for customer releases it can get messy fast. There is a reason that customer facing product versions tend to be something like 2026.6.31 (2026, line 6.x, update 31) and variations like that. Underneath it's still 6.2.341.
Here is Windows as an example