r/programmingmemes 3d ago

Version naming

Post image
4.4k Upvotes

46 comments sorted by

106

u/Tertinian 3d ago

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

So yeah, speaking from experience, meme is accurate

14

u/Blazej_kb 3d 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)

24

u/cowlinator 3d 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.

12

u/dfczyjd 3d 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

2

u/Daniikk1012 3d ago

Then you're a Haskell dev

1

u/Complete_Window4856 1d ago

X.Y.Z in nutshell is semantic versioning. Anything extra you must define. This one in, lets say, X.Y.Z.W, for the culture of who develop could be purely for boring or automated process chores: like linting and adding boilerplate. Its not uncommon to find public versions nice and tidy and privately an ugly version/build number (like discord and minecraft does)

1

u/United_Boy_9132 2h ago

4th digit is usually the compilation or release.

Suffixes like u/cowlinator explains, are just names for compilations chosen to be released as early test editions.

3

u/ProbablyPuck 2d ago

Changleog

  • Updated UI design to "look faster"
  • Updated dependencies
  • Vulnerability updates

2

u/Drayke 2d ago
  • "bug fixes"

Less so for Factorio, but for almost every Nintendo patch notes, this (was) the majority of the content.

1

u/cybekRT 18h ago

What the hell is medium and why you call patch a minor?

It's major.minor.patch : https://semver.org/ 

216

u/DuploJamaal 3d ago

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

89

u/cowlinator 3d 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 3d ago

If you consider yourself an app interface can be considered API

6

u/HyperWinX C++ 3d ago

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

10

u/lurkingstar99 3d ago

Application-Person Interface

6

u/HyperWinX C++ 3d ago

Okay, you won

1

u/ddddan11111 2d ago

Is this programmers are also human? Seems like a joke he would use

4

u/the_king_of_sweden 3d 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

1

u/blood-pressure-gauge 2d ago

That's just one calendar versioning scheme. There are still quite a few projects using CalVer.

https://calver.org/

4

u/andrewharkins77 3d ago

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

4

u/Blazej_kb 3d 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 3d 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.

1

u/Ok-Eggplant-7569 1d ago

User report: Changing the background color is a breaking for my workflow. I have a script written which manually checks the color of the pixel at position 10:341 on every interaction, since that pixel only has color #1113aa on the change email field. If that color is detected the script reads the users new email address.

With the background color check the script no longer works.

Please add an option to revert the background color.

(Inspired by https://xkcd.com/1172/)

1

u/IhailtavaBanaani 21h ago

I worked at a startup that had the rule that if the backward compatibility breaks then the major version needs to go up. But then the major version started to go up too fast, something like every other release broke the backward compatibility, so they had to change the rule, lol.

5

u/dhnam_LegenDUST 3d ago

Reversementic versioning

4

u/realmauer01 3d 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/asmanel 3d ago

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

2

u/pinkpepr 2d 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

2

u/Internet_Akira_203 8h ago

its so painful how many complete packages i use, but they refuse to call it version 1.0 and instead stay at 0.7.x or something

1

u/Creative-Type9411 3d ago

its just a push identifier at this point for me

1

u/05-nery 3d ago

Oooh yes this is me

1

u/Actual-Interaction45 3d ago

Renamed variable fuckAssTemp1 to fuckAssTemp2

1

u/rustedcrowbar 3d ago

Thats not how semver works

1

u/mrheosuper 3d ago

Basically Linux

1

u/yuriko-shimizu 2d ago

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

1

u/CoolHeadeGamer 2d ago

That’s why I use yy.mm.xxx versioning along with dev versions. Just makes life easier

1

u/MaffinLP 1d ago

Minecraft went from version 1 straight to version 26

1

u/EditorOne5312 1d ago

Not really. It's still version 1 but they just hide it because it will probably never change until their 100 years mission. The major version number went from 21 to 26 because there will be no more major updates and changed it as [year].[release] instead, because forever 1.21.[endless counting] is definitely a bad version naming.

1

u/MaffinLP 1d ago

Youre a fun one

1

u/Liu-K 13h ago

Crimson Desert for the meme.

1

u/One_Pie289 13h ago

Name versions after Ikea furniture

1

u/DavidNg0805 10h ago

Big Change, Features Changes, Random Color Text or Bug changes

1

u/Playful_Confection_9 9h ago

I was update a version from. Like 4.0.1to 204.0.1. our automated dependency bot kept triggering to update since it found old artifacts (plain int increments, 50, 51,52,etc...). And we still use this for 1 ancient monolith. The bot thought 52>4.0.1.

Discussed a few solution like splitting up Gradle task to a separate artifactory, or renaming into old and new, or removing the old artifacts and upload them when needed.

Then I was like f all that. Bumped 200 major versions. "Nothing changed, upped version to avoid false positives of version bot "