This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH setup 00/14] Use libsolv, solve all our problems... (WIP)


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]