| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you 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. |
| --> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <link rel="stylesheet" href="../style/bootstrap-1-3-0-min.css" type="text/css" /> |
| <link rel="stylesheet" href="../style/style.css" type="text/css" /> |
| <link rel="alternate" title="general@incubator.apache.org Archives" type="application/atom+xml" href="http://mail-archives.apache.org/mod_mbox/incubator-general/?format=atom" /> |
| <title>Projects - Apache Incubator</title> |
| |
| </head> |
| <body> |
| <div class="container"> |
| <div class="row"> |
| <div class="span12"> |
| <a href="http://www.apache.org/"><img src="http://incubator.apache.org/images/asf_logo_wide_small.png" alt="The Apache Software Foundation" border="0" style="margin-top: 2px" width="62%"/></a> |
| </div> |
| <div class="span4"> |
| <a href="http://incubator.apache.org/"><img src="../images/egg-logo2.png" alt="Apache Incubator" border="0"/></a> |
| </div> |
| </div> |
| <div class="row"><div class="span16"><hr noshade="noshade" size="1"/></div></div> |
| |
| <div class="row"> |
| <div class="span4"> |
| <form action="http://www.google.com/search" method="get"> |
| <input value="incubator.apache.org" name="sitesearch" type="hidden"/> |
| <input size="20" name="q" id="query" type="text" value="search..." |
| onclick="if(this.value == 'search...') {this.value = ''}"/> |
| <input name="Search" value="Go" type="submit"/> |
| </form> |
| <div class="menuheader">General</div> |
| <menu compact="compact"> |
| <li><a href="../index.html">Welcome</a></li> |
| <li><a href="../incubation/Process_Description.html">Incubation Overview</a></li> |
| <li><a href="../incubation/Incubation_Policy.html">Incubation Policy</a></li> |
| <li><a href="../guides/index.html">Incubation Guides</a></li> |
| <li><a href="../incubation/Roles_and_Responsibilities.html">Roles and Responsibilities</a></li> |
| <li><a href="../faq.html">General FAQ</a></li> |
| <li><a href="http://wiki.apache.org/incubator">Incubator Wiki</a></li> |
| <li><a href="../whoweare.html">Who We Are</a></li> |
| <li><a href="../sitemap.html">Site Map</a></li> |
| </menu> |
| <div class="menuheader">Status</div> |
| <menu compact="compact"> |
| <li><a href="../projects/index.html">Project List</a></li> |
| <li><a href="../clutch.html">Clutch Report</a></li> |
| <li><a href="../ip-clearance/index.html">IP Clearance</a></li> |
| <li><a href="../history/index.html">Incubator History</a></li> |
| </menu> |
| <div class="menuheader">Entry Guides</div> |
| <menu compact="compact"> |
| <li><a href="../guides/proposal.html">Proposal Guide</a></li> |
| </menu> |
| <div class="menuheader">Podling Guides</div> |
| <menu compact="compact"> |
| <li><a href="../guides/committer.html">Podling Committers</a></li> |
| <li><a href="../guides/ppmc.html">Podling PMC (PPMC)</a></li> |
| <li><a href="../guides/mentor.html">Podling Mentor</a></li> |
| <li><a href="../guides/releasemanagement.html">Podling Releases</a></li> |
| <li><a href="../guides/branding.html">Podling Branding/Publicity</a></li> |
| <li><a href="../guides/sites.html">Podling Websites</a></li> |
| <li><a href="../guides/graduation.html">Graduation</a></li> |
| <li><a href="../guides/retirement.html">Retirement</a></li> |
| </menu> |
| <div class="menuheader">Other Guides</div> |
| <menu compact="compact"> |
| <li><a href="../guides/participation.html">Participation</a></li> |
| <li><a href="../faq.html">General FAQ</a></li> |
| <li><a href="../guides/pmc.html">Incubator PMC (IPMC)</a></li> |
| <li><a href="../guides/chair.html">IPMC Chair</a></li> |
| <li><a href="../guides/lists.html">Mailing Lists</a></li> |
| <li><a href="../guides/website.html">Incubator Website</a></li> |
| </menu> |
| <div class="menuheader">ASF</div> |
| <menu compact="compact"> |
| <li><a href="http://www.apache.org/foundation/how-it-works.html">How Apache Works</a></li> |
| <li><a href="http://www.apache.org/dev/">Developer Documentation</a></li> |
| <li><a href="http://www.apache.org/foundation/">Foundation</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| </menu> |
| <!-- start Ads Server --> |
| <iframe src="http://www.apache.org/ads/buttonbar.html" |
| style="border-width:0; float: left" frameborder="0" scrolling="no" |
| width="135" height="265"></iframe> |
| <!-- end Ads Server --> |
| </div> |
| |
| <div class="span12"> |
| <h2 id='Incubating+Project+and+Mentor+Guides'><img src="../images/redarrow.gif" />Mentor Guide</h2> |
| <div class="section-content"> |
| <p>This document targets any Incubating Project member, but |
| especially Mentors, who have to ensure that some things get done. |
| For a general description of the role of a mentor on an incubating |
| project see the |
| <a href="http://incubator.apache.org/incubation/Roles_and_Responsibilities.html#Mentor">Roles and Responsibilities |
| </a>document. |
| </p> |
| <p> |
| This guide is a descriptive and at times |
| discursive document. It describes established practices. |
| It is informational not normative. Policy is laid down in the |
| <a href="../incubation/Incubation_Policy.html">Incubation Policy</a>. |
| </p> |
| <h3 id='TOC'>Contents</h3> |
| <div class="section-content"> |
| <ul> |
| <li><a href='#Incubating+Project+and+Mentor+Guides'> |
| Mentor Guide |
| </a> |
| <ul> |
| <li><a href='#TOC'> |
| Contents |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#Overview'> |
| Overview |
| </a> |
| </li> |
| <li><a href='#Sending+in+an+Incubation+Report'> |
| Add to Incubation Summary file |
| </a> |
| </li> |
| <li><a href='#Initialize+Podling+Status+Page'> |
| Initialize Podling Status Page |
| </a> |
| </li> |
| <li><a href='#Set+Up+Podling'> |
| Set Up Podling |
| </a> |
| <ul> |
| <li><a href='#Set+Up+GIT+Repository'> |
| Set up GIT Repository |
| </a> |
| </li> |
| <li><a href='#Set+Up+SVN+Repository'> |
| Set Up SVN Repository |
| </a> |
| </li> |
| <li><a href='#Authorize+Committers'> |
| Authorize Committers |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#bootstrap'> |
| [DRAFT] Podling Bootstrap |
| </a> |
| <ul> |
| <li><a href='#mentors-ipmc'> |
| Mentors MUST be on the IPMC |
| </a> |
| </li> |
| <li><a href='#submit-cla'> |
| CLA and CCLA Submission |
| </a> |
| </li> |
| <li><a href='#initial-ip-clearance'> |
| IP Clearance |
| </a> |
| <ul> |
| <li><a href='#initial-up-clearance-general'> |
| Background |
| </a> |
| </li> |
| <li><a href='#initial-provenance'> |
| Establishing Provenance |
| </a> |
| </li> |
| <li><a href='#initial-import-code-dump'> |
| Initial Code Dump |
| </a> |
| <ul> |
| <li><a href='#svn-history'> |
| Importing History |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#crypto-audit'> |
| Audit Cryptography |
| </a> |
| </li> |
| <li><a href='#initial-clean-up'> |
| Initial Clean Up |
| </a> |
| <ul> |
| <li><a href='#clean-up-best-practice'> |
| Clean Up Best Practice |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#repackaging'> |
| On Repackaging |
| </a> |
| </li> |
| <li><a href='#documents-clean-up'> |
| Update Documents |
| </a> |
| <ul> |
| <li><a href='#build-clean-up'> |
| Update Build |
| </a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#request-required-resources'> |
| Request Required Resources |
| </a> |
| <ul> |
| <li><a href='#request-mailing-lists'> |
| Request Mailing Lists |
| </a> |
| <ul> |
| <li><a href='#mail-archives'> |
| Mail Archives |
| </a> |
| </li> |
| <li><a href='#mail-admin'> |
| Mailing List Administration |
| </a> |
| </li> |
| <li><a href='#transition-mailing-lists'> |
| Mailing List Transition |
| </a> |
| </li> |
| <li><a href='#request-issue-tracking'> |
| Issue Tracking |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#orientation'> |
| Orientating New Committers: Understanding Apache |
| </a> |
| </li> |
| <li><a href='#issue-tracking-transition'> |
| Issue Tracking Transition |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#poding-ip-clearance'> |
| Podling IP Clearance |
| </a> |
| </li> |
| <li><a href='#create-website'> |
| Create Initial Website |
| </a> |
| <ul> |
| <li><a href='#web-site-transition'> |
| Web Site Transition |
| </a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li><a href='#glossary'> |
| Glossary |
| </a> |
| <ul> |
| <li><a href='#who-committers'> |
| Prospective Committers |
| </a> |
| </li> |
| <li><a href='#who-infra'> |
| Infrastructure Team |
| </a> |
| </li> |
| <li><a href='#who-auth-karma'> |
| Incubator Access Authorization |
| </a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| <h2 id='Overview'><img src="../images/redarrow.gif" />Overview</h2> |
| <div class="section-content"> |
| <p> |
| After the Podling has been accepted by the Incubator PMC, the mentor |
| <a href="../incubation/Incubation_Policy.html#Setting+Up+a+New+Podling">sets up</a> |
| the Podling; <em>i.e.</em> adds the podling metadata, creates the initial Podling status page, and |
| either creates or requests that |
| other resources (mail lists, subversion, bug tracker, <em>etc.</em>) |
| be created. |
| </p> |
| </div> |
| <h2 id='Sending+in+an+Incubation+Report'><img src="../images/redarrow.gif" />Add to Incubation Summary file</h2> |
| <div class="section-content"> |
| <p> |
| Add the podling to the podling summary file in |
| the "incubator" SVN at <code>content/podlings.xml</code> |
| (e.g. copy the entry from another podling that also has status="current") |
| and see <a href="website.html">instructions</a>. |
| </p> |
| <p> |
| Please do this step ASAP after Acceptance. Other setup procedures utilize |
| this metadata. |
| </p> |
| <p> |
| Add a 'reporting' tag (after 'description') with the attribute 'monthly="true"' |
| and the appropriate "group" attribute, based on the month in which the podling |
| entered incubation (1 for January, April, July, October, 2 for February, May, |
| August, November or 3 for March, June, September, December). The text content |
| of the 'reporting' tag must contain the initial list of reporting months, |
| starting with the month after the podling entered incubation. For example: |
| <code><reporting group="2" monthly="true">June, July, August</reporting></code> |
| Once the first three reports are complete, the monthly attribute should be removed |
| and the list of months removed as well. |
| </p> |
| <p> |
| The first report might be |
| very short. However it is better that the Incubator PMC can help to |
| guide through the early setup stages. |
| For more details see the |
| <a href="ppmc.html#Incubator+ASF+Board+Reports">PPMC Guide</a>. |
| </p> |
| </div> |
| <h2 id='Initialize+Podling+Status+Page'><img src="../images/redarrow.gif" />Initialize Podling Status Page</h2> |
| <div class="section-content"> |
| <p> |
| A mentor needs to |
| <a href="website.html#Edit+your+project+status+page">create the |
| web page</a> that will track the project's status. |
| A mentor will also need to update it until |
| <a href="ppmc.html#Project+Status+Updates">others in the |
| the project's PPMC can update it</a>. |
| </p> |
| <p> |
| The status |
| page is the incubator's record of the progress made. |
| It MUST be kept update to date during incubation. |
| Some of the information is available from the proposal. |
| As the startup process continues and resources are |
| created the status SHOULD be updated. |
| </p> |
| <p> |
| The template contains lists of actions which may be needed |
| to start up a podling. All those which do not apply should |
| be deleted. |
| </p> |
| <p> |
| The status page is a useful aid to workflow. Volunteers |
| can use it to sign up to the various tasks and monitor their |
| progress. Once the mailing lists are set up and prospective |
| committers subscribe then these may be used for discussion. |
| </p> |
| </div> |
| <h2 id='Set+Up+Podling'><img src="../images/redarrow.gif" />Set Up Podling</h2> |
| <div class="section-content"> |
| <p> |
| The most important responsibility for mentors is to set up the |
| podling source repository. Podlings can choose between svn and |
| git for source control. |
| </p> |
| <h3 id='Set+Up+GIT+Repository'>Set up GIT Repository</h3> |
| <div class="section-content"> |
| <p> |
| Setting up git for a podling is simple. You open a JIRA to |
| INFRA and request it. You can either ask for a bare |
| repository or for a repository imported from some |
| publically-accessible existing repository; tell infra what you |
| need. |
| </p> |
| <p> |
| The Foundation's policy |
| is to grant access to git repositories broadly to the incubator group, |
| not narrowly podling-by-podling. So, once the repository |
| exists, incubator group members gain access without further work. Once |
| the podling graduates, a dedicated ldap group will be created to manage |
| access and only those members will be given access. |
| </p> |
| </div> |
| <h3 id='Set+Up+SVN+Repository'>Set Up SVN Repository</h3> |
| <div class="section-content"> |
| <p> |
| If the podling chooses svn, you must create the |
| repository and give read/write access to the repository |
| to all the committers for the podling. This involves requesting |
| new committer accounts and granting access to mentors and existing |
| Apache committers. |
| </p> |
| <p>Setting up a podling subversion repository has two steps: Creating the SVN space |
| and configuring the authorization (in both svn and git). |
| </p> |
| <p> |
| Create the workspace in svn. This requires commit access to the |
| incubator svn repository. Podlings are given their own subdirectory |
| of the incubator svn repository. To create the podling subdirectory, |
| the mentor executes the svn command to create a remote directory: |
| <code> |
| svn mkdir https://svn.apache.org/repos/asf/incubator/{podling} |
| </code> |
| </p> |
| <p>Create the workspace authorization in asf-authorization-template. |
| This requires commit access to the file |
| <code>https://svn.apache.org/repos/infra/infrastructure/trunk/subversion/authorization/asf-authorization-template</code> |
| as well as commit access to the git repo <code>infrastructure-puppet</code> to update the file |
| <code>modules/subversion_server/files/authorization/asf-authorization-template</code>. Please follow the procedures in the <a href="https://cwiki.apache.org/confluence/display/INFRA/Git+workflow+for+infrastructure-puppet+repo">infrastructure puppet workflow</a> document. |
| </p> |
| <p> |
| Edit the file to add the podling repository in alphabetical order, e.g. |
| </p> |
| <div class="source"><code>{podling}={mentor1},{mentor2}</code> |
| </div> |
| <p> |
| In the section listing all the projects (again in alphabetical order) |
| add the podling directory and permissions, to enable the podling for its |
| eventual website: |
| </p> |
| <div class="source"><code>[/incubator/{podling}] |
| @{podling} = rw |
| ...</code> |
| </div> |
| <p> |
| Enable the podling for the Incubator website: |
| </p> |
| <div class="source"><code>[/incubator/public] |
| ... |
| @{podling} = rw |
| ...</code> |
| </div> |
| <p> |
| This is a convenient time to add <a href="#Authorize+Committers">authorization</a> for committers |
| who have accounts. |
| </p> |
| <p> |
| <a href="#who-auth-karma">Authorization</a> karma is restricted. If no Mentor |
| has this karma then post an email to IPMC private list requesting that this |
| is actioned. |
| </p> |
| </div> |
| <h3 id='Authorize+Committers'>Authorize Committers</h3> |
| <div class="section-content"> |
| <p>The process to add committers to the podling depends on whether |
| the new committer is already an Apache committer and whether |
| the new committer is in the list of original committers: |
| </p> |
| <ul> |
| <li>The committer is in the list of original committers in the |
| podling proposal to the incubator and is not already an Apache |
| committer: |
| <ul> |
| <li> |
| Ask developers to send their ICLA to secretary@apache.org according to |
| <a href="http://apache.org/licenses/#submitting">standard procedure.</a> |
| Note that ICLA forms must be signed, either by hand or by digital signature. |
| </li> |
| <li> |
| Developers should choose an Apache id that is not already listed |
| <a href="http://people.apache.org/committer-index.html">here.</a> |
| </li> |
| <li> |
| Developers should enter their preferred Apache id on the ICLA |
| and enter the podling name in the "notify" field of the ICLA. |
| </li> |
| </ul> |
| </li> |
| <li> The committer is in the list of original committers in the |
| podling proposal to the incubator and is already an Apache committer, only |
| <a href="#who-auth-karma">incubator authorization</a> is required. |
| </li> |
| <li>The committer was voted by the PPMC and approved by the incubator |
| PMC: |
| </li> |
| <p> |
| Perform one of the above procedures depending on whether the |
| committer is already an Apache committer on another project. |
| </p> |
| </ul> |
| </div> |
| </div> |
| <h2 id='bootstrap'><img src="../images/redarrow.gif" />[DRAFT] Podling Bootstrap</h2> |
| <div class="section-content"> |
| <p> |
| <strong>NOTE</strong> This section is a DRAFT under development. |
| </p> |
| <p> |
| Following podling creation, it needs to be bootstrapped. Here are some of |
| the tasks: |
| </p> |
| <ol> |
| <li>Ensure <a href="#mentors-ipmc">Mentors are on the IPMC</a>[<code>Mentors</code>]</li> |
| <li>Add podling to <a href="#Sending+in+an+Incubation+Report">reporting schedule</a> [<code>IPMC member</code>]</li> |
| <li><a href="#Initialize+Podling+Status+Page">Initialize project status page</a> [<code>IPMC member</code>]</li> |
| <li>Start <a href="#orientation">orientation</a> [<code><a href="#who-committers">Prospective committers</a></code>]</li> |
| <li>Start <code>CLA</code> and <code>CCLA</code> submission [<code><a href="#who-committers">Prospective committers</a></code>]</li> |
| <li>Start <a href="#initial-ip-clearance">IP Clearance</a> |
| [<code>IPMC member</code>]</li> |
| <li>Request Required Resources |
| <ol> |
| <li><a href="#request-mailing-lists">Mailing Lists</a> [<a href="#who-infra">Infrastructure Team</a>] |
| <ul> |
| <li>Consider and plan <a href="#transition-mailing-lists">transition to official mailing lists</a></li> |
| </ul> |
| </li> |
| <li><a href="#Set+Up+Repository">Subversion</a> [IPMC]</li> |
| <li><a href="#request-issue-tracking">Issue Tracking</a> [<a href="#who-infra">Infrastructure Team</a>] |
| <ul> |
| <li>Consider and plan <a href="#issue-tracking-transition">issue tracking transition</a></li> |
| </ul> |
| </li> |
| </ol> |
| </li> |
| <li><a href="#create-website">Create website</a> [<code><a href="#who-committers">Prospective committers</a></code>] |
| <ol> |
| <li>Consider and plan <a href="#web-site-transition">web site transition</a></li> |
| </ol> |
| </li> |
| |
| </ol> |
| <h3 id='mentors-ipmc'>Mentors MUST be on the IPMC</h3> |
| <div class="section-content"> |
| <p> |
| Mentors <a href="../incubation/Incubation_Policy.html#Mentor">MUST</a> be on the IPMC. |
| Any prospective Mentors who are not yet on the IPMC should ask to be added (by election). |
| Email the application to <code>private@incubator.apache.org</code>. |
| </p> |
| <div class="note"> |
| <note> |
| This process may take a few days. |
| </note> |
| </div> |
| </div> |
| <h3 id='submit-cla'>CLA and CCLA Submission</h3> |
| <div class="section-content"> |
| <p> |
| Prospective committers need to submit a |
| Contributor License Agreement |
| (<a href="http://www.apache.org/licenses/#clas">CLA</a>). |
| This process can take a while so it is recommended that committers start to submit |
| these as soon as the podling is accepted. |
| </p> |
| </div> |
| <h3 id='initial-ip-clearance'>IP Clearance</h3> |
| <div class="section-content"> |
| <h4 id='initial-up-clearance-general'>Background</h4> |
| <div class="section-content"> |
| <p> |
| Existing codebases need to be imported through the standard IP clearance |
| process. This means that a Software Grant Agreement |
| (<a href="http://www.apache.org/licenses/#grants">SGA</a>) |
| or Contributor License Agreement |
| (<a href="http://www.apache.org/licenses/#clas">CLA</a>) |
| need to be submitted |
| for all copyright owners. This process may take a while so it is best to |
| start as soon as the podling is accepted. |
| </p> |
| <p> |
| The acceptance of the initial codebases is approved by the |
| IPMC as part of the acceptance motion. So, no vote is required by the |
| PPMC. Otherwise, follow the standard IP clearance |
| <a href="#poding-ip-clearance">process for podlings</a>. |
| </p> |
| </div> |
| <h4 id='initial-provenance'>Establishing Provenance</h4> |
| <div class="section-content"> |
| <p> |
| Paperwork needs to be submitted to Apache that grants a legal license on the code |
| to the Apache Software Foundation. |
| As a rule of thumb, if all the material contributors to the code |
| are joining the podling as initial contributors, then CLAs (individual or corporate) |
| are all you need. The individuals must submit the 'individual' CLA (ICLA). |
| If there are employers involved who might claim |
| rights in the code, then corporate CLAs (CCLAs) are needed for those employers. |
| </p> |
| <p> |
| If, on the other hand, there are material contributors who are <strong> |
| not</strong> joining the podling as initial contributors, or if there |
| are additional corporate entities who can claim rights in the code, |
| then SGAs are required from those individuals or corporations. |
| </p> |
| <p> |
| The foregoing is only a rule of thumb. Generally, the mentors of a new project |
| will need to consult with general@incubator.apache.org or the Apache legal team |
| about the particular circumstances. |
| </p> |
| <p> |
| It may take some time to track down all contributors. It is not necessary to |
| have paperwork on file for all contributions before the code is imported. |
| It may be necessary to reverse some patches and rewrite areas of code if |
| contributors cannot be found or at not happy about given Apache written |
| permission to use their code. |
| </p> |
| <p> |
| No releases are possible until the provenance of all the code to be release |
| has been clearly established and the relevant paperwork filed with Apache. It is |
| therefore important to keep the status updated. |
| </p> |
| <p> |
| Receipts of ICLAs, CCLAs, and SGAs are recorded by the secretary in |
| the private foundation repository. Reading is restricted to members and officers |
| of the foundation. If there is no officer or member available then ask on the |
| general list. |
| </p> |
| </div> |
| <h4 id='initial-import-code-dump'>Initial Code Dump</h4> |
| <div class="section-content"> |
| <p> |
| For corporate contributions, the SGA or CCLA MUST be completed, submitted |
| and received before the code is imported. |
| </p> |
| <p> |
| For contributions composed of patches from individual contributors, |
| it is safe to import the code once the major contributors (by volume) |
| have completed ICLAs or SGAs. |
| </p> |
| <p> |
| In either case, the code to be imported should be attached to a JIRA |
| and then imported. It is recommended that the previous version |
| control system is tagged so that the imported version is precisely known. |
| </p> |
| <p> |
| A public record MUST be made of the code imported. If the import is not |
| attached to JIRA then it MUST be committed to version control. |
| </p> |
| <h5 id='svn-history'>Importing History</h5> |
| <div class="section-content"> |
| <p> |
| The incoming code can either be committed as a snapshot or as a complete version |
| control export including history (provided that the import is available in a format |
| readable by subversion). |
| Importing with history allows existing open source projects who want to maintain |
| older versions at Apache to easily perform source diffs and so on. Import just the |
| latest code allows a clean break to be made with the past. The choice is left to |
| the community of the incoming project. |
| </p> |
| <p> |
| The infrastructure team will perform the import including |
| mapping IDs but it is an operation that requires skill, time and care. In this case, |
| please ask the infrastructure team politely. |
| </p> |
| </div> |
| </div> |
| <h4 id='crypto-audit'>Audit Cryptography</h4> |
| <div class="section-content"> |
| <p> |
| Before the code base is committed into an Apache repository, the contribution |
| <a href="http://www.apache.org/dev/crypto.html">MUST</a> be checked |
| and any restricted cryptography reported appropriately. Read and follow |
| <a href="http://www.apache.org/dev/crypto.html">this guide</a>. |
| </p> |
| </div> |
| <h4 id='initial-clean-up'>Initial Clean Up</h4> |
| <div class="section-content"> |
| <p> |
| Once a JIRA has been created, the source should be cleaned up. |
| </p> |
| <p> |
| <ul> |
| <li> |
| Ensure source files use the standard Apache boilerplates. |
| This may mean replacing existing license headers. The |
| tools in |
| <code> |
| https://svn.apache.org/repos/private/committers/tools |
| </code> |
| and |
| <code> |
| https://svn.apache.org/repos/private/committers/relicense |
| </code> |
| may be useful. |
| </li> |
| <li> |
| Ensure that NOTICE and LICENSE documents are present and |
| correct |
| </li> |
| <li> |
| Add any required notices. Consider moving copyright |
| attributions from source documents to the NOTICE. Read |
| <a href="http://www.apache.org/legal/src-headers.html"> |
| Apache policy on headers |
| </a> |
| . |
| </li> |
| <li> |
| Audit the source for any potential licensing issues. Any |
| which are found should either resolved immediately (when |
| required) or noted in the status document for later. |
| </li> |
| </ul> |
| </p> |
| <p> |
| It is recommended that the initial clean up be is started |
| before the code is committed. It MUST be completed before any |
| releases are cut. |
| </p> |
| <h5 id='clean-up-best-practice'>Clean Up Best Practice</h5> |
| <div class="section-content"> |
| <p> |
| It is recommended that version control is used to create a |
| public record of the process. This will assist anyone |
| auditing the code provenance (now or in the future) to |
| easily perform due diligence without contacting the people |
| who performed the clean up. The clean up process should |
| therefore clearly document (using version control) the |
| evolution of the IP licensing. |
| </p> |
| <p> |
| Particular care needs to be taken with commit messages |
| during clean up. The intended audience needs to include |
| lawyers and code auditors. Members of the public need to be |
| able to follow and understand the process from these |
| messages alone. |
| </p> |
| <p> |
| It is therefore recommended that the initial source is |
| (after being expanded from the archive) checked in as is |
| into a special directory ( |
| <code>${project}/trunk/import</code> |
| is suggested). The original packaging, copyright statements |
| and license notices should be preserved. A standard Apache |
| LICENSE and appropriate NOTICE should be added at the top |
| for the copyright for the collective work (see |
| <a href="http://www.apache.org/legal/src-headers.html"> |
| policy |
| </a> |
| ). Take particular care with this commit message. As with |
| any patch that contains code which is not the original work |
| of the committer, the JIRA url (for the artifact imported) |
| needs to be included together with notes about the original |
| copyright owner and any associated paperwork. The fact that |
| this is a exact import including original headers should be |
| noted to stop any queries about these foreign headers. |
| </p> |
| <p> |
| The cleanup should then proceed in a number of commits. If |
| the source provenance is complex, break the process up into |
| a number of logical steps committing each in turn with a |
| good message. |
| </p> |
| <p> |
| In particular, take care when relocating copyright |
| statements and license notices into the NOTICE in the root |
| directory: consider moving each copyright owner individually |
| so that it is easier to audit. (See |
| <a href="http://www.apache.org/legal/src-headers.html#notice"> |
| policy |
| </a> |
| .) |
| </p> |
| <p> |
| Once a section of code has been cleaned up |
| (and <a href="#repackaging">repackaged</a>, |
| if necessary) normal development can begin. |
| </p> |
| </div> |
| </div> |
| <h4 id='repackaging'>On Repackaging</h4> |
| <div class="section-content"> |
| <p> |
| It is recommended - but not mandated - that source is repackaged |
| under the Apache namespace. There is no need to use the incubator |
| namespace. For example, Java source might be repackaged to |
| <code>org.apache.foo.Bar</code> or a DTD to <code>http://dtd.apache.org/foo/bar</code>. |
| </p> |
| <p> |
| Existing open source projects moving to Apache may well need to consider |
| carefully how they will approach this transition. |
| </p> |
| </div> |
| <h4 id='documents-clean-up'>Update Documents</h4> |
| <div class="section-content"> |
| <p> |
| Check the documentation for references to the old home of the project and update them |
| with references to Apache. |
| </p> |
| <p> |
| Read |
| <a href="http://incubator.apache.org/guides/branding.html">Branding Guide</a>. |
| Ensure that appropriate disclaimers are added to the appropriate documentation. |
| Consider adding a <code>DISCLAIMER</code> text document. |
| </p> |
| <h5 id='build-clean-up'>Update Build</h5> |
| <div class="section-content"> |
| <p> |
| If the project uses <a href="http://maven.apache.org">Apache Maven</a>, the pom will |
| need to be updated to reflect that the project is now at Apache. In particular: |
| </p> |
| <ul> |
| <li>Update <code>mailingLists</code></li> |
| <li>Update <code>organization</code></li> |
| <li>Update <code>url</code></li> |
| <li>Update <code>issueManagement</code></li> |
| <li>Check <code>licenses</code></li> |
| <li>Update <code>scm</code></li> |
| <li>Update <code>groupId</code></li> |
| <li>Update <code>manifestEntries</code>. It is recommended that the |
| standard Apache settings are used</li> |
| <li>Update <code>developers</code> to use apache IDs (when known)</li> |
| <li>Update <code>distributionManagement</code></li> |
| <li>Consider specifying a <a href="http://maven.apache.org/pom.html#relocation">relocation</a></li> |
| </ul> |
| <p> |
| If the project uses <a href="http://ant.apache.org">Apache Ant</a>, the build script |
| will probably need to be updated. In particular: |
| </p> |
| <ul> |
| <li>Ensure any MANIFESTs generated refer to Apache. It is recommended that the |
| standard Apache settings are used.</li> |
| <li>Check that <code>LICENSE</code>, <code>NOTICE</code> and - if appropriate - |
| <code>DISCLAIMER</code> documents are copied into binary artifacts</li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| <h3 id='request-required-resources'>Request Required Resources</h3> |
| <div class="section-content"> |
| <p> |
| The proposal should include a list of required resources. All of these will |
| require active set up. Some are created by infrastructure after an appropriate |
| request, others can be set up by any IPMC members (typically mentors). |
| </p> |
| <p> |
| Mailing lists should be created first. Other resources typically |
| post information to these lists. |
| </p> |
| <h4 id='request-mailing-lists'>Request Mailing Lists</h4> |
| <div class="section-content"> |
| <p> |
| Apache mailing lists require volunteer moderators. New moderators can be |
| <a href="http://www.apache.org/dev/committers.html#mailing-list-moderators">changed later</a> |
| but at least one volunteer is required before the mailing lists can be set up. |
| Moderation is a reasonably |
| <a href="http://www.apache.org/dev/committers.html#mail-moderate">easy task</a> |
| though moderators may want to set up |
| <a href="http://spamassassin.apache.org/">spam filtering</a>. |
| Having at least three moderators is recommended to spread the load. |
| </p> |
| <p> |
| The proposal should contain the rest of the information that needs to be collected |
| before the mailing lists can be requested. Incubator is the responsible top level project. |
| So the domain <code>MUST</code> be <code>incubator.apache.org</code>. |
| For example: |
| </p> |
| <ul> |
| <li>dev@${podling}.incubator.apache.org</li> |
| <li>commits@${podling}.incubator.apache.org</li> |
| <li>private@${podling}.incubator.apache.org</li> |
| </ul> |
| <p> |
| For initial community building it is usually appropriate to only have |
| a "dev" list, to keep the discussions focussed. Later add a "user" list |
| if needed. |
| </p> |
| <div class="note"> |
| <note> |
| Commits under <code>http://svn.apache.org/repos/asf/incubator/<em>${podling}</em></code> |
| will be emailed to <code>commits@${podling}.incubator.apache.org</code>. |
| Any deviation will |
| require special configuration in the <code>asf-mailer.conf</code> file by the IPMC. |
| </note> |
| </div> |
| <p> |
| Mailing lists creation is a task for the <a href="#who-infra">infrastructure team</a>. The |
| infrastructure team offers a tool that simplifies the creation of mailing lists - please |
| visit the <a href="https://infra.apache.org/">infrastructure site</a> for the latest link. |
| Note that there is an incubator-specific link at the bottom of the initial form. A notification |
| will be sent to private@incubator when the lists have been created. |
| </p> |
| <p> |
| Remember to update the project status file with mailing list details. Prospective committers |
| and mentors will need to subscribe. Email them once the status file has been updated. Inform |
| any existing mailing lists or forums previously used by the project. |
| </p> |
| <p> |
| Once the <code>commits</code> list is created, the project MUST review |
| the <code>/incubator/${podling}</code> tree, since any commits made prior |
| to the list's creation will have generated no email trail. |
| </p> |
| <h5 id='mail-archives'>Mail Archives</h5> |
| <div class="section-content"> |
| <p> |
| Archives at <a href="http://mail-archives.apache.org">http://mail-archives.apache.org</a> for the public |
| mailing lists will be setup as part of the mailing list creation process. No action is |
| required by Mentors. The archives will be <a href="http://mail-archives.apache.org/mod_mbox/">visible</a> |
| as soon as posts have been made (and moderated) to these lists. |
| </p> |
| <p> |
| Many projects are independently archived externally (for example, at |
| <a href="http://www.mail-archive.com/">The Mail Archive</a> and |
| <a href="http://marc.info/?q=about">MARC</a>) |
| Independent archives help to |
| increase project visibility as well as preserving a independent historic record. |
| These subscriptions are not automatically created. If desired, subscribe manually. |
| </p> |
| <p> |
| Subscriptions to news-to-mailing-list bridges (for example, <a href="http://www.nabble.com">Nabble</a>) |
| must also be created manually. Subscribing helps accessibility and visibility but Nabble news |
| users may not be aware that they are posting to a mailing list. |
| </p> |
| </div> |
| <h5 id='mail-admin'>Mailing List Administration</h5> |
| <div class="section-content"> |
| <p> |
| Apache uses <a href="http://www.ezmlm.org/">ezmlm</a>. See the |
| <a href="http://www.ezmlm.org/man/ezmlmman.html">manual</a> and |
| committer <a href="http://www.apache.org/dev/committers.html#mail">mail FAQ</a> |
| for more details. |
| </p> |
| </div> |
| <h5 id='transition-mailing-lists'>Mailing List Transition</h5> |
| <div class="section-content"> |
| <p> |
| Independent mailing lists and groups are perfectly acceptable but development should |
| happen on the official mailing lists at Apache. If a project has existing mailing lists, |
| forums or groups the community needs to consider their future and plan for the transition |
| to the official Apache mailing lists. |
| </p> |
| <p> |
| It may be useful to move development first to the official lists followed gradually |
| by the user resources. |
| </p> |
| <p> |
| Note that subscribers of external mailing lists will not be automatically subscribed |
| to the new Incubator project mailing lists. Instead, a note should be posted to the |
| old external mailing list asking them to subscribe to the new list. If possible, add |
| a footer to the old mailing list with some instructions. |
| </p> |
| </div> |
| <h5 id='request-issue-tracking'>Issue Tracking</h5> |
| <div class="section-content"> |
| <p> |
| If any Mentor has project-creation karma (in the issue tracking system to be used) |
| then they should execute. |
| If no Mentor has the required karma then file an INFRA issue using the 'new jira project' |
| type (not bug or request) |
| </p> |
| <p> |
| Remember to post an email announcing that the issue tracker is available. |
| </p> |
| </div> |
| </div> |
| <h4 id='orientation'>Orientating New Committers: Understanding Apache</h4> |
| <div class="section-content"> |
| <p> |
| When a committer is elected by a typical top level project, the nominator |
| and other PMC members educate the new committer about Apache. In the Incubator, this |
| inductive must be performed by the Mentors. This process is one of the most important |
| for the long term health of a project. |
| </p> |
| <p> |
| Apache works on the principle that discussions should happen on the most open forum |
| available. Unless the matter involves a sensitive matter (such as security or |
| personal issues), it should be raised on an open mailing list (typically the podling dev list |
| or the incubator general list). Use of the incubator private list should be reserved |
| for official notifications and sensitive topics. |
| </p> |
| <p> |
| Mentors need to take care. During the initial bootstrapping a habit may develop |
| of emailing private list. It is important to break this habit as soon as the mailing |
| lists are available. |
| </p> |
| <p> |
| Netiquette about the correct use of <code>cc</code>'s may also be difficult to |
| effectively impart. During the bootstrap process there are a number of occasions |
| where <code>cc</code>'s are required. The typical usage is to copy in a private |
| listing to indicate that the action has the lazy permission of the committee. |
| <code>cc</code>'s are very commonly used to create inefficient ad-hoc mailing lists in |
| the commercial world. Except for a small number of defined processes, <code>cc</code>'s |
| are frowned upon at Apache. Mentor need to encourage questions to be asked first |
| on the public lists of the project then raised (if necessary) to the general |
| incubator list. |
| </p> |
| <p> |
| TODO: content, links, prose, reconsider name for this section |
| </p> |
| </div> |
| <h4 id='issue-tracking-transition'>Issue Tracking Transition</h4> |
| <div class="section-content"> |
| <p> |
| Issues for Apache projects should be tracked on Apache hardware. Some projects arrive |
| with existing issues tracking. So, in the end these need to be replaced (for new development |
| at least) by the Apache issues tracker. Options need to be discussed publically on list |
| and a consensus reached about the best transition strategy. |
| </p> |
| </div> |
| </div> |
| <h3 id='poding-ip-clearance'>Podling IP Clearance</h3> |
| <div class="section-content"> |
| <p> |
| The board has charged the Incubator project with management of IP clearance for Apache. |
| Instructions are <a href="http://incubator.apache.org/ip-clearance/index.html">here</a>. |
| </p> |
| <p> |
| These equally apply to podlings. The Incubator project is responsible for all podlings |
| and so is the receiving PMC. So, when a podling requests IP clearance, the |
| IPMC wears <a href="http://www.apache.org/foundation/how-it-works.html#hats">two hats</a>. |
| This may be a little confusing at first. |
| </p> |
| <p> |
| The Incubator PMC must approve the clearance. This indicates that the project is |
| happy to receive the code donated. When a new podling is created, this is done |
| by the identification of existing codebases in the proposal. Otherwise, the |
| IPMC delegates this decision to the PPMC. |
| </p> |
| <p> |
| As usual, three binding votes are required. So, Mentors need to be involved in |
| IP clearance for podlings. If too few binding VOTEs are posted on list, |
| the VOTE will need to be posted to the general list for ratification. |
| </p> |
| <p> |
| The second hat is technical IP clearance. Here, the IPMC needs to check that the |
| paperwork is in order. Once the acceptance vote has been approved, an officer |
| or member need to complete the process. For a podling, this will typically |
| involve a Mentor. |
| </p> |
| </div> |
| <h3 id='create-website'>Create Initial Website</h3> |
| <div class="section-content"> |
| <p> |
| Podlings are free to use any technology desired to generate static content to be |
| served under <code>http://<em>${podling-name}</em>.incubator.apache.org/</code>. |
| However, the infrastructure team has some requirements for the publication |
| process to manage the load on servers. The page linked below on the Apache CMS |
| has more information. |
| </p> |
| <p> |
| Some popular choices are: |
| </p> |
| <ul> |
| <li><a href="http://www.apache.org/dev/cms.html">The Apache CMS</a></li> |
| <li><a href="http://maven.apache.org">Apache Maven</a></li> |
| <li><a href="http://velocity.apache.org/anakia/releases/anakia-1.0/">Apache Velocity Anakia</a></li> |
| <li>XSLT</li> |
| </ul> |
| <p> |
| It is recommended that an initial site is uploaded as soon as possible (to - |
| for example - allow indexing by search engines). The initial site |
| can be replaced by a fuller site later. |
| Read the |
| <a href="http://incubator.apache.org/guides/sites.html">Podling Website Guide</a> |
| for more information. |
| </p> |
| <div class="note"> |
| <note> |
| Apache Infrastructure does not guarantee that site content stored only on the www server |
| will be fully backed up in the event of failure. Consider checking the site into |
| version control if it needs to be comprehensively backed up. |
| </note> |
| </div> |
| <p> |
| Projects with an existing website who move to Apache need to consider |
| what they plan to do with it. A decision should be reached and action upon before |
| graduation. |
| </p> |
| <h4 id='web-site-transition'>Web Site Transition</h4> |
| <div class="section-content"> |
| <p> |
| Projects may arrive with existing web sites outside Apache. Contributing as much |
| documentation as possible to the project from these sites is strongly encouraged. |
| Offshore sites related to projects are fine but official web sites for Apache |
| projects should be hosted by Apache. |
| </p> |
| <p> |
| Some projects elect to maintain previous releases outside Apache. In this case, the existing site |
| is typically retained as a hub for this maintenance work. Otherwise, sites should link |
| or redirect to the official Apache site. |
| </p> |
| <p> |
| Apache may accept donations of domains related to projects moving here. |
| Infrastructure will then arrange for renewal of the domains and redirection |
| of traffic the official site. Ask infrastructure for more details. |
| </p> |
| <p> |
| Apache needs to deal with all commercial entities equitably. Linking to |
| useful information on commercial sites is fine but unfair discrimination between |
| commercial sites is not. Most Apache projects find it better to simply link only |
| to relevant articles on commercial sites rather than having to vet every request |
| for links to commercial activity. |
| </p> |
| </div> |
| </div> |
| </div> |
| <h2 id='glossary'><img src="../images/redarrow.gif" />Glossary</h2> |
| <div class="section-content"> |
| <h3 id='who-committers'>Prospective Committers</h3> |
| <div class="section-content"> |
| <p> |
| These are the people listed as initial committers in the proposal. |
| </p> |
| </div> |
| <h3 id='who-infra'>Infrastructure Team</h3> |
| <div class="section-content"> |
| <p> |
| Tasks that cannot safely be delegated to projects are handled by the Apache |
| <a href="http://www.apache.org/dev/infra-volunteer.html">Infrastructure team</a>. |
| The relevant instructions |
| <a href="http://www.apache.org/dev/infra-contact">MUST be followed</a>. |
| JIRA is typically used to |
| manage workflow. This allows progress to be easily tracked. |
| </p> |
| </div> |
| <h3 id='who-auth-karma'>Incubator Access Authorization</h3> |
| <div class="section-content"> |
| <p> |
| Special karma is required to authorize incubator access for committers. |
| This karma is limited to: |
| </p> |
| <ul> |
| <li>PMC Chairs (past and present)</li> |
| <li>Selected people in the Infrastructure team</li> |
| </ul> |
| <p> |
| If any mentor has karma then they should authorize the committer. |
| To grant authorization, update: |
| </p> |
| <div class="source"><code> |
| infrastructure/trunk/subversion/authorization/asf-authorization-template |
| </code> |
| </div> |
| <p> |
| Edit the file to add the new committer to the podling authorization: |
| </p> |
| <div class="source"><code> |
| {podling}={mentor1},{mentor2},{new-committer} |
| </code> |
| </div> |
| <p> |
| If no mentor has karma then an email should be posted to the IPMC private |
| list requesting that the grant is performed. One of the IPMCers with karma |
| will authorize the committer. |
| </p> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="row"><div class="span16"><hr noshade="noshade" size="1"/></div></div> |
| <div class="row"> |
| <div class="span16 footer"> |
| Copyright © 2009-2016 The Apache Software Foundation<br /> |
| Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/> |
| Apache Incubator, Apache, the Apache feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation. |
| |
| |
| </div> |
| </div> |
| </div> |
| </body> |
| </html> |