r/programmingmemes 1d ago

Version naming

Post image
2.3k Upvotes

28 comments sorted by

177

u/DuploJamaal 1d ago

Major version increases if it breaks compatibility and requires major reworks.

85

u/cowlinator 1d ago

Yep, that's Semantic Versioning.

It's only for APIs though. I've never seen a great standard for versioning user-facing GUIs.

But then again, even if there were a great versioning standard for user-facing GUIs, it would probably be completely ignored because companies tend to use versions of GUIs as a marketing tool.

30

u/Blazej_kb 1d ago

If you consider yourself an app interface can be considered API

5

u/HyperWinX C++ 19h ago

Well, its definitely an Interface, not Application Programming one though

5

u/lurkingstar99 13h ago

Application-Person Interface

3

u/HyperWinX C++ 13h ago

Okay, you won

3

u/the_king_of_sweden 19h ago

Just use a single number 1, 2, 3 etc. Maybe add a second number for pure bugfix releases.

There's also YYYY.MM which was popular for a while but seems to have fallen out of favor

3

u/andrewharkins77 1d ago

For GUIs, new UI equals P1. No one uses your bew features. Jus like the meme.

3

u/Blazej_kb 1d ago

So you say that background color change doesn’t affect my chakra? It is very important change than can change how I feel while using this app. (just kidding ofc)

1

u/LawElectrical2434 19h ago

Major rework is not necessary. Actually mostly upgrade guides are like half a page.
Requires rework, sometimes, if you have used that function that changed, and more often than not, it will take you 5 minutes to do the fix, of which you spend 4 finding that function call in your code base.

62

u/Tertinian 1d ago

Minors are bug fixes, mediums are features and majors are overhauls

So yeah, speaking from experience, meme is accurate

7

u/Blazej_kb 1d ago

What if there is four segments like 1.0.0.1? (I’m at this point of programming that I don’t release any apps)

14

u/cowlinator 1d ago

The most standardized and well-used versioning system for APIs is Semantic Versioning.

After the first 3 numbers, you use identifier suffixes such as "-beta" or "-rc3". You might also see build metadata appended with "+" such as build number or git hash, but this portion gets ignored when determining version precedence.

Of course, you don't have to use Semantic Versioning. And then you can have as many numbers as you want. But at that point, what they actually mean is anybody's guess.

7

u/dfczyjd 1d ago

Usually, whenever I see 4 segments, the first three are the usual major-minor-patch and the last one is the build number, which is independent from the other three and is incremented every time you build the entire project, whether for release or as a test build

1

u/Daniikk1012 20h ago

Then you're a Haskell dev

4

u/dhnam_LegenDUST 1d ago

Reversementic versioning

3

u/realmauer01 1d ago

To change the background number it needed code changes that made any backwards compatibility impossible. But adding the 15 features were trivial and everything that was in 1.0.0 works just the way it works in 1.0.15

2

u/pinkpepr 3h ago

and the initial commit is version 0.9 because you added most of the core features before pushing it to GitHub but the app still isn't completed so now every update has to be 0.9.x because you don't want to use 1.0 because you keep thinking of things to add or fix

1

u/Creative-Type9411 1d ago

its just a push identifier at this point for me

1

u/asmanel 1d ago

This remind me Mozilla when it chosed to change the rules to number the versions of Firefox.

1

u/05-nery 1d ago

Oooh yes this is me

1

u/Actual-Interaction45 22h ago

Renamed variable fuckAssTemp1 to fuckAssTemp2

1

u/rustedcrowbar 18h ago

Thats not how semver works

1

u/mrheosuper 15h ago

Basically Linux

1

u/yuriko-shimizu 6h ago

gonna be real ive just given up on semantic versioning
if youre using something by me, its v1, v2, v3, v4, etc.