<!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>Eagle Project 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='Eagle+Project+Incubation+Status'><img src="../images/redarrow.gif" />Eagle 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>
</div>
        <h2 id='Description'><img src="../images/redarrow.gif" />Description</h2>
<div class="section-content">
<p>
       Eagle is a Monitoring solution for Hadoop to instantly identify access to sensitive data, recognize attacks, malicious activities and take actions in real time. 
       Eagle supports a wide variety of policies on HDFS data and Apache Hive. 
       Eagle also provides machine learning models for detecting anomalous user behavior in Apache Hadoop.
      </p>
<p><span class="graduated">The Eagle project graduated on 2016-12-21</span></p>
</div>
        <h2 id='News'><img src="../images/redarrow.gif" />News</h2>
<div class="section-content">
<ul>
        <li>2016-12-21 Graduated to Apache TLP. </li>
	<li>2016-11-15 Add one new committer: Jijun Tang. </li>
        <li>2016-10-12 start graduation discussion and steps. </li>
        <li>2016-09-05 Add one new committer: Jinhu Wu. </li>
        <li>2016-07-21 Apache Eagle 0.4.0-incubating released.</li>
        <li>2016-06-17 Add one new committer: Michael Wu.</li>
        <li>2016-06-13 Add one new committer: Daniel Zhou.</li>
        <li>2016-04-11 Apache Eagle 0.3.0-incubating released.</li>
        <li>2016-02-01 Add one new committer: Ralph Su.</li>
        <li>2015-11-19 Mailing list, wiki, jira, git repo and website initialized.</li>
        <li>2015-10-26 Project entered incubation.</li>
      </ul>
</div>
        <h2 id='Project+info'><img src="../images/redarrow.gif" />Project info</h2>
<div class="section-content">
<ul>
        <!-- link to the main website -->
        <li>Project Website: http://eagle.incubator.apache.org/</li>
      </ul>
<ul>
        <!-- link to the page(s) that tell how to participate (Website,Mailing-lists,Bug-tracking,Source code) -->
        <li>Community and how to contribute: https://cwiki.apache.org/confluence/display/EAG/Community</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://eagle.incubator.apache.org/">http://eagle.incubator.apache.org/</a>
          </td>
        </tr>
        <tr>
          <td>.</td>
          <td>wiki</td>
          <td><a href="http://cwiki.apache.org/confluence/display/EAG">http://cwiki.apache.org/confluence/display/EAG</a></td>
        </tr>
        <tr>
          <td>Mailing list</td>
          <td>user</td>
          <td id="mail-commits"><code>user</code><code>@</code><code>eagle.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>dev</td>
          <td id="mail-dev"><code>dev</code><code>@</code><code>eagle.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td>.</td>
          <td>commits</td>
          <td id="mail-commits"><code>commits</code><code>@</code><code>eagle.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/EAGLE">https://issues.apache.org/jira/browse/EAGLE</a>
          </td>
        </tr>
         <tr>
          <td>Source code</td>
          <td>Git</td>
          <td id="git">
            <a href="https://gitbox.apache.org/repos/asf/incubator-eagle.git">https://gitbox.apache.org/repos/asf/incubator-eagle.git</a>
          </td>
        </tr>
         <tr>
          <td>.</td>
          <td>GitHub</td>
          <td id="github">
            <a href="https://github.com/apache/incubator-eagle">https://github.com/apache/incubator-eagle</a>
          </td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>hsaputra</td>
          <td>Henry Saputra</td>
        </tr>
        <tr>
          <td>.</td>
          <td>omalley</td>
          <td>Owen O'Malley</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jhyde</td>
          <td>Julian Hyde</td>
        </tr>
        <tr>
          <td>.</td>
          <td>ptgoetz</td>
          <td>P. Taylor Goetz</td>
        </tr>
        <tr>
          <td>.</td>
          <td>amareshwari</td>
          <td>Amareshwari Sriramadasu</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>yonzhang2012</td>
          <td>Edward Zhang</td>
        </tr>
        <tr>
          <td>.</td>
          <td>hao</td>
          <td>Hao Chen</td>
        </tr>
        <tr>
          <td>.</td>
          <td>arunmanoharan</td>
          <td>Arun Manoharan</td>
        </tr>
        <tr>
          <td>.</td>
          <td>libsun</td>
          <td>Libin Sun</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jilin</td>
          <td>Jilin Jiang</td>
        </tr>
        <tr>
          <td>.</td>
          <td>qingwzhao</td>
          <td>Qingwen Zhao</td>
        </tr>
        <tr>
          <td>.</td>
          <td>cgupta</td>
          <td>Chaitali Gupta</td>
        </tr>
        <tr>
          <td>.</td>
          <td>ralphsu</td>
          <td>Ralph Su</td>
        </tr>
        <tr>
          <td>.</td>
          <td>senthilec566</td>
          <td>Senthil Kumar</td>
        </tr>
        <tr>
          <td>.</td>
          <td>hdendukuri</td>
          <td>Hemanth Dendukuri</td>
        </tr>
        <tr>
          <td>.</td>
          <td>dazhou</td>
          <td>Daniel Zhou</td>
        </tr>
        <tr>
          <td>.</td>
          <td>mw</td>
          <td>Michael Wu</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jinhuwu</td>
          <td>Jinhu Wu</td>
        </tr>
        <tr>
          <td>.</td>
          <td>jjtang</td>
          <td>Jijun Tang</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="https://wiki.apache.org/incubator/November2016">November 2016</a></li>
        <li><a href="https://wiki.apache.org/incubator/August2016">August 2016</a></li>
        <li><a href="https://wiki.apache.org/incubator/May2016">May 2016</a></li>
        <li><a href="https://wiki.apache.org/incubator/February2016">February 2016</a></li>
        <li><a href="https://wiki.apache.org/incubator/January2016">January 2016</a></li>
        <li><a href="https://wiki.apache.org/incubator/December2015">December 2015</a></li>
        <li><a href="https://wiki.apache.org/incubator/November2015">November 2015</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>2015-10-21</td>
              <td>Make sure that the requested project name does not already exist. We've completed the <a href="https://issues.apache.org/jira/browse/PODLINGNAMESEARCH-85">podling name search for Apache Eagle</a></td>
            </tr>
            <tr>
              <td>....-..-..</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>....-..-..</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>2015-10-28</td>
              <td>Ask infrastructure to create source repository modules
                  and grant the committers karma.</td>
            </tr>
            <tr>
              <td>2015-10-28</td>
              <td>Ask infrastructure to set up and archive mailing lists.</td>
            </tr>
            <tr>
              <td>2015-10-28</td>
              <td>Ask infrastructure to set up issue tracker (JIRA, Bugzilla).</td>
            </tr>
            <tr>
              <td>2015-10-28</td>
              <td>Ask infrastructure to set up wiki (Confluence, Moin).</td>
            </tr>
            <tr>
              <td>....-..-..</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>....-..-..</td>
              <td>Subscribe all Mentors on the pmc and general lists.</td>
            </tr>
            <tr>
              <td>....-..-..</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>....-..-..</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>....-..-..</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>....-..-..</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>....-..-..</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>....-..-..</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>....-..-..</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>....-..-..</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>
