| //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 retirement, both as a |
| concept and 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. |
| 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 |
| munged 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 mirrored: |
| #svn remove https://dist.apache.org/repos/dist/release/incubator/${podling}# |
| Any incubating releases will still be available via |
| link:http://archive.apache.org/dist/incubator[archive.apache.org/dist/incubator]. |
| - 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". Open sub-tickets using "Create Sub-Task" 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. |
| - Adding an empty index.html into the ${podling} directory as the other retired project does 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 projects committers do not need |
| to be removed. |