<!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" />
  <script src="https://www.apachecon.com/event-images/snippet.js"></script>
        <title>Tez Incubation Status - Apache Incubator</title>
  
 </head>
 <body>
 <div class="container">
  <div class="row"><div class="span6"><a href="https://www.apache.org/"><img src="http://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" border="0" style="margin-top: 2px" height="88"/></a></div>
<div class="span7"><a href="/"><img src="https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png" alt="The Apache Software Foundation Incubator" border="0" style="margin-top: 2px" height="88"/></a></div>
<div class="span2"><a href="https://www.apache.org/foundation/contributing.html"><img src="https://www.apache.org/images/SupportApache-small.png" height="100" width="100"/></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="../cookbook/">Incubator Cookbook</a></li> 
          <li><a href="../policy/incubation.html">Incubation Policy</a></li> 
          <li><a href="../guides/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> 
            </menu>
      <div class="menuheader">Status</div>
    <menu compact="compact">
          <li><a href="../projects">Project List</a></li> 
          <li><a href="../clutch">Clutch Report</a></li> 
          <li><a href="../ip-clearance">IP Clearance</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/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>
    <div id="menuheader">
      <a class="acevent" data-format="square" data-width="135" data-mode="light" data-event="random"></a>
    </div>
   </div>
   
   <div class="span12">
            <h2 id='Tez+Project+Incubation+Status'><img src="../images/redarrow.gif" />Tez Project Incubation Status</h2>
<div class="section-content">
<p>This page tracks the project status, incubator-wise. For more general
         project status, look on the project website.</p>
<p><span class="graduated">The Tez project graduated on 2014-07-16</span></p>
</div>
        <h2 id='Description'><img src="../images/redarrow.gif" />Description</h2>
<div class="section-content">
<p>Tez is an application framework which allows for a complex 
      directed-acyclic-graph of tasks for processing data and is built atop 
      Apache Hadoop YARN.</p>
</div>
        <h2 id='News'><img src="../images/redarrow.gif" />News</h2>
<div class="section-content">
<ul>
        <li>2014-07-16. ASF Board establishes the Apache Tez project.</li>
        <li>2014-07-14. Apache Tez 0.4.1-incubating released.</li>
        <li>2014-04-05. Apache Tez 0.4.0-incubating released.</li>
        <li>2014-02-28. Apache Tez 0.3.0-incubating released.</li>
        <li>2013-12-03. Apache Tez 0.2.0-incubating released.</li>
        <li>2013-02-25. Apache Tez enters incubation.</li>
      </ul>
</div>
        <h2 id='Project+info'><img src="../images/redarrow.gif" />Project info</h2>
<div class="section-content">
<ul>
        <li>link to the main website</li>
      </ul>
<ul>
        <li>link to the page(s) that tell how to participate (Website,Mailing
            lists,Bug tracking,Source code)</li>
      </ul>
<ul>
        <li>link to the project status file (Committers,non-incubation action
            items,project resources, etc)</li>
      </ul>
<p>If the project website and code repository are not yet setup, use the
         following table:</p>
<table class="colortable" width="100%">
        <tr>
          <th>item</th>
          <th>type</th>
          <th>reference</th>
        </tr>
        <tr>
          <td>Website</td>
          <td>www</td>
          <td id="www">
            <a href="http://tez.incubator.apache.org/">http://tez.incubator.apache.org/</a>
          </td>
        </tr>
        <tr>
          <td>.</td>
          <td>wiki</td>
          <td id="wiki">
            <a href="https://cwiki.apache.org/confluence/display/TEZ">https://cwiki.apache.org/confluence/display/TEZ</a>
          </td>
        </tr>
        <tr>
          <td>Mailing list</td>
          <td>dev</td>
          <td id="mail-dev"><code>dev</code><code>@</code><code>tez.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>user</td>
          <td id="mail-user"><code>user</code><code>@</code><code>tez.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>commits</td>
          <td id="mail-commits"><code>commits</code><code>@</code><code>tez.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>Bug tracking</td>
          <td>.</td>
          <td id="tracker">
            <a href="https://issues.apache.org/jira/browse/TEZ">https://issues.apache.org/jira/browse/TEZ</a> 
          </td>
        </tr>
        <tr>
          <td>Source code</td>
          <td>GIT</td>
          <td id="git">
            <a href="https://gitbox.apache.org/repos/asf/incubator-tez.git">https://gitbox.apache.org/repos/asf/incubator-tez.git</a>
          </td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>acmurthy</td>
          <td>Arun C. Murthy</td>
        </tr>
        <tr>
          <td>.</td>
          <td>cdouglas</td>
          <td>Chris Douglas</td>
        </tr>
        <tr>
          <td>.</td>
          <td>gates</td>
          <td>Alan Gates</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jghoman</td>
          <td>Jakob Homan</td>
        </tr>
        <tr>
          <td>.</td>
          <td>mattmann</td>
          <td>Chris Mattmann</td>
        </tr>
        <tr>
          <td>.</td>
          <td>omalley</td>
          <td>Owen O’Malley</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>acmurthy</td>
          <td>Arun C. Murthy</td>
        </tr>
        <tr>
          <td>.</td>
          <td>billgraham</td>
          <td>Bill Graham</td>
        </tr>
        <tr>
          <td>.</td>
          <td>bikas</td>
          <td>Bikas Saha</td>
        </tr>
        <tr>
          <td>.</td>
          <td>bobby</td>
          <td>Robert Evans</td>
        </tr>
        <tr>
          <td>.</td>
          <td>cdouglas</td>
          <td>Chris Douglas</td>
        </tr>
        <tr>
          <td>.</td>
          <td>daryn</td>
          <td>Daryn Sharp</td>
        </tr>
        <tr>
          <td>.</td>
          <td>ddas</td>
          <td>Devaraj Das</td>
        </tr>
        <tr>
          <td>.</td>
          <td>gates</td>
          <td>Alan Gates</td>
        </tr>
        <tr>
          <td>.</td>
          <td>gopalv</td>
          <td>Gopal Vijayaraghavan</td>
        </tr>
        <tr>
          <td>.</td>
          <td>gunther</td>
          <td>Gunther Hagleitner</td>
        </tr>
        <tr>
          <td>.</td>
          <td>hitesh</td>
          <td>Hitesh Shah</td>
        </tr>
        <tr>
          <td>.</td>
          <td>hashutosh</td>
          <td>Ashutosh Chauhan</td>
        </tr>
        <tr>
          <td>.</td>
          <td />
          <td>Jean Xu</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jitendra</td>
          <td>Jitendra Pandey</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jlowe</td>
          <td>Jason Lowe</td>
        </tr>
        <tr>
          <td>.</td>
          <td>julien</td>
          <td>Julien Le Dem</td>
        </tr>
        <tr>
          <td>.</td>
          <td>kevinwilfong</td>
          <td>Kevin Wilfong</td>
        </tr>
        <tr>
          <td>.</td>
          <td>mliddell</td>
          <td>Mike Liddell</td>
        </tr>
        <tr>
          <td>.</td>
          <td>kamrul</td>
          <td>Mohammad Kamrul Islam</td>
        </tr>
        <tr>
          <td>.</td>
          <td>namit</td>
          <td>Namit Jain</td>
        </tr>
        <tr>
          <td>.</td>
          <td>nroberts</td>
          <td>Nathan Roberts</td>
        </tr>
        <tr>
          <td>.</td>
          <td>omalley</td>
          <td>Owen O’Malley</td>
        </tr>
        <tr>
          <td>.</td>
          <td>rbalamohan</td>
          <td>Rajesh Balamohan</td>
        </tr>
        <tr>
          <td>.</td>
          <td>rohini</td>
          <td>Rohini Palaniswamy</td>
        </tr>
        <tr>
          <td>.</td>
          <td>sseth</td>
          <td>Siddharth Seth</td>
        </tr>
        <tr>
          <td>.</td>
          <td>tassapola</td>
          <td>Tassapol Athiapinya</td>
        </tr>
        <tr>
          <td>.</td>
          <td>tgraves</td>
          <td>Thomas Graves</td>
        </tr>
        <tr>
          <td>.</td>
          <td>tomwhite</td>
          <td>Tom White</td>
        </tr>
        <tr>
          <td>.</td>
          <td>vikram</td>
          <td>Vikram Dixit</td>
        </tr>
        <tr>
          <td>.</td>
          <td>vinodkv</td>
          <td>Vinod Kumar Vavilapalli</td>
        </tr>
      </table>
</div>
        <h2 id='Incubation+status+reports'><img src="../images/redarrow.gif" />Incubation status reports</h2>
<div class="section-content">
<ul>
        <li><a href="http://wiki.apache.org/incubator/May2014">May, 2014</a></li>
        <li><a href="http://wiki.apache.org/incubator/February2014">February, 2014</a></li>
        <li><a href="http://wiki.apache.org/incubator/November2013">November, 2013</a></li>
        <li><a href="http://wiki.apache.org/incubator/August2013">August, 2013</a></li>
        <li><a href="http://wiki.apache.org/incubator/June2013">June, 2013</a></li>
        <li><a href="http://wiki.apache.org/incubator/April2013">April, 2013</a></li>
        <li><a href="http://wiki.apache.org/incubator/March2013">March, 2013</a></li>
      </ul>
</div>
        <h2 id='Incubation+work+items'><img src="../images/redarrow.gif" />Incubation work items</h2>
<div class="section-content">
<h3 id='Project+Setup'>Project Setup</h3>
<div class="section-content">
<p>This is the first phase on incubation, needed to start the project at Apache.</p>
<p>
          <em>Item assignment is shown by the Apache id.</em>
          <em>Completed tasks are shown by the completion date (YYYY-MM-dd).</em>
        </p>
<h4 id='Identify+the+project+to+be+incubated'>Identify the project to be incubated</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date</th>
              <th>item</th>
            </tr>
            <tr>
              <td>2013-02-25</td>
              <td>Make sure that the requested project name does not already exist and
                  check www.nameprotect.com to be sure that the name is not already
                  trademarked for an existing software product.</td>
            </tr>
            <tr>
              <td>N/A</td>
              <td>If request from an existing Apache project to adopt an external
                  package, then ask the Apache project for the SVN module and mail
                  address names.</td>
            </tr>
            <tr>
              <td>N/A</td>
              <td>If request from outside Apache to enter an existing Apache project,
                  then post a message to that project for them to decide on acceptance.</td>
            </tr>
            <tr>
              <td>N/A</td>
              <td>If request from anywhere to become a stand-alone PMC, then assess the
                  fit with the ASF, and create the lists and modules under the
                  incubator address/module names if accepted.</td>
            </tr>
          </table>
</div>
<h4 id='Infrastructure'>Infrastructure</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date</th>
              <th>item</th>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Ask infrastructure to create source repository modules
                  and grant the committers karma.</td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Ask infrastructure to set up and archive mailing lists.</td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Ask infrastructure to set up issue tracker (JIRA, Bugzilla).</td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Ask infrastructure to set up wiki (Confluence, Moin).</td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Migrate the project to our infrastructure.</td>
            </tr>
          </table>
</div>
<h4 id='Interim+responsibility'>Mentor-related responsibility/oversight</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date</th>
              <th>item</th>
            </tr>
            <tr>
              <td>2013-02-22</td>
              <td>Identify all the Mentors for the incubation, by asking all
                  that can be Mentors.</td>
            </tr>
            <tr>
              <td>2013-03-20</td>
              <td>Subscribe all Mentors on the pmc and general lists.</td>
            </tr>
            <tr>
              <td>2013-04-11</td>
              <td>Give all Mentors access to the incubator SVN repository. 
                (to be done by the Incubator PMC chair or an Incubator PMC
                Member wih karma for the authorizations file)</td>
            </tr>
            <tr>
              <td>2013-04-11</td>
              <td>Tell Mentors to track progress in the file
                  'incubator/projects/{project.name}.html'</td>
            </tr>
          </table>
</div>
<h4 id='Copyright'>Copyright</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date</th>
              <th>item</th>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Check and make sure that the papers that transfer rights to the ASF
                  been received. It is only necessary to transfer rights for the
                  package, the core code, and any new code produced by the project.
              </td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Check and make sure that the files that have been donated have been
                  updated to reflect the new ASF copyright.</td>
            </tr>
          </table>
</div>
<h4 id='Verify+distribution+rights'>Verify distribution rights</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date</th>
              <th>item</th>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Check and make sure that for all code included with the distribution
                  that is not under the Apache license, we have the right to combine
                  with Apache-licensed code and redistribute.
               </td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Check and make sure that all source code distributed by the project
                  is covered by one or more of the following approved licenses: Apache,
                  BSD, Artistic, MIT/X, MIT/W3C, MPL 1.1, or something with essentially
                  the same terms.</td>
            </tr>
          </table>
</div>
<h4 id='Establish+a+list+of+active+committers'>Establish a list of active committers</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date</th>
              <th>item</th>
            </tr>
            <tr>
              <td>2014-07-01</td>
              <td>Check that all active committers have submitted a contributors
                  agreement.</td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Add all active committers in the STATUS file.</td>
            </tr>
            <tr>
              <td>2013-03-15</td>
              <td>Ask root for the creation of committers' accounts on
                  people.apache.org.</td>
            </tr>
          </table>
</div>
<h4 id='Project+specific'>Project specific</h4>
<div class="section-content">
<p>
            <em>Add project specific tasks here.</em>
          </p>
</div>
</div>
<h3 id='Incubation'>Incubation</h3>
<div class="section-content">
<p>These action items have to be checked for during the whole incubation process.</p>
<p>
          <em>These items are not to be signed as done during incubation, as they
              may change during incubation.</em>
          <em>They are to be looked into and described in the status reports and
              completed in the request for incubation signoff.</em>
        </p>
<h4 id='Collaborative+Development'>Collaborative Development</h4>
<div class="section-content">
<ul>
            <li>Have all of the active long-term volunteers been identified and
                acknowledged as committers on the project?
            </li>
            <li>Are there three or more independent committers? (The legal definition
                of independent is long and boring, but basically it means that there
                is no binding relationship between the individuals, such as a shared
                employer, that is capable of overriding their free will as
                individuals, directly or indirectly.)</li>
            <li>Are project decisions being made in public by the committers?</li>
            <li>Are the decision-making guidelines published and agreed to by all of
                the committers?</li>
          </ul>
</div>
<h4 id='Licensing+awareness'>Licensing awareness</h4>
<div class="section-content">
<ul>
            <li>Are all licensing, trademark, credit issues being taken care of and
                acknowleged by all committers?</li>
          </ul>
</div>
<h4 id='Project+Specific'>Project Specific</h4>
<div class="section-content">
<p>
            <em>Add project specific tasks here.</em>
          </p>
</div>
</div>
<h3 id='Exit'>Exit</h3>
<div class="section-content">
<p>
          <em>Things to check for before voting the project out.</em>
        </p>
<h4 id='Organizational+acceptance+of+responsibility+for+the+project'>Organizational acceptance of responsibility for the project</h4>
<div class="section-content">
<ul>
            <li>Podling PMC has voted to accept responsibility of the project as a TLP</li>
            <li>Board voted to accept Tez as a TLP in its meeting on July 16, 2014</li>
          </ul>
</div>
<h4 id='Incubator+sign-off'>Incubator sign-off</h4>
<div class="section-content">
<ul>
            <li>Incubator has recommended graduation and voted to approve graduation</li>
          </ul>
</div>
</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 &#169; 2009-2024 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>
