[packagekit] Fine grained groups
Tim Lauridsen
tim.lauridsen at googlemail.com
Thu May 8 00:52:53 PDT 2008
Richard Hughes wrote:
> For 0.2.2, in line with the roadmap[1] we need extended groups support.
> The current PK architecture allows for fairly course groups, for
> instance, System, GNOME and Games. This is less than ideal when you want
> to install the "compiz support" group or the "French language" native
> backend groups.
>
> It makes little sense to show the user 200 groups to choose from - but
> we do need to be able to interact with these collections of software,
> for instance, installing the "French language" collection.
>
> I propose two new methods:
>
> SearchCollections(package_id)
> Collection(s=collection_enum, b=installed)
>
> InstallCollection(collection_enum)
> <does the install of all the sub-packages>
>
> The first would allow to discover what collections a package belongs to,
> and the second would allow the user to install the whole group. This
> would allow somebody to right click on a package in gpk-application and
> a menu would appear. This could be clicked on to install the appropriate
> collection.
>
> Note: the collections are enumerated types and so can be translated like
> we do the group enums. In this way we can also give them icons.
>
We have to turn it around and look at how the user will what it to be.
USERCASES:
===========
The user what to install 'Danish Language" support.
* The user select the group view.
* The user select the Language category (A Category is used to order the
actual groups)
* The user select the 'Danish support' group and can now see the
packages included in the group and the state of packages (installed,
available etc)
* The user select the 'Danish support' and packages is added to the
current transaction.
* The user might what to select some other packages too.
* The user selects to process the transaction and the selected packages
get installed.
The user whats to install some games.
* the user select the group view
* the user select the 'Application' category
* the user select the 'Games and Entertainment' group to see what
packages it contains.
* the user look trough the games and select the ones the wants.
* The user selects to process the transaction and the selected packages
get installed.
The user whats to remove the KDE desktop. (just an example, no need to
FLAME :) )
* the user select the group view
* the user select the 'Desktop Environtment' category
* the user select the 'KDE' group to see what packages it contains.
* the user unselects the group and the packages gets added to the
transaction for removal.
* The user selects to process the transaction and the packages in the
group get removed.
GROUP METADATA (YUM / FEDORA,RHEL,CENTOS ):
============================================
Some facts about the group metadata we have in Fedora (Yum).
A list of categories.
Each category has a list of groups included.
A list of groups.
Each group has a list of package names and package types included.
a package can have one of 4 states.
mandatory: the package is always need by the group.
default: the package is need by the group.
optional: the package is optional by the group.
conditional: the package is conditioned be another package is installed
by the group. Ex. hunspell-da is only added to group if hunspell is
installed.
if a group is installed the mandatory,default and the conditional
packages there fulfills the condition is installed.
if a group is removed the mandatory,default and the conditional packages
there fulfills the condition is removed.
Each group has a name and description translated i local languages
Tim
More information about the PackageKit
mailing list