From Fedora Project Wiki

m (moved Retire orphaned packages to Deprecate orphaned packages: New terminology introduced by https://fedorahosted.org/packagedb/ticket/200)
No edit summary
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{admon/important|This page is deprecated| All Fedora Release Engineering Documentation has moved [https://docs.pagure.org/releng/ here] with source hosted along side the code in the [https://pagure.io/releng releng pagure repository]}}
== Description ==
== Description ==


Every release prior to the Feature Freeze we deprecate all the orphans. This keeps out unowned software and prevents future problems down the road.
Every release prior to the [[Schedule|Feature Freeze/Branching]] Release Engineering retires [[Orphaned_package_that_need_new_maintainers|orphaned packages]]. This keeps out unowned software and prevents future problems down the road.


== Action ==
== Action ==
Line 7: Line 9:
# 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 repositories.
# Retriring packages nobody wants to adopt.


=== Detecting Orphans ===
=== Detecting Orphans ===


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</code> installed.  It runs without options, and should take about a minute to complete.
A script called <code>find_unblocked_orphans.py</code> assists in the detection process.  It should be run on a machine that has <code>koji</code> and <code>python-fedora</code> installed.  It runs without options and takes a while to complete.


<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 [https://fedorahosted.org/rel-eng/browser/scripts/find_unblocked_orphans.py|Release Engineering git repository].


=== Announcing Packages to be Deprecated ===
=== Announcing Packages to be retired ===


<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.   


<pre>
<pre>
Line 23: Line 25:
</pre>
</pre>


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.
Email the output to the development list (devel@lists.fedodraproject.org) at least a month before the feature freeze, send mails with updated lists as necessary.  This gives maintainers an opportunity to pick up orphans that are important to them or are required by other packages.
 
=== Blocking orphans ===
 
Once maintainers have been given an opportunity to pick up orphaned packages, the remaining packages are ''deprecated'' by blocking them, and creating the <code>dead.package</code> file in cvs.
 
==== PackageDB ====
Use the <code>Deprecate Package</code> button in [https://admin.fedoraproject.org/pkgdb/ PackageDB] to deprecate a package. This shows interested maintainers, that the package is now deprecated. There might also be a way to do this with a command line client.
 
==== Koji ====
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>
$ 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
</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.  Deprecated packages are only blocked from the latest <code>dist-f##</code> tag.  For example, if we wanted to ''deprecate'' (block) <code>sbackup, roxterm,</code> and <code>uisp</code> from rawhide during the development of Fedora 13 we would run the following command:
 
<pre>
$ koji block-pkg dist-f13 sbackup roxterm uisp
</pre>
 
==== CVS ====
We just have to remove the existing files from the <code>devel/</code> branch and replace them with a <code>dead.package</code> file whos contents describe why the package is dead.


For example, if we wished to clean up CVS for the roxterm package we would:
=== Retiring Orphans ===


<pre>
Once maintainers have been given an opportunity to pick up orphaned packages, the remaining packages are [[How_to_remove_a_package_at_end_of_life|retired]].
$ CVS_RSH=ssh cvs -d :ext:cvs.fedoraproject.org:/cvs/pkgs co roxterm
$ cd roxterm/devel/
$ cvs rm -f * .cvsignore
$ echo "Orphan Cleanup" > dead.package
$ cvs add dead.package
$ cvs commit -m "Orphan Cleanup"
</pre>


==== Bugs ====
==== Bugs ====
This procedure probably leaves open bugs for the deprecated 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.
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 71: Line 38:


<pre>
<pre>
$ koji latest-pkg dist-f13 wdm
$ koji latest-pkg dist-f21 wdm
</pre>
</pre>


Line 77: Line 44:


== Consider Before Running ==
== 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.   
Generally we retire 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 deprecate 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.
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 17:56, 3 November 2015

Important.png
This page is deprecated
All Fedora Release Engineering Documentation has moved here with source hosted along side the code in the releng pagure repository

Description

Every release prior to the Feature Freeze/Branching Release Engineering retires orphaned packages. This keeps out unowned software and prevents future problems down the road.

Action

The orphan process takes place in stages:

  1. Detecting a list of orphans and the dependencies that will be broken if the orphans are removed.
  2. Sending the list of potential orphans to devel@lists.fedoraproject.org for community review and removal from the orphan list.
  3. Retriring packages nobody wants to adopt.

Detecting Orphans

A script called find_unblocked_orphans.py assists in the detection process. It should be run on a machine that has koji and python-fedora installed. It runs without options and takes a while to complete.

find_unblocked_orphans.py is available in the Engineering git repository.

Announcing Packages to be retired

find_unblocked_orphans.pyoutputs 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 month before the feature freeze, send mails with updated lists as necessary. This gives maintainers an opportunity to pick up orphans that are important to them or are required by other packages.

Retiring Orphans

Once maintainers have been given an opportunity to pick up orphaned packages, the remaining packages are retired.

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-f21 wdm

This should return nothing, as the wdm package is blocked.

Consider Before Running

Generally we retire 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.