Perform operations in the background

Bug #17138 reported by Corey Burger
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
synaptic (Ubuntu)
Confirmed
Wishlist
Unassigned

Bug Description

Ideally, the GUI should always be responsive. The user should be able to cue
things up and then continue browsing while the stuff is installing. Likewise, it
should download and rebuild the database in the background.

I am also marking 6699 as a dup of this bug, as it is a subset of this.

Revision history for this message
Corey Burger (corey.burger) wrote :

*** Bug 13054 has been marked as a duplicate of this bug. ***

Revision history for this message
Michael Vogt (mvo) wrote :

Thanks for your bugreport.

This is problematic both from a technical POV as well as from a usability POV.
The problem is that certain operations change the state of the system. A update
operation can e.g. update the description of a package. How should the UI react
when this happens? Just silently change the text? Or ask the user to confirm
that the view needs to be updated? The same is true for install/removals, this
changes filters and views.

The only option I see is that the stuff (update, download, install/remove) is
happening in the background and that the ui is updated at the point when the
operation is finished (we can't avoid the delay when the cache is build). The ui
can then try to preserve the users view and selections as much as possible.

What do you think?

Cheers,
 Michael

Revision history for this message
Corey Burger (corey.burger) wrote :

Ok, here is my ideal user interaction:

User starts the program. The program notices that the package database is out of
date. A taskbar along the bottom flashes, indicating that the program is
reloading the database. The user sees it, but it doesn't stop them from
browsing. A short time later, the user notices that the taskbar now says "New
programs available". They browse throught those and pick some to install. The
program starts downloading the packages. The taskbar in the bottom shows
"Downloading %packages for installation". The user sees another program to
install, and clicks to install that. At this point, the program sees that it
doing something (installing), and adds it to the list to be installed (after the
current lot is installing). The install finishes, and the taskbar flashes, and
says "%Program(s) installed. %NewProgram downloading now".

----

Basically, the premise I am following is that the user shouldn't be able to mess
up their system by browsing, and thus there is no reason to lock them out of
browsing, as long as you inform the user what is happening.

Thus I also add a taskbar to the list of things to be added to Synaptic. Hope
this makes sense.

Revision history for this message
Sebastian Heinlein (glatzor) wrote :

Using a dbus interface could be a nice idea. So that apt runs in the background and the frontends only send a signal e.g. "install package-1". A symbol appears in the notification bar and we notify the user that packages are getting installed now. If something went wrong we show the installer dialog and the error message.

Revision history for this message
Sebastian Heinlein (glatzor) wrote :

I just found this soc project:

http://tw.apinc.org/weblog/2006/05/26#summer-of-code-acceptance

It is about providing an unified dbus interface for background tasks :)

I will setup a spec, since it could be worth a try for edgy+1

https://wiki.ubuntu.com/BackgroundPackageInstallation

Revision history for this message
Corey Burger (corey.burger) wrote :

A switch to smart could make this happen. Just make smart listen on dbus and you are golden. Allows the UI to be run as the user, which means good things for accessibility and security.

Changed in synaptic:
status: Incomplete → Confirmed
Michael Vogt (mvo)
Changed in synaptic (Ubuntu):
assignee: Michael Vogt (mvo) → nobody
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.