//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
= Guide to Retirement
Apache Incubator PMC
2002-10-16
:jbake-type: guide
:jbake-status: published
:idprefix:
:toc:
:imagesdir: ../images/

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 link:http://attic.apache.org[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: &lt;p&gt;&lt;span class="retired"&gt;The ${podling} podling retired on XXXX-XX-XX&lt;/span&gt;&lt;/p&gt;.
- 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
link:http://archive.apache.org/dist/incubator[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:
** This podling has been retired. Please see: http://incubator.apache.org/projects/index.html##{podling-name}
- If the podling has a DOAP referenced in the link:https://svn.apache.org/repos/asf/comdev/projects.apache.org/trunk/data/projects.xml[projects.xml] file used for generating link:http://projects.apache.org[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.
