setup redownloads everything all the time, including the packages list, and also has a foolish UI

Leif W warp9pnt9@gmail.com
Fri Mar 17 12:47:00 GMT 2017


On Fri, 3 Sep 2004 16:14:09 +0100, Dave Korn <dk@artimi.com> wrote:
 >   By design, setup searches through all the download directories, keeps
 > track of all the versions, should know exactly what you've already 
got and
 > never re-download something you already have; if it ever does, it's a 
bug.
 >
 >   There is one caveat: if setup dies - actually crashes or is killed -
 > part-way through downloading a whole series of packages, it may not have
 > updated its catalog by the time it gets terminated, and so it might 
download
 > them again.  But once setup has downloaded and exited successfully, it
 > should know and remember what it's done and not do it again.

Trying to compile various programs while installing the absolute minimum 
required.  I install the compiler for the language, attempt compilation, 
make note of failures (i.e. missing libraries, etc), and then run setup 
again (usually 30 seconds from the previous run).

Run setup again, install from local disk?  That does not make sense, to 
install things which have not been downloaded.  So I choose install from 
internet, which re-downloads everything.  It is not clear from the user 
interface or from the options or from the FAQ, exactly what the behavior 
is intended to be.

Setup re-downloads the entire 2MB packages file every single time. 
Ignoring for a moment the great difficulty of use of the poorly designed 
Setup GUI, it appears to remember to "keep" what I already have.  But 
then it proceeds to re-download everything I already have, in addition 
to whatever new things I have selected.  I am aware that dependencies 
may well trigger downloads in excess of what I have selected, and that 
is desired.  But downloading all the same compilers, tools, and 
libraries that were already installed?  The setup app doesn't appear to 
crash, so it should be able to update its files.  The program should be 
able to at the very least, detect and preserve timestamp of file 
(Last-Modified header for http - which describes most of the mirrors I 
see in the list, ftp file info if available), and should do a comparison 
of timestamps, and not re-download the same thing over and over, just 
seconds or minutes later, when no change has occurred on server.

In other cases, the poorly designed GUI has such insane usability 
issues, and often does crash.  Subsequent runs of setup starts in the 
"Pending" list, which is empty.  Must mouse click to the drop-down box, 
and choose something sane, like category.  Click a category to expand 
it, now what you want is several screens down.  Scroll wheel mouse down, 
oops, the focus is stuck in the drop-down box, and you scroll to a 
different view.  Anything you had expanded or scrolled or selected gets 
discarded.  Clicking back to category display, and attempting to expand 
categories, randomly acts as if the category is empty.  The category [+] 
sign changes to a [-] yet there is no other change to the display, i.e. 
no packages shown.

To get the mouse focus to the panel of the window where the packages are 
listed, you have to click a package.  But clicking a package name, even 
though it may highlight that row, still does not change focus from the 
drop-down box.  The only thing that changes focus is to click on the 
package version/install area to toggle installation, which may or may 
not be triggering dependencies, and typically yields undesireable 
results indicative of this foolish UI design.  Hitting the tab key one 
moves the focus off the drop-down box, but it is not at all clear where 
the focus goes.  Hitting tab key a second time, the UI element below the 
package list gains focus, so presumably the previous focus was the 
package list.  But using up/down arrow or page-up/page-down keys doesn't 
seem to navigate anything in the package list, and any subsequent clicks 
seem to crash the app at random.  In the event that the app doesn't 
crash, the mouse focus may be on the list, and one may be able to scroll.

This app would have been ahead of it's time, if it was invented in the 
1980s, but was barely acceptable back in the 1990s.  20+ years have 
passed, and there has been zero progress in the installation process, 
design, usability or robustness.  This is the area of the project that 
is most severely lacking.  The work done on other aspects of CygWin is 
much appreciated, and packages function quite admirably in general. 
Competent UI design may well be outside the skillset of the current 
setup maintainer.  Either one should venture outside one's comfort zone 
to acquire new skills, or the project should task someone to work in 
conjunction to design not just look and feel, but behavior and 
infrastructure.

The suggestion to simply "mirror everything" is inconsistent with the 
suggestion to "not install everything because you won't need most of 
it", therefore I consider that an invalid argument.  Mirroring a 1+GB 
repository to compensate for failure to properly design and implement an 
intelligent installer, is stupid, and wasteful of bandwidth, time, and 
disk space.

-- 
Leif


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list