No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
# Detecting a list of orphans and the dependencies that will be broken if the orphans are removed. | # Detecting a list of orphans and the dependencies that will be broken if the orphans are removed. | ||
# Sending the list of potential orphans to devel@lists.fedoraproject.org for community review and removal from the orphan list. | # Sending the list of potential orphans to devel@lists.fedoraproject.org for community review and removal from the orphan list. | ||
# Removing packages confirmed as ''orphans'' from the Fedora package | # Removing packages confirmed as ''orphans'' from the Fedora package repositories. | ||
== Action == | |||
=== Detecting Orphans === | === Detecting Orphans === | ||
A script called <code>find-unblocked-orphans.py</code> | A script called <code>find-unblocked-orphans.py</code> assist in the detection process. It should be run on a machine that has <code>koji</code> and <code>python-fedora installed</code>. It runs without options, and should take about a minute to complete. | ||
<code>find-unblocked-orphans.py</code> is available in the Release Engineering git | <code>find-unblocked-orphans.py</code> is available in the Release Engineering git repository or downloaded from https://fedorahosted.org/rel-eng/browser/scripts/find-unblocked-orphans.py | ||
=== Announcing Packages to be Orphaned === | === Announcing Packages to be Orphaned === | ||
<code>find-unglocked-orphans.py</code>outputs text to stdout on the command line in a | <code>find-unglocked-orphans.py</code>outputs text to stdout on the command line in a form suitable for the body of an email message. | ||
<pre> | <pre> | ||
Line 26: | Line 27: | ||
=== Blocking orphans === | === Blocking orphans === | ||
Once maintainers have been given an opportunity to pick up | Once maintainers have been given an opportunity to pick up packages slated for orphaning, the remaining packages are ''orphaned'' by blocking them. Currently (2010-01-29) we don't have a script to do this, so we re-use <code>find-unblocked-orphans.py</code> to generate the list. The ''block-pkg'' <code>koji</code> command is used to do the blocking. | ||
<pre> | <pre> | ||
Line 37: | Line 38: | ||
</pre> | </pre> | ||
Koji accepts multiple package names as input and thus we can use the orphan list from the <code>find-unblocked-orphans.py</code> as input. Orphaned packages are only blocked from the latest <code>dist-f##</code> tag. For example, if we wanted to ''orphan'' (block) <code>sbackup, roxterm,</code> and <code>uisp</code> from rawhide during the development of Fedora 13 we would run the following command: | |||
<pre> | <pre> | ||
$ koji block-pkg dist-f13 sbackup roxterm uisp | $ koji block-pkg dist-f13 sbackup roxterm uisp | ||
</pre> | </pre> | ||
== Verification == | == Verification == | ||
To verify that the packages were blocked correctly we can use the | To verify that the packages were blocked correctly we can use the ''latest-pkg'' <code>koji</code> action. | ||
'latest-pkg' koji action. | |||
<pre> | <pre> | ||
Line 54: | Line 51: | ||
</pre> | </pre> | ||
This should return nothing, as wdm is | This should return nothing, as the <code>wdm</code> package is blocked. | ||
== Consider Before Running == | == Consider Before Running == | ||
Generally we block anything that doesn't leave | Generally we block anything that doesn't leave broken dependencies. If there are orphans whose removal would result in broken dependencies a second warning sent to devel@lists.fedoraproject.org and to <package>-owner@fedoraproject.org for each dependent package. | ||
Allow another couple of days for maintainers to take notice and fix these these package so the package repository can be maintained without broken dependencies or needing to orphan the package. It is not good to have broken package dependencies in our package repositories so every effort should be made to find owners or to fix the broken dependencies. | |||
[[Category:Release Engineering SOPs]] | [[Category:Release Engineering SOPs]] |
Revision as of 03:13, 29 January 2010
Description
Every release prior to the Feature Freeze we purge all the orphans from the distribution. This keeps out unowned software and prevents future problems down the road.
The orphan process takes place in stages:
- Detecting a list of orphans and the dependencies that will be broken if the orphans are removed.
- Sending the list of potential orphans to devel@lists.fedoraproject.org for community review and removal from the orphan list.
- Removing packages confirmed as orphans from the Fedora package repositories.
Action
Detecting Orphans
A script called find-unblocked-orphans.py
assist in the detection process. It should be run on a machine that has koji
and python-fedora installed
. It runs without options, and should take about a minute to complete.
find-unblocked-orphans.py
is available in the Release Engineering git repository or downloaded from https://fedorahosted.org/rel-eng/browser/scripts/find-unblocked-orphans.py
Announcing Packages to be Orphaned
find-unglocked-orphans.py
outputs text to stdout on the command line in a form suitable for the body of an email message.
$ ./find-unblocked-orphans.py > email-message
Email the output to devel@lists.fedodraproject.org at least a week before the feature freeze. This gives maintainers an opportunity to pick up orphans that are important to them.
Blocking orphans
Once maintainers have been given an opportunity to pick up packages slated for orphaning, the remaining packages are orphaned by blocking them. Currently (2010-01-29) we don't have a script to do this, so we re-use find-unblocked-orphans.py
to generate the list. The block-pkg koji
command is used to do the blocking.
$ koji block-pkg --help Usage: koji block-pkg [options] tag package [package2 ...] (Specify the --help global option for a list of other help options) Options: -h, --help show this help message and exit
Koji accepts multiple package names as input and thus we can use the orphan list from the find-unblocked-orphans.py
as input. Orphaned packages are only blocked from the latest dist-f##
tag. For example, if we wanted to orphan (block) sbackup, roxterm,
and uisp
from rawhide during the development of Fedora 13 we would run the following command:
$ koji block-pkg dist-f13 sbackup roxterm uisp
Verification
To verify that the packages were blocked correctly we can use the latest-pkg koji
action.
$ koji latest-pkg dist-f13 wdm
This should return nothing, as the wdm
package is blocked.
Consider Before Running
Generally we block anything that doesn't leave broken dependencies. If there are orphans whose removal would result in broken dependencies a second warning sent to devel@lists.fedoraproject.org and to <package>-owner@fedoraproject.org for each dependent package.
Allow another couple of days for maintainers to take notice and fix these these package so the package repository can be maintained without broken dependencies or needing to orphan the package. It is not good to have broken package dependencies in our package repositories so every effort should be made to find owners or to fix the broken dependencies.