Anaconda DNF wishlist
This is a list of features that Anaconda developers would like have in DNF, based mainly on experience with YUM.
clearly defined & documented API
This one seems to be already handled, as properly defined & documented API is one of DNF design goals.
The DNF API should be either threadsafe or it should be documented which parts of the interface are threadsafe and which aren't.
no side effect when reading read-only properties
YUM is notoriously known for RO properties that can change YUMs internal state when read. From a brief discussion with Aleš, RO properties in DNF shouldn't have side effects.
Anaconda needs to be able to report the progress of long-running tasks, so that the user knows what's going on. Therefore all long running tasks should have some sort of a progress hook that Anaconda can use to periodically show current progress to the user.
clean source switching
There have been some issues with YUM keeping hold of a local ISO-based installation source even when told to use another one. This makes it sometimes impossible to cleanly switch between installation sources, as there could be active file descriptors keeping us from unmounting the ISO/the device holding it once we switched away from it.
YUM significantly contributes to memory usage, so any reduction would be appreciated. Maybe even some alternative mode that takes longer but uses less RAM, that Anaconda could use on memory starved systems ?
package download retry support
DNF should be able to retry failed package downloads, so that users net-installing over a flacky connections can still finish the installation even if one of the 1000+ packages duirng a normal Fedora install fails to download on the first try.
parallel package download
This could speedup package download - not sure how far YUM & DNF are with supporting this.
repository setup progress hook
As repository update can take quite some time, it would be nice if DNF could provide a progress callback. Like this, users with slow Internet connectivity would be able to see how far the repository update is at the moment.
Not sure in what form the progress could be - repos processed/total or repo data downloaded/total repo data needed ?