m (Till moved page Deprecate orphaned packages to Retire orphaned packages over redirect: Actually retire was and is the correct term.) |
(s/deprecate/retire/) |
||
Line 1: | Line 1: | ||
== Description == | == Description == | ||
Every release prior to the Feature Freeze we | Every release prior to the Feature Freeze we all the orphans. This keeps out unowned software and prevents future problems down the road. | ||
== Action == | == Action == | ||
Line 15: | Line 15: | ||
<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 | <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 | === Announcing Packages to be d === | ||
<code>find-unblocked-orphans.py</code>outputs text to stdout on the command line in a form suitable for the body of an email message. | <code>find-unblocked-orphans.py</code>outputs text to stdout on the command line in a form suitable for the body of an email message. | ||
Line 27: | Line 27: | ||
=== Blocking orphans === | === Blocking orphans === | ||
Once maintainers have been given an opportunity to pick up orphaned packages, the remaining packages are '' | Once maintainers have been given an opportunity to pick up orphaned packages, the remaining packages are ''d'' by blocking them, and creating the <code>dead.package</code> file in cvs. | ||
==== PackageDB ==== | ==== PackageDB ==== | ||
Use the <code> | Use the <code> Package</code> button in [https://admin.fedoraproject.org/pkgdb/ PackageDB] to retire a package. This shows interested maintainers, that the package is now retired. There might also be a way to do this with a command line client. | ||
==== Koji ==== | ==== Koji ==== | ||
Line 44: | Line 44: | ||
</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. | 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. d packages are only blocked from the latest <code>dist-f##</code> tag. For example, if we wanted to ''retire'' (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> | ||
Line 62: | Line 62: | ||
==== Bugs ==== | ==== Bugs ==== | ||
This procedure probably leaves open bugs for the | This procedure probably leaves open bugs for the d packages behind. It is not within the scope of releng to take care of these. If bugs are closed, only bugs targeted at Rawhide should be affected, since other branches might still be maintained. | ||
== Verification == | == Verification == | ||
Line 76: | Line 76: | ||
Generally we block anything that doesn't leave broken dependencies. If there are orphans whose removal would result in broken dependencies a second warning should be sent to devel@lists.fedoraproject.org and to <package>-owner@fedoraproject.org for each dependent package. | Generally we block anything that doesn't leave broken dependencies. If there are orphans whose removal would result in broken dependencies a second warning should be 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 package so the package repository can be maintained without broken dependencies or needing to | Allow another couple of days for maintainers to take notice and fix these package so the package repository can be maintained without broken dependencies or needing to 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 08:59, 30 May 2014
Description
Every release prior to the Feature Freeze we all the orphans. This keeps out unowned software and prevents future problems down the road.
Action
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.
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 d
find-unblocked-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 the development list (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. Follow-up on the list where necessary.
Blocking orphans
Once maintainers have been given an opportunity to pick up orphaned packages, the remaining packages are d by blocking them, and creating the dead.package
file in cvs.
PackageDB
Use the Package
button in PackageDB to retire a package. This shows interested maintainers, that the package is now retired. There might also be a way to do this with a command line client.
Koji
Currently (2013-08-19) 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. d packages are only blocked from the latest dist-f##
tag. For example, if we wanted to retire (block) sbackup, roxterm,
and uisp
from rawhide during the development of Fedora 13 we would run the following command:
$ koji block-pkg f21 sbackup roxterm uisp
GIT
We just have to remove the existing files from the master
branch and replace them with a dead.package
file whos contents describe why the package is dead.
For example, if we wished to clean up GIT for the roxterm package we would:
$ fedpkg clone roxterm $ cd roxterm $ fedpkg retire --push "Retired on $(date -I) due to lack of a maintainer in preparation to branch Fedora 21"
Bugs
This procedure probably leaves open bugs for the d packages behind. It is not within the scope of releng to take care of these. If bugs are closed, only bugs targeted at Rawhide should be affected, since other branches might still be maintained.
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 should be 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 package so the package repository can be maintained without broken dependencies or needing to 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.