Using DNF upgrade makes for an easier time when bringing systems up-to-date.
In addition to replacing ‘old version’ with ‘latest release’ of each software item, is there a process to clear-away junk, eg orphaned modules?
For example, Python 2 has long given way to Python 3, so if we no longer need Python 2 to run any remaining applications (if!), will the upgrade process also clear-away out-dated code that is no-longer required?
Alternately, should we schedule a ‘clean install’ every so-many updates?
Otherwise, the packages are either marked as user-installed, or as dependencies for user-installed.
Thus, there is no reliable way to determine if the user really needs them or not.
E.g. someone may have installed it specifically to run legacy version-specific code.
It might be worth reinstalling if you need new features which are problematic to migrate such as Btrfs, otherwise there is barely any good reason.
Actually you can clear-out a lot more packages by marking as user-installed only essential ones and those that you really need and discarding everything else.
Have finally found some time - and performed a fresh install. Was not time-expensive thanks to separate / and /home (and other) partitions! Only ‘extra’ was having to add back certain system-wide applications. The GIMP was a problem, but ‘fixed’ that by using flatpak instead of dnf.