| //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. |
| = Transferring Resources out of the Incubator |
| Apache Incubator PMC |
| 2002-10-16 |
| :jbake-type: guide |
| :jbake-status: published |
| :idprefix: |
| :toc: |
| :imagesdir: ../images/ |
| :icons: font |
| |
| == Life After Graduation |
| |
| Once a project has been established by the board, or a sub-project consumed by a TLP, this guide should be followed to migrate |
| the podling from the Incubator to their own TLP. |
| |
| === Handover |
| |
| This is the transfer of virtual resources from the care of |
| the link:/guides/roles_and_responsibilities.html#incubator_project_management_committee_ipmc[IPMC] |
| to the care of either the new or existing top |
| level project taking charge of the graduating community. |
| |
| ==== Graduating as Subproject |
| |
| This is the simple case. The |
| link:/guides/roles_and_responsibilities.html#chair_of_the_incubator_pmc[IPMC Chair] and the Chair of the project accepting the |
| graduating community organize the handover between |
| themselves. |
| |
| You do need to update the Incubator's podlings file. See link:/cookbook/podlings-xml.html#graduated_into_the_pmc_that_sponsored_it[Podling XML Examples]. |
| |
| ==== Graduating as New Top Level Project |
| |
| ===== Board resolution and roster appointment |
| |
| When graduating to a new project, the process is more |
| complex. Creating a new project requires a |
| link:graduation.html#preparing_a_charter[resolution] |
| to be passed by the link:http://www.apache.org/foundation/board/[Board]. |
| You may look at older minutes from the link:http://www.apache.org/foundation/board/calendar.html[calendar] and check for "Establish ProjectName". |
| link:https://whimsy.apache.org/board/agenda/[Board Agenda Tool] has an "Add Item" button that can be used to add the Graduation Resolution to the Board Agenda. |
| |
| The Board votes on graduation resolutions at their monthly meeting. If the Board votes to pass the resolution, that then appoints |
| the listed Project Management Committee including: |
| |
| - a Chair for the new project aka PMC Chair. The Chair will also be appointed an |
| link:http://www.apache.org/foundation/[Officer] |
| of the Apache Software Foundation. This allows them |
| access to official resources of the foundation as well |
| as granting power to act on behalf of Apache within the scope of their project's activities. |
| |
| WARNING: Usually once this happens, the secretary will |
| inform the new chair. |
| Occasionally, this will be missed: if more than 72 |
| hours has passed since the Board meeting, it may be |
| worth pinging the board to request confirmation. |
| |
| - the initial members of Project Management Committee aka PMC members. |
| |
| ===== PMC Chair Todo List |
| |
| Once appointed, the new Chair needs to: |
| |
| - Subscribe to the *board* mailing list |
| - Ensure that they have been added to |
| link:https://people.apache.org/phonebook.html?service=pmc-chairs[the PMC chairs group (pmc-chairs) in LDAP]. |
| |
| WARNING: The ASF Secretary should do this without any action on the part |
| of the new chair. As with above, if it has not happened within |
| 72 hours of the resolution passing, contact the secretary to remind them. |
| |
| - Check out the link:https://svn.apache.org/repos/private/foundation/officers[*foundation/officers*] folder from the private repository. |
| Users with member or pmc-chairs karma can do this. |
| - Add yourself to the #foundation/officers/affiliations.txt# file with the appropriate information. |
| - Add your details to the foundation web site Officer list at link:http://www.apache.org/foundation/index.html[http://www.apache.org/foundation/index.html] |
| (in SVN at link:https://svn.apache.org/repos/asf/infrastructure/site/trunk/content/foundation/[https://svn.apache.org/repos/asf/infrastructure/site/trunk/content/foundation/]) |
| - Review appropriate documentation: |
| ** link:http://www.apache.org/dev/pmc.html#chair[PMC Chair Duties] |
| ** PMC link:http://www.apache.org/dev/#pmc[documentation] |
| ** Incubator link:http://incubator.apache.org/guides/chair.html[Chair guide] |
| ** Reporting link:http://www.apache.org/foundation/board/calendar.html[calendar] |
| - Understand the reporting schedule with the link:/guides/roles_and_responsibilities.html#board[Board]. For |
| the first three months after graduation this will |
| be monthly. After that, the project should slot |
| into a quarterly reporting schedule. Now is a good time to remove |
| the project from the Incubator reporting schedule by updating the podlings.xml file. See link:/cookbook/podlings-xml.html#graduated_as_an_apache_tlp[Podling XML Examples]. |
| - Ensure the PMC is added to the committee-info.txt file at https://svn.apache.org/repos/private/committers/board/committee-info.txt |
| There are 3 sections which need to be updated; see instructions in the file, otherwise update it in link:https://whimsy.apache.org/roster/[Whimsy's Roster Tool] |
| You may need to get a member to help with this, such as your mentors. |
| - They should then be able to start assembling the new |
| link:http://www.apache.org/foundation/how-it-works.html#structure[PMC]. |
| The starting membership is listed in the |
| link:graduation.html#preparing_a_charter[resolution]. However, the Chair of the new project |
| needs to ensure that private list is created and the |
| membership subscribed. |
| |
| ===== PMC Todo List |
| |
| Once appointed, Members of the new PMC need to: |
| |
| - Subscribe to the private mailing list for the project, if they aren't already subscribed from their PPMC membership. |
| - Review appropriate documentation: |
| ** Apache link:http://www.apache.org/dev/pmc.html[PMC Guide] |
| ** Related link:http://www.apache.org/dev/#pmc[documentation] |
| |
| Once all this is in place, resources can start to be |
| handed over to the new project. See next section. |
| |
| IMPORTANT: Please continue to hang around the Incubator and help |
| new podlings have an easier time than you did! |
| |
| === First Steps Outside the Incubator |
| |
| Graduation is the first step in what is hopefully a long road. |
| There are some issues which incubation may not cover. |
| |
| ==== Transferring Resources |
| |
| IMPORTANT: Starting the following steps require that the resolution was passed by the board. |
| |
| When a project graduates, then the infrastructure |
| resources (mailing lists, websites, source, etc.) need to |
| be transferred from the Incubator to a project's new home. |
| |
| Although the below checklist is still generally useful, *the infrastructure process has been streamlined*, see |
| link:http://www.apache.org/dev/infra-contact#requesting-graduation[requesting graduation]. |
| You might also want to check JIRA checklist tickets for projects that graduated in the last month or two. This process is known as "TLP Parent Request" |
| |
| Checklist: |
| |
| - Update the Incubator status records |
| ** Like the rest of incubation, graduation is a process. Updating your status records as you progress will enable others to assist. |
| ** Update the podling status page. All sections should now be filled in |
| including *EXIT*. Take some |
| time to read carefully since this page |
| forms the final public record for |
| graduation. |
| |
| - Source |
| ** SVN repositories will be moved from the incubator to other locations, if you need the move done please raise an infra ticket after the TLP Parent Request. |
| ** Post an announcement to the development list telling everyone that the repository is about to be moved |
| ** Post an announcement containing instructions for developers describing how to #svn switch# their workspaces |
| ** Update site, jenkins, wikis, *pom.xml* and other resources to point to the new repository location. |
| |
| - Websites |
| ** Since podlings receive standard domains, no changes are required |
| ** Once graduated, your website will automatically redirect to remove the *incubator* subdomain |
| ** If you have any fully qualified links to your *podling.incubator.apache.org* on your website change them |
| |
| - Mailing lists |
| ** Mailing lists no longer need to get moved, since podlings are given standard domains. |
| ** If you use *podling.incubator.apache.org* format email addresses, please start using *podling.apache.org* |
| ** When using Maven: update *pom.xml* for |
| the new mailing list address(es). Also update any |
| documents on your website that show how to |
| subscribe to the lists and/or find archives. |
| ** Check project-private mailing list membership. Mentors should be allowed to remain if they wish to do so. |
| The subscriber list should otherwise match that on the resolution. See link:http://www.apache.org/dev/committers.html#mail-moderate[this] and the link:http://www.ezmlm.org/[EZMLM] "Moderator's and Administrator's Manual". |
| ** Update mail addresses including: |
| *** confluence commit messages (see adminstration documentation) |
| *** issue tracking messages (see administration documentation) |
| *** The chair should have karma to perform these tasks. |
| ** Double-check that all of your lists have sufficient active link:http://www.apache.org/dev/committers.html#mailing-list-moderators[moderators]. |
| |
| - Issue Tracking |
| ** Ask infra to move the podling to its own top level category in JIRA, if using JIRA |
| |
| - Distribution mirrors |
| ** Dist area (dist.apache.org) *release/${project}* and *dev/${project}* folders can be created by PMC members. |
| *** Do not forget to copy KEYS file from *release/incubator/${project}* location. |
| *** You have two major options then: |
| **** you can *keep* incubating released artifacts at *release/incubator/${project}* and remove artifacts once your TLP project does their first release. |
| + |
| NOTE: File a JIRA under your newly JIRA *${project}* space to remind to remove */dist/incubator/${project}/* after the first release in */dist/${project}/* |
| + |
| **** you can *move* the last incubating released artifacts to your *release/${project}*, taking care that incubating stay in path (you will need to |
| change website and mail for the new location) |
| |
| === Final Revision of Podling Incubation Records |
| |
| When a project has finished its graduation steps, then the incubator resources |
| need to be updated to indicate that the project is no |
| longer incubating. Here are a few of the items that need |
| to be done: |
| |
| - Update the svn *incubator/trunk/content/projects/${project}.xml* file to show the project's status. |
| |
| - Update the podling summary metadata file, *incubator/trunk/content/podlings.xml* svn file. See the content/podlings.dtd and follow |
| link:/cookbook/podlings-xml.html#graduated_as_an_apache_tlp[Podling XML Examples]: |
| ** Change the podling status to "graduated"; (The only acceptable status are "current", "graduated", and "retired". "graduating" will make your podling disappear from several incubator pages.) |
| ** add the "enddate" attribute to document when the project graduated; |
| ** add the "resolution" element (see other project examples); |
| ** remove the "reporting" element. |
| |
| - After your project has finished reporting to the Incubator, then remove the "reporting" element from that *podlings.xml* file. |
| - Ensure that other svn resources for your project have moved to your new home. |
| - Review this whole graduation guide. |
| |
| *NOTE: Please edit this guide to add missing steps and clarifications.* |
| |
| === New Responsibilities |
| ==== Oversight |
| |
| During the stay in the Incubator, the |
| link:/guides/roles_and_responsibilities.html#incubator_project_management_committee_ipmc[Incubator PMC (IPMC)] |
| was responsible to the |
| link:/guides/roles_and_responsibilities.html#the_board[Board] |
| for oversight. A graduated project must now take |
| responsibility for its own oversight. |
| |
| A project needs to ensure that its code base is |
| clean from an IP perspective. New committers need to |
| recruited, educated and mentored. Quality releases |
| need to be cut. Community spirit needs to be maintained |
| and conflicts resolved positively. Board reports need |
| to be accurate and prompt. |
| |
| Help is still available but the |
| appropriate bodies (infrastructure, community, legal |
| and so on) should now be approached directly. |
| |
| ==== Security |
| |
| Each project needs to be able to manage security issues |
| discovered in their code. By their nature, these issues |
| need to be dealt with in private. These issues may either |
| be dealt with on a separate security list or on the |
| private list. Which list is suitable for security issues |
| should be noted. |
| |
| Volunteers need to be found from the |
| link:http://www.apache.org/foundation/how-it-works.html#structure[PMC] |
| to work with the link:https://www.apache.org/security/committers.html[Apache security team] and act as |
| first contacts on security matters. The new project |
| should make contact with the team soon after graduation |
| and not wait for the first issue to be raised. |
| |
| Projects should adopt a positive attitude towards |
| security issues. It is easy to gain a poor reputation |
| by mishandling of these issues. There are many people |
| at Apache with considerable experience in this area |
| so ask first. |
| |
| ==== Stay In Touch |
| |
| Passing through the incubation process gives a very |
| valuable perspective. Please help to improve the process |
| by guiding new podlings and by developing improved policy |
| and documentation on the link:lists.html#general+at+incubator.apache.org[general] list. |