The Apache Software Foundation
Apache Incubator

Guide to Retirement


The intent of this document is to help mentors to understand the process of retirement.

What is Retirement?

A retired project is a project which has been closed down by the PPMC or by the IPMC for various reasons. It is not longer developed at the Apache Incubator and does not have any other duties.

It's important to view this process as being the retirement of the podling community, not the code. It should not be implied that the code is not for use - just that it has no community. The source code of a retired project is available in SVN, when the copyright requirements are fullfilled. This is indicated through the incubator status page.

Before following the retirement steps, the remaining developers of the project should be informed and vote should happen on the projects dev list. After the vote, the IPMC must vote on the general list to retire the project.

With that said, the ASF is not governed by votes, it is governed by consensus. It's important to note that in votes people often pile on without doing the appropriate background work (a +/-1 is easier than discussing the various options to reach consensus).

Votes in the ASF are usually used to confirm consensus that has already been achieved through discussion. So, in addition to supporting the suggestion to have a [DISCUSS] thread before a [VOTE] thread the following the following are guidelines with respect to podling retirement:

  1. If the PPMC unanimously recommends retirement, it gets retired. No need for a VOTE, just notify the IPMC, leave for 72 hours minimum and retire it.
  2. If the mentors say it should be retired but the PPMC does not unanimously agree then the podling should seek to recruit new mentors. No need to VOTE, just get on with it.
  3. If there insufficient mentors willing to continue working with the project then the IPMC has a problem to address on a case by case basis. The shepherd role ensures that these cases are spotted during the reporting process. If necessary a [DISCUSS] thread can be started and a sensible plan is developed (which may include a VOTE to retire, at this point there should be no -1's as a -1 needs to be backed by a willingness to act and thus this should have been surfaced in case 2) above.
  4. If the project has not had a release for more than a year this fact will get flagged by the Incubator report and the PPMC will be expected to get notified (either by one of the mentors or an IPMC member). The initial discussion with the community is expected to uncover and start addressing the underlying issues preventing the project from producing releases. At this point the project is expected to be put on a monthly reporting schedule and the next month's report is expected to articulate the steps and expected time frame to get to the release. In case of a clear lack of progress for straight three months the [VOTE] thread on potential retirement is expected to be started in IPMC.

Note, this is exactly what happens with board oversight of TLPs, the language and role titles change but in general the board merely implement the wishes of the community. The only time the board makes an actual decision is when the community is breaking down for some reason. This is done on a case by case basis after spending time trying to understand the situation (case 3) above)

Steps to retirement

Do the following steps to retire a project. Note also that there might be some other steps not yet documented (for example, see INCUBATOR-100).

  • Has the copyright checkbox of the incubator status page been checked off? If not, try to resolve it. If it cannot be resolved, source code must be removed from SVN.
  • Update the incubator status page with the message: "2006-06-24 Project requested to be withdrawn from incubation."
  • Update the project DOAP file
  • Create a file RETIRED.txt at the top-level of the podling SVN tree (above trunk/tags/branches). This should contain something like the following:
    This podling has been retired, please see:{podling-name}
  • Make the project SVN readonly (ASFInfra JIRA)
    • Remove entries from asf-authorizaton - this makes the directory rw to the Incubator PMC.
    • Add entries to asf-mailer.conf and send mail to cvs at
  • If JIRA: Move the JIRA project to a Retired category and Retired (read-only) permissions (ASFInfra JIRA)
  • If Bugzilla: Close the project in Bugzilla so new issues cannot be created (ASFInfra JIRA)
  • Make wiki readonly (ASFInfra JIRA)
  • Turn off automatic builds (ASFInfra JIRA)
  • Close the mailinglist (and remove them from the incubator status page)
  • Update the podling status in the file content/podlings.xml to "retired"
  • Also add the "enddate" attribute to document when the project retired.
  • Also add the "resolution" element (see the content/podlings.dtd and follow examples of other recent graduates).
  • Indicate the podling is closed down in the next board report
  • Remove the "reporting" element from the podlings.xml file.
  • Announce completeness on
  • NOTE: Please edit this guide to add missing steps and clarifications.

The user accounts of the projects committers do not need to be removed.