Hi, just to clarify some things here.
First about dnf, you can check all transactions that involved a particular package:
$ dnf history qt
$ dnf history info <transaction-id>
This will help you understand when/why a package was installed or modified.
About kate, AFAIK, it is not supposed to be part of the default KDE distribution in Fedora (kwrite is the included text editor). What seems to have happened is at the time of F37 release, the kwrite version was 22.08.2-1. kwrite depends on certain kate libraries, but at that point, the libraries were part of the kate package, so kate was pulled in as a dependency. This was fixed in kwrite-22.08.2-2 by creating a separate kate-libs package (rhbz#2137398 – RFE: Separate libkatepart.so from kate package).
If you installed the Fedora KDE spin, kde-desktop package group, or even just kwrite itself at F37 release, and subsequently updated it, you would have the kate package installed, but it is now a “leaf” package as 1) it was not explicitly installed by the user, and 2) no installed package depends on it. dnf autoremove
will thus offer to remove it.
In my experience, most issues and confusion surrounding dnf autoremove
are related to packaging changes like above (which are the result of upstream changes, or sometimes human error), and not a fault of the autoremove command itself.
Despite the “auto” in the name, it is very much a manual action that you should use carefully, as with any other dnf operation that changes your system. It automatically figures out what packages are leaves, but it cannot tell if you actually want a package or not. If you want to keep a leaf package, you have to mark it as userinstalled.
Yes, being on the “front lines” is one of the foundations of Fedora. It’s important for the ecosystem of free software that we have a widely-used distribution with leading edge software that is close to upstream. If every distro focused on stability (meaning slow to change, not bug-free), there would be few people testing new versions of upstream software—not just in isolation, but how they interact with other software, which is a never-ending task as every little change can have cascading effects.
Of course, it’s understandable if you want something more stable. There are downstream distros like CentOS Stream, RHEL, and EL clones that may better suit your needs.
That said, you don’t have to update Fedora every day. You can check for security updates and use your own judgement on when to update:
# dnf --security check-update
Note that third-party repos may not include this security information accurately or at all.
I check for security updates daily (automatically using a timer, which caches the update message that I then display in my terminal), but usually only do offline updates once a week using dnf offline-upgrade.