A major version number reflects a more-or-less stable set of features and functionality. As a result, we should avoid major updates of packages within a stable release.
…with some exceptions listed below in the link.
However, I saw this policy being frequently violated. For example, the package wlroot in FC 40 was updated from 0.17.4 to 0.18.0 well after FC40’s release in Aug 2024. However, it is known to cause significant API incompatibility, such as this one.
This is only one example, but it seems like such breaking changes are common within a stable release, Another example I encountered was cmake in FC40 (many breaking changes).
I am, kind of, expecting to use a stable release without incompatibility changes and only reconfigure/rebuild/etc after a major Fedora upgrade, which is really the point of point releases as opposed to rolling releases.
Could someone explain this to me? Am I missing something? Or, is this policy simply not strictly enforced?
I’m relatively “new” to Fedora (last long-time use was 10 years ago), but I’m coming back!
My guess is that it is a combination of insufficient manpower and over automation. There is a description of some of the automation tools being used here:
You can see the process in action with your wlroots example here:
I’ve been using Fedora Linux continuously since it branched from Red Hat Linux. It is generally quite stable. Most of the problems with packages that I’ve encountered (not counting problems caused by “user error” or exotic configurations) are quickly and easily remediable with dnf downgrade <package-name>. But I think there has been a slight uptick in the number of faulty packages being released in the last couple of years.
As for wlroots, the Fedora repository has multiple versions available
Last metadata expiration check: 2:20:46 ago on Thu 19 Dec 2024 05:45:38 CET.
Available Packages
wlroots.x86_64 0.18.1-1.fc40 updates
wlroots-devel.x86_64 0.18.1-1.fc40 updates
wlroots0.15.x86_64 0.15.1-3.fc39 fedora
wlroots0.15-devel.x86_64 0.15.1-3.fc39 fedora
wlroots0.16.x86_64 0.16.2-2.fc40 fedora
wlroots0.16-devel.x86_64 0.16.2-2.fc40 fedora
wlroots0.17.x86_64 0.17.4-1.fc40 updates
wlroots0.17-devel.x86_64 0.17.4-1.fc40 updates
But in general is also a problem with some upstream projects which does not always define a stable and documented ABI and API. The Open Close Principle says that you can add new feature to a library, but never remove them once added.
As far as I understand it, this is why they have the “normal” repos and the “updates” repos. I’m new to Fedora but have found it very stable so far if you stick to the regular repos (minus a few quirks here and there) and have grown to appreciate the “updates” repo as you no longer have to wait for a major distro release for some packages (or resort to external repos).