Bug 208068

Summary: check dependencies for good
Product: [openSUSE] SUSE LINUX 10.0 Reporter: macias - <bluedzins>
Component: YaST2Assignee: Stefan Hundhammer <shundhammer>
Status: RESOLVED INVALID QA Contact: Stanislav Visnovsky <visnov>
Severity: Minor    
Priority: P5 - None    
Version: Final   
Target Milestone: ---   
Hardware: x86   
OS: SuSE Linux 10.0   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description macias - 2006-09-25 17:24:08 UTC
For example, I tried to install PostgreSQL. I selected several packages, I clicked on "check dependencies" --> "everything is Ok". Then I clicked on "accept" and... it appeared there are some unresolved dependencies.

Please, make up your mind -- don't tell the user one thing, and second after, something completely different.

"Check dependencies" should scan everything, and if everything is Ok in this step, "accept" should only start downloading packages.
Comment 1 Stefan Hundhammer 2006-09-26 09:33:55 UTC
Read what that dialog says.

It clearly says that everything is OK, but some packages were added to the install set to satisfy dependencies - packages that you did not explicitly ask for. This is not a case of dependencies not being OK. It is informing the user what is going on.

If the dependency resolver reports any problems OTOH that means it could not automatically resolve a dependency problem - like by adding the package(s) that satisfy the missing requirement(s). For sure we don't want to bother the user with having to do that all by himself.

If the resolver can fulfill all pending requirements this way, it reports "All dependencies are OK" - the popup dialog you saw. If you are interested in what packages were automatically added, you can see that with just one keystroke (Ctrl-A) or via the menus. But since this is quite a bit of information and it can easily confuse less experienced users (they might think they still have to do something), we do not show this by default each time the user hits the "Check" button.

Upon "Accept", however, some final steps are done - like another dependency check (and a check if everything will fit on your hard disk). And the automatic changes are shown, too - because many users don't go follow our recommendation to have a look at the "installation summary" first. That dialog is a very short form of that installation summary. It is not a problem report.
Comment 2 macias - 2006-09-26 10:49:11 UTC
But the user who want to set custom packages installation, or do not install package XYZ have to put much more work.

Because she/he has to click on "accept", note at the piece of paper (sic!) all the automatic list, CANCEL, go back to packages list, set those packages to taboo, click on accept again...

Computers should help people. Current solution is extremely counter-productive. Also it violates the common sense principle of the least surprise.

So please, move those "automatic selection" from "accept" stage to the "check dependencies" and show them in the tree as it currently works for conflicts. This way user would be not forced to write down the whole list and then search it again (you can add two buttons "conflicts only" and "all dependencies resolution").
Comment 3 Klaus Kämpf 2006-09-26 12:13:00 UTC
"So please, move those "automatic selection" from "accept" stage to the "check
dependencies" and show them in the tree as it currently works for conflicts."

If the user explicitly clicked on 'check dependencies' before, showing the popup at the end is indeed superfluous information.

This popup is probably also a good candidate for a "don't show again" checkbox.
Comment 4 Stefan Hundhammer 2006-09-26 12:58:01 UTC
(In reply to comment #2)
> Because she/he has to click on "accept", note at the piece of paper (sic!) 
> all the automatic list, CANCEL, go back to packages list, set those packages 
> to taboo, click on accept again...

Please read the manual and/or the online help. 

You don't need paper. You can simply use the "installation summary" view.
 

> Computers should help people. Current solution is extremely 
> counter-productive.

Reading the available documentation (printed manual and online help) for sure would help.
Comment 5 Stefan Hundhammer 2006-09-26 12:58:52 UTC
(In reply to comment #3)
> If the user explicitly clicked on 'check dependencies' before, showing the
> popup at the end is indeed superfluous information.

May I remind you it was you who wanted that popup there?
Comment 6 macias - 2006-09-26 17:01:09 UTC
Stefan, thank you for the tip.

I am not convinced, but I won't reopen this report, it has no point.

I suggested to have one place to check and verify all dependencies in easy, clear way.

You are telling me (random user) that after checking dependencies it is as easy to "just" select installation summary, resort the list by status, switch to tab "dependencies" (which was always unclear to me) and see what package set the requirement. Is it really _AS_ easy? Is it really as clear? It is really the best maintance you can get? 

A clear tree (as for conflits) is much better solution, but that's just me.
Comment 7 Stefan Hundhammer 2006-09-28 10:23:48 UTC
(In reply to comment #6)
> I suggested to have one place to check and verify all dependencies in easy,
> clear way.

What you suggested is far from an easy and clear way. It would increase complexity and thus add to the confusion of less experienced users.
 
> You are telling me (random user) that after checking dependencies it is as 
> easy to "just" select installation summary, resort the list by status, 
> switch to > tab "dependencies" (which was always unclear to me) and see what 
> package set the requirement. 

No. I didn't tell you any such thing. I told you what tools are available for the expert user who must know exactly what triggered adding what specific package to the install set. Most users are not interested in that level of detail; they want to add some package to their installation, and they want it added in a way so it is usable, i.e. with all dependencies. They do not want to be prompted for each individual package that is needed to fulfil those dependencies, much less for each package they add explicitly.

The other group of users (a very small group) wants to know what gets installed in addition to what they explicitly selected. This group seems to include you.

For that group we have that "automatic changes" popup, even though it may be annoying to many of the other "simply do it right and don't bother me with details" group of users.

If you want even more detail, you can get it. But it's more work to get it. And how to do that is what I tried to explain. I don't expect a large number of users to do that, much less the average casual user.

>  A clear tree (as for conflits) is much better solution, but that's just me.

Right. That's just you. Maybe a couple other users, too, but for sure not the great majority.

Comment 8 macias - 2006-09-28 11:55:40 UTC
Stefan, ok, I understand your point of view. 

So, I put this wish in other form:
======================================================================
Please move this "popup" window with auto-dependencies packages from "accept" to "check dependencies" (after conflicts dialog).

The amount of displayed information won't change, the general GUI and way the (most) users work won't change.

But:
"The other group of users (a very small group) wants to know what gets installed
in addition to what they explicitly selected. 
"
this group could see right away what was auto-selected and make appropriate changes immediately.

Another advantage: the "surprise"-info dialog will no longer be a surprise. I think that in code it is a minor change -- even such small group of people is worth more user-friendly dialogs :-)
======================================================================

If it is not the way yast should work, please close the report -- I don't have any more ideas how to make the dependencies info more useful for both user groups. Thanks for your patience.
Comment 9 macias - 2006-09-28 11:58:47 UTC
PS. Just to ensure we understand each other -- the dialog in this wish version should remain the same. No tree, no new widgets, concepts, etc. Just change __when__ this dialog appears, that's all.
Comment 10 Stefan Hundhammer 2006-09-28 12:33:05 UTC
Frankly, I didn't even want that "all dependencies are OK" popup, but the project managers required it, so it got in.

Changing that to show the "automatic changes" dialog each time would hurt even more. Not only is that much more to read, it is also intimidating: I hit "check" and I get that amount of detailed information.

Even worse, it's outright wrong. That popup includes ALL packages that were automatically added to your install set, not only those that were added since the last time you saw it or for the last package you explicitly added. This is not the information anybody would expect at that point.

And trying to avoid the next "but-we-could-do-it-like-this" cycle: It's already complex enough. We don't want to add more complexity.
Comment 11 Stefan Hundhammer 2006-09-28 12:35:54 UTC
P.S. You can get that popup with one keystroke (Ctrl-A) if you want it. But most users don't want it (that often, that is).
Comment 12 macias - 2006-09-28 13:48:20 UTC
> Changing that to show the "automatic changes" dialog each time would 
> hurt even more. 

It is not shown each time now. Only when auto-changes where made. So I don't want any change here.

> Even worse, it's outright wrong. That popup includes ALL packages that were
> automatically added to your install set, not only those that were added
> since the last time you saw it or for the last package you explicitly added.

I use openSuSE 10.0 and there is no such case. I have popup-window with auto-added packages to my selection is this (current) "session". I can include a screenshot to clarify this, if you want.