Critical Path Packages Proposal

Overview
Define a "Critical Path" set of packages that require special care when updating in rawhide and releases.

Problem Space
Currently documented policies treat every package the same. While this is good for uniformity, in reality certain packages require and have been given extra attention and care when updating and testing. These packages have potential to break the critical path of use of our Fedora distribution.

Proposed Solution
Define a set of actions and their packages/deps to provide those actions that to define the "Critical Path". Packages within the "critical path" have extra requirements on getting tagged for freeze breaks and updates. During freeze/slushy periods a critical path package will require the signoff of someone from releng or qa before the package is allowed in. Additionally, updates being pushed directly to stable must be signed off by someone from releng or QA.

Scope

 * Maintainers of packages within the Critical Path
 * QA/Releng to provide extra attention to update/freeze requests for packages within the critical path - must sign off.
 * Bodhi to handle extra requirements
 * Tooling to define Critical Path each release
 * Documentation

Active Ingredients
Bodhi is the most active ingredient here. It will have to handle blocking the update packages within the critical path until it gets the extra attention from QA/releng

What is the critical path of actions?

 * graphical network install
 * post-install booting
 * decrypt encrypted filesystems
 * graphics
 * login
 * networking
 * get updates
 * minimal buildroot
 * compose new trees
 * compose live

What teams provide the extra attention?
QA/Releng are good suggestions, however these groups will have to make clear how new members can join the groups and what the responsibilities are.

When and how to determine packages within the path
Because deps change, we'll have to regenerate the list of packages at certain intervals. Once per release may or may not be enough.

The current proposal is to add a package group to comps which lists the packages required to handle the critical use cases discussed above. Listing those packages and all their dependencies would yield a full list of Critical Path Packages.

Will Woods and Seth Vidal have come up with a tool and a list to output packages currently in the critical path.

The lists of packages have been added into rawhide/f12's comps.xml. There are three groups

@core

@critical-path-base

@critical-path-gnome

more can be added.

Spins
How can spins define their own critical path and keep track of changes within their path?

Maintainers who do not wish to maintain critical path packages
If a package is added to the critical path list as a result of normal package dependency the package maintainer will be notified through direct email and the extra processes they have to go through. If they do not wish to maintain the packages with these extra processes then they have to orphan the package. A new maintainer will have to be found.

Comments?
To leave a comment, use the Talk page for this proposal.

Owner
User:skvidal