(Created page with '{{admon/important | Work In Process | This page isn't done yet ~~~~}} == Description == Every release prior to the Feature Freeze we purge all the orphans from the distribution...') |
No edit summary |
||
Line 1: | Line 1: | ||
== Description == | == 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. | 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 | 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 respositories. | |||
=== Detecting Orphans === | === Detecting Orphans === | ||
A script | A script called <code>find-unblocked-orphans.py</code> assits 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. | ||
https://fedorahosted.org/rel-eng/browser/scripts/find-unblocked-orphans.py | |||
<code>find-unblocked-orphans.py</code> is available in the Release Engineering git repo or downloaded from https://fedorahosted.org/rel-eng/browser/scripts/find-unblocked-orphans.py | |||
=== Announcing Packages to be Orphaned === | |||
find-unglocked-orphans.py | <code>find-unglocked-orphans.py</code>outputs text to stdout on the command line in a forma suitable for the body of an email message. | ||
for the body of | |||
$ ./find-unblocked-orphans.py | <pre> | ||
$ ./find-unblocked-orphans.py > email-message | |||
</pre> | |||
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 === | === Blocking orphans === | ||
Once maintainers have been given an opportunity to pick up orphans, we | Once maintainers have been given an opportunity to pick up orphans, we need to do the blocking. Currently we don't have a script to do this, so we re-use the find-unblocked-orphans.py script to generate the list. The 'block-pkg' koji command is used to do the blocking. | ||
need to do the blocking. Currently we don't have a script to do this, | |||
so we re-use the find-unblocked-orphans.py script to generate the list. | |||
The 'block-pkg' koji command is used to do the blocking. | |||
<pre> | |||
$ koji block-pkg --help | $ koji block-pkg --help | ||
Usage: koji block-pkg [options] tag package [package2 ...] | Usage: koji block-pkg [options] tag package [package2 ...] | ||
Line 33: | Line 35: | ||
Options: | Options: | ||
-h, --help show this help message and exit | -h, --help show this help message and exit | ||
</pre> | |||
This can take multiple packages and thus we can use the orphan list from the find command as input. We block packages from the latest dist-f## tag only, for example if we wished to block sbackup roxterm and uisp from rawhide during Fedora 13 development we would run: | |||
<pre> | |||
$ koji block-pkg dist-f13 sbackup roxterm uisp | $ koji block-pkg dist-f13 sbackup roxterm uisp | ||
</pre> | |||
== Action == | |||
<!-- Describe the action and provide examples --> | |||
== 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' koji action. | 'latest-pkg' koji action. | ||
<pre> | |||
$ koji latest-pkg dist-f13 wdm | $ koji latest-pkg dist-f13 wdm | ||
</pre> | |||
This should return nothing, as wdm is a blocked package. | This should return nothing, as wdm is a blocked package. | ||
== Consider Before Running == | == Consider Before Running == | ||
Generally we block anything that doesn't leave any deps, but if there are orphans that are still depended on a second warning sent to devel@lists.fedoraproject.org and to <package>-owner@fedoraproject.org for each dep. | |||
We give another couple of days for maintainers to take notice and pick up packages or rebuild their packages without needing the orphans. We don't like to create broken deps by purging orphans so every effort should be made to find owners or to fix deps. | |||
[[Category:Release Engineering SOPs]] | [[Category:Release Engineering SOPs]] |
Revision as of 02:52, 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 respositories.
Detecting Orphans
A script called find-unblocked-orphans.py
assits 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 repo 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 forma 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 orphans, we need to do the blocking. Currently we don't have a script to do this, so we re-use the find-unblocked-orphans.py script 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
This can take multiple packages and thus we can use the orphan list from the find command as input. We block packages from the latest dist-f## tag only, for example if we wished to block sbackup roxterm and uisp from rawhide during Fedora 13 development we would run:
$ koji block-pkg dist-f13 sbackup roxterm uisp
Action
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 wdm is a blocked package.
Consider Before Running
Generally we block anything that doesn't leave any deps, but if there are orphans that are still depended on a second warning sent to devel@lists.fedoraproject.org and to <package>-owner@fedoraproject.org for each dep.
We give another couple of days for maintainers to take notice and pick up packages or rebuild their packages without needing the orphans. We don't like to create broken deps by purging orphans so every effort should be made to find owners or to fix deps.