(netinst media) Installer progress

I had cause to install F37 beta into a VM tonight. (Yes, I know final release is due in mere hours, but I’m specifically preparing package builds ahead of it, to [hopefully] be ready at release.) To minimize download size, I used the netinst image, which means the individual packages to apply were downloaded by anaconda during the install process, so there was more than usual going on.

In part because of that, I was able to observe in somewhat more detail than usual how progress is reported during the process. In a word, IMHO, it is… lacking.

Here’s what it looks like, mid-download. (Static image… but video/animation would be pointless anyway, for reasons I’m about to explain.)

The progress bar is — as usual and, I assume, intended — a single, global “complete install process” status that stretches from 0% at “‘Done’ button pressed, starting installation” to “installation complete” when it reaches 100%. (Conceptual labels, it doesn’t display that text on-screen. At 100% it actually just shows “Complete!” rather jauntily.)

It’s tempting to say the download progress is “included in” or “part of” the overall progress, but that’d be severely overstating things. What actually happens is this:

  1. The download starts, at which point the text line shows the number of packages required, a meter of Downloaded / Total bytes transferred, and the percentage completion (the result of that Downloaded/Total calculation)
  2. While that’s going on, the progress bar starts at 0%, and in fits and spurts moves up to the position it’s at in the screenshot, with its movements having absolutely no relation to the download progress.
  3. Once it reaches the position in my screenshot (which for me happened when the download was at ~15-20%), it stops there and does not move at all until the download process completes.

So, eventually, the downloads finish and the package installations start. “Ah!”, you may be thinking, “now we’ll see some progress.” While your naïve optimism is endearing, it is misplaced.

What we actually see is a repeat of the previous step: the progress bar sits right where it is and does not move throughout the entire package installation run, with the actual package-by-package progress being reported (again) on the text line as a parenthetical “(number / Total)” counter.

Eventually, Installing… becomes Configuring… and still the progress bar has not moved:

Something like 90% of the total time it takes to perform the installation passes with the “progress” bar sitting in that same ~15% position. And at least 75% of the bar’s entire progress occurs in the final 30 seconds of the installation.

I just find myself questioning the point of having a progress bar at all, when it’s never used to meaningfully display any progress. (When, in fact, the text status line has to be co-opted to report progress instead of the progress bar.)

I know there are efforts underway to rethink the design of the install process significantly, which may make my current experience moot. Great! Great, that is, if lessons are taken from the current situation.

So, all I can say to anyone involved in that effort is: Do better. Design your worker routines from the ground up to track and report progress in as much detail as reasonably possible. Design your frontend reporting so that it can aggregate and normalize that reporting. From every possible source — including new ones that get bolted on somewhere down the road — and in full detail.

You don’t necessarily have to display progress to the user at that level of detail, but you still need every bit of detail. Otherwise, there’s little chance that whatever you do present to the user will seem even vaguely connected to reality.


Edit: …There are Anaconda channels? (Other than bugzilla, where I suspect this post would be no more welcomed/appropriate.)

Thanks for your post. Could you please post on the anaconda channels? I doubt the developers look at the forum here. With the anaconda re-write in the works, I’d hope that some of these issues would be resolved.

I’m going to close this post since it isn’t really a troubleshooting question.