How to remove a package at end of life

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Procedure: multiple packages per ticket)
(Procedure: update to current situation)
Line 8: Line 8:
  
 
# Make sure the package is properly Obsoleted/Provided by something '''if''' it is being replaced, see [[Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages|Renaming/Replacing Guidelines]]. If not, go on to the next step.
 
# Make sure the package is properly Obsoleted/Provided by something '''if''' it is being replaced, see [[Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages|Renaming/Replacing Guidelines]]. If not, go on to the next step.
# Run <code>fedpkg retire MSG</code>. This will recursively remove all files, then add a <code>dead.package</code> file to git.  This should be done for <code>master</code> and sometimes the branched release if it has not yet released ('''Do not''' do this for released Fedora versions as there's no way to remove the package from end-user's systems) . The MSG parameter is a message which should briefly explain where this package went ('Obsolete package', 'Renamed to bar' or the like) and will be written in the dead.package file.
+
# Run <code>fedpkg retire MSG</code>. This will recursively remove all files, then add a <code>dead.package</code> file to git and retire the package in package DB (requires fedpkg 1.13 or newer).  This should be done for <code>master</code> and sometimes the branched release if it has not yet released ('''Do not''' do this for released Fedora versions as there's no way to remove the package from end-user's systems) . The MSG parameter is a message which should briefly explain where this package went ('Package obsoleted by bar', 'Renamed to bar', or the like) and will be written in the dead.package file.
 
# <code>git rm</code> all files in the other branches '''only if''' there are special factors at work, like licensing issues, or package being removed completely from Fedora.
 
# <code>git rm</code> all files in the other branches '''only if''' there are special factors at work, like licensing issues, or package being removed completely from Fedora.
 
# Remove the package from [[How_to_use_and_edit_comps.xml_for_package_groups| comps]]  if it is listed.
 
# Remove the package from [[How_to_use_and_edit_comps.xml_for_package_groups| comps]]  if it is listed.
 
# Check for and remove the package from any spins kickstarts files: http://git.fedorahosted.org/git/spin-kickstarts.git
 
# Check for and remove the package from any spins kickstarts files: http://git.fedorahosted.org/git/spin-kickstarts.git
# Do '''not''' execute this step if you have not already completed steps 2 and 3, otherwise you will have to ask a [[Provenpackager policy|provenpackager]] to perform those steps for you. Mark the package as "retired" in [https://admin.fedoraproject.org/pkgdb the package database system]: log in with your FAS credentials, go to the page for your package, and click the '''Retire package''' button for each branch on which you are retiring the package.
+
# Not necessary with fedpkg 1.13 or newer: Do '''not''' execute this step if you have not already completed steps 2 and 3, otherwise you will have to ask a [[Provenpackager policy|provenpackager]] to perform those steps for you. Mark the package as "retired" in [https://admin.fedoraproject.org/pkgdb the package database system]: log in with your FAS credentials, go to the page for your package, and click the '''Retire package''' button for each branch on which you are retiring the package.
 
# If the package was registered on [[Upstream_release_monitoring]], remove it from that page
 
# If the package was registered on [[Upstream_release_monitoring]], remove it from that page
# File a [https://fedorahosted.org/rel-eng/newticket ticket] for rel-eng (component <code>koji</code>) asking the package (or packages if there are many) to be blocked from the appropriate collections in which it is retired. You can mention several packages in one ticket.
+
# File a [https://fedorahosted.org/rel-eng/newticket ticket] for rel-eng (component <code>koji</code>) asking the package (or packages if there are many) to be blocked from the appropriate collections in which it is retired. You can mention several packages in one ticket. (There is a experimental service that takes care of this, therefore please only create a ticket if the package is not blocked in koji five minutes after it has been retired in package DB). Check whether it is blocked with koji, e.g. for the package <code>curry</code> there should the a entry with <code>[BLOCKED]</code> for each branch the package was retired in:
 +
<pre>
 +
$ koji list-pkgs  --show-blocked --tag f21 --package curry                             
 +
Package                Tag                    Extra Arches    Owner         
 +
----------------------- ----------------------- ---------------- ---------------
 +
curry                  f20                                      gemi            [BLOCKED]
 +
</pre>
  
 
== EPEL ==
 
== EPEL ==

Revision as of 19:22, 25 August 2013

When a package reaches the end of its useful life, the following procedure will let other people -- and automated processes! -- know both not to expect any more releases, and why it was removed. The process is simple.

Procedure

Please execute the following steps in the order indicated.

  1. Make sure the package is properly Obsoleted/Provided by something if it is being replaced, see Renaming/Replacing Guidelines. If not, go on to the next step.
  2. Run fedpkg retire MSG. This will recursively remove all files, then add a dead.package file to git and retire the package in package DB (requires fedpkg 1.13 or newer). This should be done for master and sometimes the branched release if it has not yet released (Do not do this for released Fedora versions as there's no way to remove the package from end-user's systems) . The MSG parameter is a message which should briefly explain where this package went ('Package obsoleted by bar', 'Renamed to bar', or the like) and will be written in the dead.package file.
  3. git rm all files in the other branches only if there are special factors at work, like licensing issues, or package being removed completely from Fedora.
  4. Remove the package from comps if it is listed.
  5. Check for and remove the package from any spins kickstarts files: http://git.fedorahosted.org/git/spin-kickstarts.git
  6. Not necessary with fedpkg 1.13 or newer: Do not execute this step if you have not already completed steps 2 and 3, otherwise you will have to ask a provenpackager to perform those steps for you. Mark the package as "retired" in the package database system: log in with your FAS credentials, go to the page for your package, and click the Retire package button for each branch on which you are retiring the package.
  7. If the package was registered on Upstream_release_monitoring, remove it from that page
  8. File a ticket for rel-eng (component koji) asking the package (or packages if there are many) to be blocked from the appropriate collections in which it is retired. You can mention several packages in one ticket. (There is a experimental service that takes care of this, therefore please only create a ticket if the package is not blocked in koji five minutes after it has been retired in package DB). Check whether it is blocked with koji, e.g. for the package curry there should the a entry with [BLOCKED] for each branch the package was retired in:
$ koji list-pkgs  --show-blocked --tag f21 --package curry                               
Package                 Tag                     Extra Arches     Owner          
----------------------- ----------------------- ---------------- ---------------
curry                   f20                                      gemi            [BLOCKED]

EPEL

Note that you can use this process for EPEL as well with a few differences:

  • You can remove the package from any EPEL branch whether or not it has been released.
  • The component for the rel-eng ticket is epel rather than koji.

For example, if your package has been added to base RHEL in RHEL-6.4 then perform the steps above but use the el6 branch instead of master. When you open your rel-eng ticket to have the package blocked, use component epel instead of koji.