On 5/31/2017 6:50 AM, Jon Turney wrote:
... solve some problems, perhaps add some new ones, I guess. I'm not 100%
sure this is the right approach to take, but I wrote it, so here it is.
I've now fixed all the bugs I've noticed, and I think I've gotten the
libsolv branch pretty close to the point where it is usable (barring
further bugs).
- I've dodged a lot of the UI issues: If the solver reports problems, all that
can be done is accept the default solution or cancel.
I've changed this so that the Back button takes the user back to the
chooser page, with all packages reset to show the solver's default
solution. The user can then see what will be done and, if desired, try
to solve the problems in other ways.
- We had a very poor UI for showing what will actually be done (combine in
your head the "Pending" view with packages listed in the text on the
PrereChecker page), and this removes part of that
This is fixed by the above.
- As implemented, selecting "Current" overrides "Keep". This is wrong, and a
change from current behaviour,
Fixed.
Here are some other things I've done, aside from fixing bugs:
- As discussed earlier in the thread, I've made it possible for the user
to install test packages without clicking the Test button.
- I've artificially created a conflict if the user tries to uninstall a
Base package. There's probably a better way to deal with this.
- I've made the solver check dependencies of installed packages. (It
doesn't do this by default, which seems strange to me.)
There's still one UI issue that I haven't dealt with: If the solver
finds missing dependencies, setup simply installs them silently without
informing the user (except in the log). In particular, the user can no
longer refuse to install them. I'm not sure how to best deal with this.
Finally, I have a question for you, Jon: You introduced
PrereqChecker::upgrade, which is true if and only if the user selects
Current or Test. I don't see why this is needed. I've disabled the use
of it and haven't noticed any ill effects. Am I missing something?
Ken
P.S. Anyone who wants to look at the code can find it at
https://github.com/kbrow1i/cygwin-setup ;
checkout the libsolv branch.