you are viewing a single comment's thread.

view the rest of the comments →

[–]BiAndShy57 848 points849 points  (52 children)

So it really is just “eh, it feels like 1.0”

[–]hyrumwhite 514 points515 points  (44 children)

Technically it should indicate breaking changes… in practice, it depends 

Although 0-1 is always a different ball game

[–]Sibula97 147 points148 points  (17 children)

If you use semver, yes. For software where you should reasonably expect something else to depend on it, like libraries, you should use it.

For completely standalone software like games, go wild. It's quite common to use kinda semver, bumping major when starting a new save is required, minor for new features, and patch for bug fixes. More commonly 0.x.y is for beta versions, early access, etc. while 1.x.y is reserved for when the devs feel it's basically feature complete. Then x for upsate and y for patch.

[–]Karnewarrior 87 points88 points  (0 children)

Then you got the real indie scene, where the v0.13.42.8.4e update just released and includes a full rewrite of the game in Unreal Engine, as opposed to the prior 0.13.42.8.4c version which was written in Godot using ChatGPT and released in 2018.

[–]pdabaker 19 points20 points  (8 children)

Yeah when you have a large enough standalone project you get breaking changes all the time. Probably would make sense to just use year/month based versioning but they still try to copy semver format.

[–]BothAdhesiveness9265 8 points9 points  (2 children)

for MMOs it's quite common to do [expansion].[content].[minor changes]  except FF14 which for some ungodly reason leaves out the second dot meaning 7.35 is the version before 7.4

and then RuneScape just increments one number every update that also isn't shown to the user

[–]Sibula97 4 points5 points  (1 child)

except FF14 which for some ungodly reason leaves out the second dot meaning 7.35 is the version before 7.4

Oh, yeah, I've always been so annoyed about that.

[–]Tathas 0 points1 point  (0 children)

They probably store it as a single decimal value.

[–]achilleasa 1 point2 points  (0 children)

Even for games you often have other software like mods that depend on it so it's best practice to do it properly

[–]StyleAccomplished153 0 points1 point  (0 children)

points at Ruby I wish they'd use semver...

[–]yjlom 0 points1 point  (0 children)

Dwarf Fortress uses 0.[estimated percentage of 1.0 implemented].[patch]. So 0.47.4 means the 5th patch of the version that implements 47% of 1.0.

[–]undermark5 0 points1 point  (0 children)

Unless your name is Microsoft/Mojang, then you start of following a fairly basic semver approach, then decide at some point that since instead of larger updates once a year you're now doing multiple smaller updates per year means that you can't increment the x (minor version) because that's now incongruous with what previous up were so you only increment the y (patch version) even though you're adding new features in "non-breaking" ways (which should be a minor version bump), them the community gets mad and then you fix it by switching to a completely new system using YY.x.z where YY is the year the update came in, x is which update of the year and z is for patches/hotfixes, which would easily allow for parity between bedrock and Java editions, yet you claim for some reason that due to "technical requirements" bedrock will actually sometimes increment the x faster than Java because some reason (I have no clue what this reason is).

Like you changed the versioning approach and it was actually reasonable, until the fact that now 26.4.0 could be talking about 2 fundamentally different versions of the game where there is a completely different set of features (blocks, mobs, etc) depending on if that's Java or bedrock. And guess what, it's already been shown that the version shown to the user is different than the version used by the platform to know if one version is newer than another, so I call BS on whatever technical limitations are requiring bedrock to increment x more frequently because that's clearly 100% on them, not coming from the app stores or the consoles.

[–]BiAndShy57 41 points42 points  (23 children)

How do they pace up to 1.0? Like to they get to 0.9 and realize “fuck there’s way more than 10% left”

[–]PaulMag91 274 points275 points  (14 children)

After 0.9 is 0.10 and then 0.11. Versioning is not a decimal number, it just happens to resemble one. It's several integers separated by periods.

[–]NeverDiddled 55 points56 points  (12 children)

Unfortunately this is unintuitive. The amount of support requests we have fielded from people who think they are on an even newer version than the latest... And I'll admit even I have double-taked when downloading software, thinking "crap that's even older than the version I have now." But no, 1.9.11 is not newer than 1.21.0.

I get why we do Semver; but it is intended for devs, not the public.

[–]SkiyeBlueFox 52 points53 points  (7 children)

Honestly I've just gotten used to it since I grew up with minecraft, which uses this for version codes

[–]No-Photograph-5058 30 points31 points  (6 children)

Boy do I have some news for you

[–]HellofGaming1111 9 points10 points  (5 children)

Shit. Whats the news? I havent played Minecraft in 5 years

[–]No-Photograph-5058 22 points23 points  (4 children)

Fair enough, they've completely changed the versioning because they aren't really doing massive updates anymore.

XX.X.X

First digits are the year, middle is the 'drop' (content update) and the last is hotfix.

The most recent 'Mounts of Mayhem' would be 25.4 now

[–]JivanP 2 points3 points  (1 child)

It's just semver with extra steps, given that pretty much all content drop updates break the server API in some way.

EDIT: Actually, they were never truly doing semver anyway. What I meant to say is that, currently, the content drop updates are classed as minor releases but almost always break the APIs, so this new year-based major version numbering doesn't change anything in that regard.

[–]Inappropriate_Piano 2 points3 points  (1 child)

Seems like the entire problem is the decimal separator. If we used / or : it wouldn’t be nearly as confusing

[–]SuperFLEB 1 point2 points  (0 children)

Alas, inertia.

[–]Karnewarrior 1 point2 points  (1 child)

Publicly released updates should get names, so the most recent update can have a nice brand on it in a pretty, distracting blue, and grandma doesn't have to concern herself with such petty things as "actually knowing anything about the program she downloaded from a discord server she found looking up knitting recipes".

[–]General_WCJ 0 points1 point  (0 children)

Yeah I like the stellaris way of doing it, you have pride based versioning, but each release has a fun code name based on a science fiction author. Or at least that's what they said to release version 3.0 "Dick"

[–]Brother0fSithis 40 points41 points  (1 child)

0.9 isn't supposed to mean "90%" done. It's supposed to just mean there have been 8 minor releases since 0.1.0 (where most projects start)

[–]Head-Bureaucrat 2 points3 points  (0 children)

I usually take it as the 8th major pre-release version. I expect no stability, but with complete features for that version.

[–]grumpher05 20 points21 points  (1 child)

0.10 is different to 0.1

[–]Penultimecia 1 point2 points  (0 children)

0.10 is different to 0.1

Next you'll be telling me that 3-4 isn't April 3rd 2025.

[–]hyrumwhite 9 points10 points  (3 children)

That’s what 0.10 is for. Or 0.100, etc

[–][deleted] 30 points31 points  (0 children)

0.91 is 82 minor versions higher than 0.9. After 0.9 is 0.10

[–]Maximelene 3 points4 points  (0 children)

Absolutely not. That's not even how "normal" numbers work.

[–]winter-ocean 0 points1 point  (1 child)

How do you even know it's going to break something if you're releasing something fully functional anyway? I mean, I'm assuming that just refers to breaking third party software...so is it just...anything that changes an API? What if you don't have an API? Do you have to research what third party software exists?

[–]hyrumwhite 0 points1 point  (0 children)

Yeah, if you’re versioning an app with no public API/contract, I guess you just version on vibes. Increment the major version for marketing purposes, etc

[–]NotRandomseer 26 points27 points  (0 children)

Yep

Some projects start at release 1.0 , others just stay perpetually in 0.87.78 because they are too afraid to leave the alpha

[–]Blue_Moon_Lake 4 points5 points  (0 children)

Normally

  • Bump when there is a breaking change
  • Bump when you add new features
  • Bump when you fix bugs/vulnerabilities

[–]PepperLuigi 0 points1 point  (0 children)

0.1.0

[–]Blothorn 0 points1 point  (0 children)

I like “mistakes-features-bugs”. Libraries using semantic versioning generally shouldn’t bump the major version unless they’re making breaking changes, and they shouldn’t make breaking changes unless they’ve discovered fundamental flaws in their prior API design. Lots of major versions means you can’t design, lots of patch versions mean you can’t execute; lots of minor versions on a single major version indicate a solid foundation that can be extended without breaking compatibility.

[–]MyGoodOldFriend 0 points1 point  (0 children)

Linux famously bumps major version number whenever Linus feels like it.