<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. -->

<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. -->

Currently yum groups work as a simple substitution, so "yum group remove foo" works as though you took every package from foo and passed it to "yum remove". This tends to not be what users expect, for example "yum group install kde-desktop" and then "yum group remove kde-desktop" will end up removing packages (like abrt-desktop).

Currently yum groups work as a simple substitution, so "yum group remove foo" works as though you took every package from foo and passed it to "yum remove". This tends to not be what users expect, for example "yum group install kde-desktop" and then "yum group remove kde-desktop" will end up removing packages (like abrt-desktop).

This feature changes that so that groups are installed as real objects, meaning that when a user does "yum group install foo" yum will mark that the packages from foo are being installed (as before) but also that a group called foo is being installed and that those packages are installed because of it. Later if the group is removed, yum will remove the group and only those packages that were installed because of the group install/upgrade commands.

This feature changes that so that groups are installed as real objects, meaning that when a user does "yum group install foo" yum will mark that the packages from foo are being installed (as before) but also that a group called foo is being installed and that those packages are installed because of it. Later if the group is removed, yum will remove the group and only those packages that were installed because of the group install/upgrade commands.

−

== Benefit to Fedora ==

== Benefit to Fedora ==

Line 51:

Line 48:

You can test it in Fedora 18 with "yum-config-manager --save --setopt=group_command=objects" ... or even just passing --setopt=group_command=objects to yum for every command.

You can test it in Fedora 18 with "yum-config-manager --save --setopt=group_command=objects" ... or even just passing --setopt=group_command=objects to yum for every command.

−

To test with a rough automatic conversion from what yum thinks is happening now you can run: "yum groups --setopt=group_command=objects mark-packages-sync"

+

To test with a rough automatic conversion from what yum thinks is happening now you can run: "yum groups --setopt=group_command=objects mark-convert"

== User Experience ==

== User Experience ==

Line 73:

Line 70:

<!-- Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved. -->

<!-- Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved. -->

* man yum

* man yum

+

* http://yum.baseurl.org/wiki/YumGroupsOverview

== Release Notes ==

== Release Notes ==

Line 82:

Line 80:

* See [[Talk:Features/YumGroupsAsObjects]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->

* See [[Talk:Features/YumGroupsAsObjects]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->

−

+

[[Category:FeatureAcceptedF19]]

−

[[Category:FeatureReadyForWrangler]]

+

<!-- When your feature page is completed and ready for review -->

<!-- When your feature page is completed and ready for review -->

<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->

<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->

<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->

<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->

<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Owner

Current status

Detailed Description

Currently yum groups work as a simple substitution, so "yum group remove foo" works as though you took every package from foo and passed it to "yum remove". This tends to not be what users expect, for example "yum group install kde-desktop" and then "yum group remove kde-desktop" will end up removing packages (like abrt-desktop).
This feature changes that so that groups are installed as real objects, meaning that when a user does "yum group install foo" yum will mark that the packages from foo are being installed (as before) but also that a group called foo is being installed and that those packages are installed because of it. Later if the group is removed, yum will remove the group and only those packages that were installed because of the group install/upgrade commands.

Benefit to Fedora

Users will be able to run "yum group install foo" and "yum group remove foo" and it will do what they expect much more often (no extra packages will be removed).

Scope

The only work that needs to be done is changing the configuration, all the code behind the feature is in F18.

How To Test

You can test it in Fedora 18 with "yum-config-manager --save --setopt=group_command=objects" ... or even just passing --setopt=group_command=objects to yum for every command.

To test with a rough automatic conversion from what yum thinks is happening now you can run: "yum groups --setopt=group_command=objects mark-convert"

User Experience

The main changes will be to anyone running "yum group install/remove", and that the output to "yum group list/info" will be dependant on the state stored.

However "yum upgrade" will now upgrade the installed groups. This means that if you "yum group install foo" and later a new package is added to the foo group "yum upgrade" will install the new package and mark it as being part of the foo group (and thus. a subsequent "yum group remove foo" will remove it).

Dependencies

I'm not aware of any significant testing on any layers using yum, so:

anaconda

yumex

gnome-packagekit

Contingency Plan

We can change the configuration default back to compat.

Documentation

Release Notes

Installing groups with yum or anaconda (etc.) will now store information and use that information later for group remove/list/info commands. Also "yum upgrade" will automatically install any new packages for an installed group, as they are added to the group.