Use cases for package management

Before we talk about API and system requirements we should talk about use cases and system interactions. I think this is where update systems have gone wrong in the past, closely integrating with the existing package system rather than studying the complete ideal user interactions.

Feel free to disagree and correct the interactions – either email me or preferably leave a comment.

Boot Time Security Update

Toby logs into his GNOME desktop. A notification area icon with a critical icon appears in the top right and a libnotify popup tells him there are 3 three critical security updates. The libnotify popup has three buttons:

  • Update now in the background
  • Always do updates automatically
  • Ignore for now

Toby clicks the first button and the update completes in the background. When completed, after a few minutes, another libnotify popup appears telling Toby that the update was completed and after a few seconds the status icon disappears.

Downloading an Unknown Application

Suzanne wants to open a word file. She opens the software finder tool and types “office file” into the search box. A list of software appears, with OpenOffice being the top entry. She clicks the OpenOffice entry to highlight it, and clicks “Install now”. Suzanne is not an administrator, but because she is locally logged in and the package is from the “distro core signed repository” the root password is not required. A notification area icon appears with a downloading icon and the package manager is closed. When OpenOffice is installed, a libnotify popup tells Suzanne that the software has been downloaded and is now ready to use.

Installing debuginfo files automatically

Simon wants to borrow the computer while Suzanne waits for OpenOffice to download. He uses fast-user switching to switch to a new login. He notices the same downloading icon in his session which indicates Suzannes' download is still in progress. He starts Pidgin which then crashes. The bug-buddy window appears which prompts him to install the debuginfo so a valid backtrace can be detected. He clicks yes, and a libnotify windows appears telling Simon that the request has been queued and that he will be notified when the debuginfo has been installed. When installed, the bug-buddy helper continues and submits a valid bug.

Installing new features

Suzanne switches back to her session and wants to add some clipart to the word file she has just opened. She clicks “Insert” and then “Clipart” and then a windows pops up telling her that clipart is not installed. She clicks “Install” and a progress bar appears and moves across as the clipart is downloaded and then installs. When finished, the dialog disappears and she chooses a picture of a cat.

Published by

hughsie

Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

One thought on “Use cases for package management”

  1. Perfect way to go about this. Nice use cases. They aren't for package management though – I think the secret of package management is that nobody wants to do it. :-P instead they are trying to do something else and happen to have a missing package in the way. The closest thing to wanting to just “manage packages” might be looking for stuff to delete to free disk space. I guess “use cases that involve installing and uninstalling software” is a bit clunky ;-) For developers, two use cases are “get me the -devel package I'm missing that has foo.h in it” and “install all debuginfo for the gtk stack”

Comments are closed.