Most active commenters
  • bonzini(3)
  • yjftsjthsd-h(3)
  • RandomThoughts3(3)

←back to thread

147 points nitinreddy88 | 25 comments | | HN request time: 2.254s | source | bottom
1. aorth ◴[] No.42170139[source]
A new major release of the Linux kernel happens every ~8 weeks. There are usually 7 or 8 release candidates (-rc1, rc2, etc) released on successive Sundays during that period, followed by a release of the major version. That's the workflow the Linux kernel has used for years.
replies(1): >>42170234 #
2. fsh ◴[] No.42170252{3}[source]
Linus Torvalds can do whatever he wants. Fork it if you don't like it.
3. salomonk_mur ◴[] No.42170266{3}[source]
Actually, yeah, everyone in the world can pretty much go and invent their own random version numbering scheme if they want to.

And Linus Torvalds particularly.

4. sevg ◴[] No.42170289{3}[source]
What a strange comment. Are you trolling?

Yes, projects can use their own version scheme.

The Linux kernel has been using this version scheme for over a decade. If you think it's inconsistent then that's a you problem.

5. bonzini ◴[] No.42170298[source]
There's no minor and major. All releases are equivalent but the first number is bumper when the second becomes large enough, which happens every 2-3 years.
replies(2): >>42170403 #>>42170988 #
6. yjftsjthsd-h ◴[] No.42170403[source]
In fairness, that is a weird versioning scheme, and I really do wish that Linux either switched to full semver (in which case it'd be version 2.9000.0 or so by now) or just drop the leading digit and go full build number kinda like NT does. But as cousin comments note, not my project not my call:)
replies(4): >>42170564 #>>42170621 #>>42171003 #>>42171115 #
7. nolist_policy ◴[] No.42170564{3}[source]
I like qemu's version scheme were the major version increases every year (since version 4.0). So x.1 the first release in a year and you can see from a quick glance how "old" a version is.
replies(2): >>42170617 #>>42170847 #
8. yjftsjthsd-h ◴[] No.42170617{4}[source]
I don't mind date-based versions, though if you're going to do that I feel like it'd be easier to go all the way? I can't tell how old qemu 4.0 is, but even without knowing details I would feel pretty confident in roughly when a hypothetical qemu-2024.1 had been released.
9. homebrewer ◴[] No.42170621{3}[source]
What for? Every kernel release is equal as far as maintainers are concerned, the list of features that go in depends on what is ready in time. They would have to change release processes significantly to accommodate "major versions", and I don't think they would want to do that.

Also, the kernel doesn't really have an external kernel API, the user API is supposed to be 100% stable, and its internal kAPI is nobody else's business, so there's one less reason for semver.

replies(2): >>42170865 #>>42177366 #
10. dessimus ◴[] No.42170847{4}[source]
I would think most if not all of the enterprise distros would object as generally they lock their kernel versions for the duration of a "release" lifecycle and backport security fixes from newer kernels to the version they chose.

They wouldn't want users thinking they were still using a "2024" kernel in 2032, for example, when they have 10+ years of support to provide.

replies(1): >>42171214 #
11. CorrectHorseBat ◴[] No.42170865{4}[source]
Why then confuse users with the first dot? The second dot having a meaning makes it even more confusing. Just drop the first dot like Chrome and Firefox did.
replies(1): >>42170881 #
12. ithinkso ◴[] No.42170881{5}[source]
As the comment above stated - so that the numbers don't grow too large
replies(1): >>42171062 #
13. perlgeek ◴[] No.42170988[source]
For regular releases without semver, I'd slightly prefer a version number that contained the year (and possibly month), like Ubuntu does it. Gives immediate feeling for how old (or young) a version is.
14. usr1106 ◴[] No.42171003{3}[source]
Full semver is an illusion. It's often debatable what is a new feature (we support a previously unsupported functionality) vs. what is a bug fix (it did not work correctly before).

Also what is a non-compatible change is not always clear. Did the user do it wrong in their existing code or did the project make an incompatible change?

The kernel has said for long times that they don't make incompatible changes. We don't break user space as they say. So you could prefix their numbers with an imaginary "1.". Of course sometimes opinions vary, whether a change breaks userspace or breaks wrong code.

That said the kernel numbering scheme is weird. Increasing the first digit after 19 *or* 20 is less logical than imperial units.

replies(1): >>42171948 #
15. blueflow ◴[] No.42171034[source]
Linux uses their own versioning scheme of Version/Patchlevel/Sublevel. See their Makefile.

Despite the sibling comments (and wikipedia), the major/minor terminology is not used.

16. CorrectHorseBat ◴[] No.42171062{6}[source]
But why does that matter? They are as large as they are, a dot in between doesn't change that.

The only thing I can imagine is trying not to break scripts looking at the kernel version and expecting two dots. If that's the case it makes more sense to use the OpenBSD way and increase after 9.

replies(1): >>42171128 #
17. fuoqi ◴[] No.42171115{3}[source]
Yeah, I wish they have just used dates for user-facing releases. At least, it would contain some useful information.
18. bdhcuidbebe ◴[] No.42171128{7}[source]
Kernel version scheme has been bikeshedded for decades already, See LKML if you want to contribute further
19. RandomThoughts3 ◴[] No.42171214{5}[source]
Note that the world would be significantly better if entreprise distros stopped doing that and just shipped the latest kernel. I understand freezing user space because most developers don’t care about shipping stable software and break compatibility all the time but the kernel takes its pledge to never break user space very seriously.

The backporting is very much hit and miss.

replies(2): >>42172294 #>>42176199 #
20. bonzini ◴[] No.42171948{4}[source]
> The kernel has said for long times that they don't make incompatible changes

Which is also not entirely true, as sometimes bad or obsolete functionality is dropped (e.g. /dev/mem). Given how big the kernel is, probably all versions would be a semver bump for one of it's many subsystems.

21. bonzini ◴[] No.42172294{6}[source]
Regressions in upstream kernel exist; they may be security issues, assertion failures, performance regressions, and so on. It's just too much work to validate a whole new kernel every six months, and also much harder to pinpoint a regression. People have tried shipping the latest kernel; it's the same in all environments, from enterprise distros to network appliances to phones, people end up sticking to an upstream release and do backports on top.
replies(1): >>42176866 #
22. yjftsjthsd-h ◴[] No.42176199{6}[source]
The one difference is that in at least some cases RHEL freezes things to provide a stable kernel ABI - https://access.redhat.com/solutions/444773
replies(1): >>42176837 #
23. RandomThoughts3 ◴[] No.42176837{7}[source]
Sure but the world would also be better without out of tree patches which don’t track the mainline.
24. RandomThoughts3 ◴[] No.42176866{7}[source]
I have been using upstream kernels on multiple machines including network equipments for more than a decade now. I will take the risk of regressions over back ported patches any day.

Apart for regulations mandating vulnerable (we can call them outdated if you prefer being coy) versions, the elephant in the room is obviously non mainlined drivers but I wouldn’t touch that with a ten feet pole anyway.

25. rurban ◴[] No.42177366{4}[source]
So what new feature set would be more major than PREEMPT_RT? Anybody will remember the great 6.12 for years, whilst 7.0 will be forgotten in a month.