No information about dependencies being pulled in

Bug #432879 reported by Andrew Starr-Bochicchio
34
This bug affects 6 people
Affects Status Importance Assigned to Milestone
software-center (Ubuntu)
Triaged
Wishlist
Unassigned

Bug Description

software-store 0.3.6.1, Ubuntu 9.10

As I understand that this is meant to be a simple front end suitable for new users, I'm not sure of the best way to handle this. But... There needs to be some way of informing the user of how the actions they are about to take will effect their system. Perhaps an advanced drop down list? Information about dependencies being pulled can be important.

Case:

I was testing Software Store. I decided to install what seemed like a small game (Bomber). Installation seemed to take a long time. After it was complete, I notice that my netbook's drive is nearly full. Well, turns out that Bomber is a KDE4 app and pulls in a large part of the stack on my GNOME only system.

  libclucene0ldbl libqt4-opengl libxine1-x kdebase-runtime-data-common
  kdebase-runtime libqt4-sql-mysql libqt4-dbus libxine1-misc-plugins kdelibs5
  libxcb-xv0 libkdegames5 libqt4-qt3support libknotificationitem1
  kde-icons-oxygen libxine1-bin liblzma0 libsoprano4 kdebase-runtime-bin-kde4
  libqt4-webkit kdelibs5-data libqtcore4 libxcb-shape0 libqt4-sql libqt4-svg
  cuyo-data libstreamanalyzer0 libqt4-xml libplasma3 libqt4-network
  phonon-backend-xine libqt4-designer kdelibs-bin libqtgui4 libqt4-phonon
  khelpcenter4 libstreams0 libqt4-script libaudio2 libxcb-shm0 soprano-daemon
  kdebase-runtime-data libxine1-console libxine1

A new user would have no idea how there drive was filled up. And while they might not know the difference between GNOME and KDE, seeing that long list of dependencies would made them think twice if they know space is at a premium.

<https://wiki.ubuntu.com/SoftwareCenter#package-info>: "In the “File” menu, following the package operation items should be a separator and a “Package Info” item with keyboard equivalent Ctrl I. It should be sensitive whenever you are on a software item screen or a software item is selected..."

Changed in software-store (Ubuntu):
importance: Undecided → Wishlist
Changed in software-store (Ubuntu):
assignee: nobody → Matthew Paul Thomas (mpt)
Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

Here's an attempt at a mock up for a drop down list. Of course, it would be much more informative to actually tell the user what additional packages would be installed, but in its current form I'm not sure how software-store would do that. Doing the dependency calculation on each package view seems like it would be an expensive operation. You could do something like when you mark a package in synaptic, but it seems as if part of the design is to not throw pop-ups at the user. I'm sure you're already thinking about these things.

Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :
Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

Just took a look at how package-kit handles this. Apparently they throw a pop-up (not surprising, my biggest gripe with the package-kit UI is the number of different windows, I very much like software-store's attempt to consolidate things), but it has a check box to allow users to not see it in the future. See:

http://www.packagekit.org/img/gpk-added-deps.png

Revision history for this message
Matthew Paul Thomas (mpt) wrote :

Thanks for this report, Andrew.

So your user story is: "As someone whose computer has limited disk space available, I want to know, before I install a particular program, whether I'll still have enough disk space afterward."

If that's a fair summary, do you think the design you've mocked up solves the problem? Do you think the PackageKit interface solves the problem? Why or why not? (Hint: What knowledge are both those designs assuming on your part?)

Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote : Re: [Bug 432879] Re: No information about dependencies being pulled in

Well, I think it is a real issue, but I'm mostly wondering if there
has already been thought put into how things like this could be
handled. My mock up is certainly lacking. It does assume that the user
understands what a dependency means. It also doesn't take into account
what packages actually need to be installed. The user may in fact
already have all of the dependencies installed or many more might be
needed due to the entire chain of dependencies. As I mentioned above,
calculating the actual dependencies every time a package is viewed
seems like it might be an expensive operation. Though synaptic does
seem to do this pretty quickly. Perhaps it could be done only on
clicking the Additional Details arrow, allowing you to actually say
something like "The following additional packages will need to be
installed." Although I suppose there is also a question of whether the
arrow itself is discoverable.

The main issue I have with something along the lines of what
PackageKit is doing is that we are already popping up the PolicyKit
authorization window. Popping up an additional window will mean that
in most cases the user will have to go through two separate windows to
install a package.

Ideally I'd like to see is some way for the user to have some more
detailed information about what they are about to do to their systems
with out having to be an expert, yet still be un-intrusive. Maybe it's
a lot to ask, but I set the imprtance to wishlist for a reason. ;-)

Revision history for this message
Matthew Paul Thomas (mpt) wrote :

<mvo> mpt_: that is possible and should not cause too much grief, but it will require some magic to ensure that its always consistent depending with the running transcations and the ones that got canceled in between etc

So let's assume we can show live information, on a package screen, about which other packages will need to be installed for a given package.

Now, you've figured out two steps of the gap between your mockups (and what PackageKit shows) and solving your original problem: (1) the person needs to know what a dependency is, and (2) the Store needs to know which of the packages have already been downloaded. But there's one more important step missing: (3) the actual amount of disk space involved! It's all very well listing 20 dependencies, but if they're only 100 KB each that doesn't matter; whereas if there's only one dependency but it's 850 MB, that might matter a bit more. So showing the list of dependencies doesn't actually solve the problem, unless you're the sort of person who is familiar with the approximate file sizes of all the dependent packages.

So the package screen could say, for example, something like:

    Installing will take up 57 MB disk space, leaving 9.5 GB free for other programs and documents.

Or if you have /home on a separate partition, something like:

    Installing will take up 57 MB disk space, leaving 4.2 GB free for other programs and system files.

Probably that text could be tweaked to be shorter, and probably it should look more like a warning if you're going to be left with hardly any space, and so on. But the important point here is that we don't even need to list the dependencies to solve the problem. There might be other problems for which listing the dependencies is a solution, but I suggest addressing those in separate bug reports. Does that seem reasonable?

Michael Vogt (mvo)
Changed in software-center (Ubuntu):
status: New → Confirmed
Revision history for this message
Matthew Paul Thomas (mpt) wrote :

USC now shows the "Total size" of something you are considering installing, both download size and installed size.

Unfortunately the packaging system isn't yet smart enough to calculate whether there will be enough disk space, because it doesn't know ahead of time which installed files will go on which partitions.

USC still doesn't list dependencies if you want to know that for other reasons. Someone could implement a secondary Info window to display that information.

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

I totally agree with this. The user MUST be notified of the dependencies TO BE INSTALLED or ALREADY INSTALLED. Let's take an example case: the user is choosing between multiple softwares that do the same job (and they're a lot), but only one of them whose dependencies are already installed (or some of them), and another depends on java or KDE, why make him/her suffer from the extra occupied space if s/she chooses the wrong software? That would be ruining the user's system and experience.

Amr Ibrahim

Changed in software-center (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Matthew Paul Thomas (mpt) wrote :
Changed in software-center (Ubuntu):
assignee: Matthew Paul Thomas (mpt) → nobody
status: In Progress → Triaged
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.