[packagekit] Dynamic Groups in Packagekit

Tim Lauridsen tim.lauridsen at googlemail.com
Mon Sep 22 23:56:41 PDT 2008


just reading a long heated debate on fedora-devel about yum 
categories/group vs groups in PackageKit. Cutting away the flaming to 
get some constructive points IMHO.

1. the categories/groups used in the installer is different than the one 
    defined in packagekit, that is confusing for the user.

2. the packagekit groups are hardcoded, so the distro has no way to add 
special groups, important to the distro.

The reasons that current pk groups are hardcoded are:
* limit the number of groups
* add specific icons to the groups
* translate the group names.

I like the idea to make pk-application more flexible and give distro 
some ways to control the groups shown, without losing some of the 
current benefit.

If we want to do that we need to add some kind dynamic groups/categories 
controlled by the backend.
  * I think it is a good idea to use group categories, because it make 
it  easier to the user find what they want and you can have more groups 
without cluttering the interface.
* An dynamic group should support translated names and description 
(based on the LANG defined by SetLocale)
* An dynamic group should define an icon for the group
* a kind of a setting in pk-application to use hardcoded or dynamic 
groups, so the distro can choose if they what it like today or what to 
use dynamic groups.

methods:

GetCategories() : Get all dynamic categories from the backend
GetGroups()	: Get all dynamic groups from the backend

signals:

Category(cat_id, name, summary, icon)
    cat_id  : a unique category id like 'apps','devel'
    name    : a verbose category name in current locale.
    summery : a summary of the category in current locale.
    icon	   : path to an icon or a enum to a existing pk defined icon

Group(grp_id, cat_id, name, summary, icon)
    grp_id  : a unique group id like 'kde-desktop'
    cat_id  : a unique category id like 'desktop'
    name    : a verbose category name in current locale.
    summery : a summary of the category in current locale.
    icon	   : path to an icon or a enum to a existing pk defined icon


the current SearchGroup should work with dynamic groups as it does with 
the static ones today.

GUI:

The pk-application gui needs to show the group categories, it can be 
done in many ways.

a. 2 level treeview

Application
    Editors
    Games
Desktops
    KDE
    Gnome
    XCFE
Development
    KDE Development
    GNOME development

b. Double listview.
slitting the current group view in 2, one for categories and one for 
groups in the category.
==============
Application
[Desktop]
Development

==============
KDE
GNOME
XCFE
==============

c. some other smart way.

Let me know what you all thinks

Tim



More information about the PackageKit mailing list