<!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>Incubation Status Template - 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='Kylin+Project+Incubation+Status'><img src="../images/redarrow.gif" />Kylin 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 Kylin project graduated on 2015-11-18</span></p>
</div>
        <h2 id='Description'><img src="../images/redarrow.gif" />Description</h2>
<div class="section-content">
<p>Kylin is a distributed and scalable OLAP engine for extremely large datasets.</p>
</div>
        <h2 id='News'><img src="../images/redarrow.gif" />News</h2>
<div class="section-content">
<ul>
        <li>2014-11-25 Project enters incubation.</li>
        <li>2015-04-01 New committers: Shaofeng Shi, Qianhao Zhou, Jason Zhong.</li>
        <li>2015-06-10 Apache Kylin v0.7.1-incubating released.</li>
        <li>2015-07-21 Apache Kylin v0.7.2-incubating released.</li>
        <li>2015-08-18 New committers: Dayue Gao.</li>
        <li>2015-08-25 New committers: Hua Huang.</li>
        <li>2015-09-06 Apache Kylin v1.0-incubating released.</li>
        <li>2015-09-16 Apache Kylin won InfoWorld Bossie Awards 2015 - <a href="http://www.infoworld.com/article/2982429/open-source-tools/bossie-awards-2015-the-best-open-source-big-data-tools.html#slide13" target="_blank">The Best Open Source Big Data Tools</a>.</li>
        <li>2015-09-25 New committers: Yerui Sun.</li>
        <li>2015-10-22 The vote for Apache Kylin to become a top-level project has passed 
with 27 +1 votes and no 0 or -1 votes.</li>
        <li>2015-10-25 Apache Kylin v1.1-incubating released.</li>
        <li>2015-11-04 Apache Kylin v1.1.1-incubating released.</li>
        <li>2015-11-18 Graduated</li>
      </ul>
</div>
        <h2 id='Project+info'><img src="../images/redarrow.gif" />Project info</h2>
<div class="section-content">
<ul>
        <li>Project Website: <a href="http://kylin.incubator.apache.org/">http://kylin.incubator.apache.org/</a></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://kylin.incubator.apache.org/">http://kylin.incubator.apache.org/</a>
          </td>
        </tr>
        <tr>
          <td>.</td>
          <td>wiki</td>
          <td><a href="https://cwiki.apache.org/confluence/display/KYLIN/Apache+Kylin+Home">https://cwiki.apache.org/confluence/display/KYLIN/Apache+Kylin+Home</a></td>
        </tr>
        <tr>
          <td>Mailing list</td>
          <td>dev</td>
          <td id="mail-dev"><code>dev</code><code>@</code><code>kylin.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>user</td>
          <td id="mail-commits"><code>user</code><code>@</code><code>kylin.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>issues</td>
          <td id="mail-commits"><code>issues</code><code>@</code><code>kylin.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>commits</td>
          <td id="mail-commits"><code>commits</code><code>@</code><code>kylin.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>Bug tracking</td>
          <td>JIRA</td>
          <td id="tracker">
            <a href="https://issues.apache.org/jira/browse/KYLIN">https://issues.apache.org/jira/browse/KYLIN</a>
          </td>
        </tr>
        <tr>
          <td>Source code</td>
          <td>Git</td>
          <td id="git">
            <a href="https://gitbox.apache.org/repos/asf/incubator-kylin.git">https://gitbox.apache.org/repos/asf/incubator-kylin.git</a>
          </td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>omalley</td>
          <td>Owen O'Malley</td>
        </tr>
        <tr>
          <td />
          <td>tdunning</td>
          <td>Ted Dunning</td>
        </tr>
        <tr>
          <td />
          <td>hsaputra</td>
          <td>Henry Saputra</td>
        </tr>
        <tr>
          <td />
          <td>jhyde</td>
          <td>Julian Hyde</td>
        </tr>
        <tr>
          <td />
          <td>ptgoetz</td>
          <td>P. Taylor Goetz</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>jiangxu</td>
          <td>Jiang Xu</td>
        </tr>
        <tr>
          <td />
          <td>lukehan</td>
          <td>Luke Han</td>
        </tr>
        <tr>
          <td />
          <td>liyang</td>
          <td>Yang Li</td>
        </tr>
        <tr>
          <td />
          <td>yisong</td>
          <td>George Song</td>
        </tr>
        <tr>
          <td />
          <td>mahongbin</td>
          <td>Hongbin Ma</td>
        </tr>
        <tr>
          <td />
          <td>shaofengshi</td>
          <td>Shaofeng Shi</td>
        </tr>
        <tr>
          <td />
          <td>qhzhou</td>
          <td>Qianhao Zhou</td>
        </tr>
        <tr>
          <td />
          <td>zhongjian</td>
          <td>Jason Zhong</td>
        </tr>
        <tr>
          <td />
          <td>gaodayue</td>
          <td>Dayue Gao</td>
        </tr>
        <tr>
          <td />
          <td>hhuang</td>
          <td>Hua Huang</td>
        </tr>
        <tr>
          <td />
          <td>sunyerui</td>
          <td>Yerui Sun</td>
        </tr>
        <tr>
          <td />
          <td>xduo</td>
          <td>Xiaodong Duo</td>
        </tr>
        <tr>
          <td />
          <td>abansal</td>
          <td>Ankur Bansal</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/January2015">January</a>2015</li>
        <li><a href="http://wiki.apache.org/incubator/February2015">February</a>2015</li>
        <li><a href="http://wiki.apache.org/incubator/March2015">March</a>2015</li>
        <li><a href="http://wiki.apache.org/incubator/May2015">May</a>2015</li>
        <li><a href="http://wiki.apache.org/incubator/August2015">August</a>2015</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>2014-11-25</td>
              <td>Make sure that the requested project name does not already exist. <a href="http://www.apache.org/foundation/marks/naming.html">Please follow
                the guide to ensure a suitable project/product name.</a></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><a href="https://issues.apache.org/jira/browse/INFRA-8943" target="_blank">2014-12-27</a></td>
              <td>Ask infrastructure to create source repository modules
                  and grant the committers karma.</td>
            </tr>
            <tr>
              <td>2014-12-14</td>
              <td>Ask infrastructure to set up and archive mailing lists.</td>
            </tr>
            <tr>
              <td><a href="https://issues.apache.org/jira/browse/INFRA-8889" target="_blank">2014-12-17</a></td>
              <td>Ask infrastructure to set up issue tracker (JIRA, Bugzilla).</td>
            </tr>
            <tr>
              <td>2015-04-09</td>
              <td>Ask infrastructure to set up wiki (Confluence, Moin).</td>
            </tr>
            <tr>
              <td><a href="https://issues.apache.org/jira/browse/KYLIN-4" target="_blank">2015-01-15</a></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>2014-12-14</td>
              <td>Subscribe all Mentors on the pmc and general lists.</td>
            </tr>
            <tr>
              <td>2015-01-01</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>2015-01-19</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>2015-10-17</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>2015-05-28</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>2015-06-10</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>2015-06-10</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-11-27</td>
              <td>Check that all active committers have submitted a contributors
                  agreement.</td>
            </tr>
            <tr>
              <td>....-..-..</td>
              <td>Add all active committers in the STATUS file.</td>
            </tr>
            <tr>
              <td>2014-12-10</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>If graduating to an existing PMC, has the PMC voted to accept it?</li>
            <li>If graduating to a new PMC, has the board voted to accept it?</li>
          </ul>
</div>
<h4 id='Incubator+sign-off'>Incubator sign-off</h4>
<div class="section-content">
<ul>
            <li>Has the Incubator decided that the project has accomplished all of
                the above tasks?</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>
