Estimated Reading Time:

The intent of this document is to help Mentors and other community members understand podling retirement, both as a concept and as a process.

What is Retirement?

A retired podling is one which has been closed down on the initiative of the PPMC or the IPMC for various reasons. It is no 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 supporting or developing it. So long as the Incubator’s copyright requirements are fulfilled by the podling prior to retirement, its source code will continue to be made available through version control.

Retiring a podling is analogous to moving a top-level Apache project to the Attic, but podlings receive a lower level of ongoing support — for example, podling websites are deleted outright rather than edited to indicate retired status.

Deciding to retire

In the vast majority of cases, a podling decides to retire on its own, and that decision is later formally ratified by the Incubator PMC; very rarely, the IPMC may act unilaterally. (This is deliberate mimicry of Board oversight of TLPs — the language and role titles change but, in general, the Board and the IMPC merely implement the wishes of the community.)

Before the IPMC gets involved, a public discussion and community vote SHOULD be held on the podling’s dev list. This ensures that all podling stakeholders are properly informed and have the opportunity to participate in the decision.

The final decision to retire the podling takes the form of a vote by the IPMC on general@incubator. The vote should be by LAZY consensus.

Steps to retirement

Once the IPMC vote to retire the podling has closed, a Mentor or other volunteer needs to perform the following steps.

  • Update content/podlings.xml:

    • Update podling status to "retired".

    • Add an "enddate" attribute set to the date that the IPMC vote concluded.

    • Remove the "reporting" element.

    • Add the "resolution" element. (Follow the example of other recently retired podlings.)

  • Update the podling’s status page with a prominent message indicating when the podling retired: <p><span class="retired">The ${podling} podling retired on XXXX-XX-XX</span></p>.

  • Has the copyright checkbox of the podling’s incubation status page been checked off? If not, try to resolve it. If it cannot be resolved, the podling’s source code must be removed from version control.

  • It may be that the podling is moving or returning development elsewhere. If so, then modify the resolution attributes appropriately.

  • Delete the podling’s dist dir, so that its releases will no longer be available: svn remove https://dist.apache.org/repos/dist/release/incubator/${podling} Any releases the podling made available will still be available via archive.apache.org/dist/incubator. Also delete the dist/dev dir, if present: svn remove https://dist.apache.org/repos/dist/dev/incubator/${podling}

  • Create a file RETIRED.txt at the top-level of each podling source repository. This should contain something like the following:

  • If the podling has a DOAP referenced in the projects.xml file used for generating projects.apache.org, remove the entry.

  • Open a "task" INFRA Jira ticket entitled "Retire the ${podling} Incubator podling". Do not open sub-task tickets but list bullet points as applicable:

    • Close ${podling} mailing lists

    • Make ${podling} version control read-only

    • Move ${podling} Jira to "retired" and set read-only

    • Make ${podling} wiki read-only

    • Turn off ${podling} automatic builds

    • Remove LDAP entry of ${podling}

    • Update ${podling} Incubator SVN if the podling uses SVN repo.

      • Add entries to asf-mailer.conf and send mail to cvs at incubator.apache.org

      • Remove entries from asf-authorization - this makes the directory rw to the Incubator PMC.

  • Add an empty index.html into the ${podling} directory as the other retired project do in https://github.com/apache/incubator/tree/master/assets/retired. The web server that hosts all the podling websites checks for a directory matching the host name, and redirects to the podling status file if it is present.

  • When all steps towards retirement are done, announce completeness on general@incubator.

  • Indicate that the podling is closed down in the next board report.

The user accounts of the project’s committers do not need to be removed.