From Fedora Project Wiki
(Added some documentation to the yum wiki about how groups work)
(Moved to FeatureReadyForFesco for approval (#1070))
Line 81: Line 81:
* 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:FeatureAnnounced]]
[[Category:FeatureReadyForFesco]]
<!-- 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 -->

Revision as of 20:30, 5 February 2013

Yum Groups as Objects

Summary

Change the default yum configuration from group_command=compat to group_command=objects.

Owner

  • Email: james@fedoraproject.org

Current status

  • Targeted release: Fedora 19
  • Last updated: 2013-01-25
  • Percentage of completion: 99%

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-packages-sync"

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.

Comments and Discussion