<!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>Groovy 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='Groovy+Project+Incubation+Status'><img src="../images/redarrow.gif" />Groovy 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 Groovy project graduated on 2015-11-18</span></p>
</div>
        <h2 id='Description'><img src="../images/redarrow.gif" />Description</h2>
<div class="section-content">
<p>Groovy is an object-oriented programming language for the Java platform. It is a language with features similar to those of Python, Ruby, Java, Perl, and Smalltalk.</p>
</div>
        <h2 id='News'><img src="../images/redarrow.gif" />News</h2>
<div class="section-content">
<ul>
        <li>2015-03-17 Project enters incubation.</li>
        <li>2015-03-25 Mailing lists created.</li>
        <li>2015-04-15 Issue tracker created and issues imported from codehaus.</li>
        <li>2015-04-16 Git repository created and source imported.</li>
        <li>2015-11-18 Groovy graduated and is now a top level Apache project.</li>
      </ul>
</div>
        <h2 id='Project+info'><img src="../images/redarrow.gif" />Project info</h2>
<div class="section-content">
<ul>
        <li>TODO : link to the project status file (Committers,non-incubation action
            items,project resources, etc)</li>
      </ul>
<table class="colortable" width="100%">
        <tr>
          <th>item</th>
          <th>type</th>
          <th>reference</th>
        </tr>
        <tr>
          <td>Website</td>
          <td>www<br />apache</td>
          <td id="www">
            <a href="http://groovy-lang.org/">http://groovy-lang.org/</a><br />
            <a href="http://groovy.incubator.apache.org/">http://groovy.incubator.apache.org/</a>
          </td>
        </tr>
        <tr>
          <td> </td>
          <td>wiki</td>
          <td>https://github.com/groovy/groovy-website/tree/master/site/src/site/wiki</td>
        </tr>
        <tr>
          <td> </td>
          <td>contribute</td>
          <td id="contribute">
            <a href="http://www.groovy-lang.org/contribute.html">http://www.groovy-lang.org/contribute.html</a>
          </td>
        </tr>

        <tr>
          <td>Mailing list</td>
          <td>dev</td>
          <td id="mail-dev"><code>dev</code><code>@</code><code>groovy.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td> </td>
          <td>commits</td>
          <td id="mail-commits"><code>commits</code><code>@</code><code>groovy.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td> </td>
          <td>issues</td>
          <td id="mail-issues"><code>notifications</code><code>@</code><code>groovy.incubator.apache.org</code></td>
        </tr>
        <tr>
          <td> </td>
          <td>users</td>
          <td id="mail-users"><code>users</code><code>@</code><code>groovy.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/GROOVY">https://issues.apache.org/jira/browse/GROOVY</a>
          </td>
        </tr>
        <tr>
          <td>Source code</td>
          <td>GIT<br />GitHub mirror</td>
          <td id="git">
            <a href="https://gitbox.apache.org/repos/asf/incubator-groovy.git">https://gitbox.apache.org/repos/asf/incubator-groovy.git</a><br />
            <a href="https://github.com/apache/incubator-groovy">https://github.com/apache/incubator-groovy</a>
          </td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>abayer</td>
          <td>Andrew Bayer</td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>cos</td>
          <td>Konstantin Boudnik</td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>bdelacretaz</td>
          <td>Bertrand Delacretaz</td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>jim</td>
          <td>Jim Jagielski</td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>elecharny</td>
          <td>Emmanuel Lecharny</td>
        </tr>
        <tr>
          <td>Mentors</td>
          <td>rvs</td>
          <td>Roman Shaposhnik</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>cchampeau</td>
          <td>Cedric Champeau</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>paulk</td>
          <td>Paul King</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>glaforge</td>
          <td>Guillaume Laforge </td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>pascalschumacher</td>
          <td>Pascal Schumacher</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>blackdrag</td>
          <td>Jochen Theodorou</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>aalmiray</td>
          <td>Andres Almiray</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>koenig</td>
          <td>Dierk Koenig</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>russel</td>
          <td>Dr. Russel Winder</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>keegan</td>
          <td>Keegan Witt</td>
        </tr>
        <tr>
          <td>Committers</td>
          <td>shils</td>
          <td>Shil Sinha</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/April2015">2015 - April</a></li>
        <li><a href="https://wiki.apache.org/incubator/May2015">2015 - May</a></li>
        <li><a href="https://wiki.apache.org/incubator/June2015">2015 - June</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-03-17</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>
            <tr>
              <td>2015-03-17</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>2014-03-25</td>
              <td>Ask infrastructure to create source repository modules
                  and grant the committers karma.</td>
            </tr>
            <tr>
              <td>2015-03-24</td>
              <td>Ask infrastructure to set up and archive mailing lists.</td>
            </tr>
            <tr>
              <td>2014-03-25</td>
              <td>Ask infrastructure to set up issue tracker (JIRA, Bugzilla).</td>
            </tr>
            <tr>
              <td>N/A : no wiki</td>
              <td>Ask infrastructure to set up wiki (Confluence, Moin).</td>
            </tr>
            <tr>
              <td>2015-04-16</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>2015-03-15</td>
              <td>Subscribe all Mentors on the pmc and general lists.</td>
            </tr>
            <tr>
              <td>2015-04-16</td>
              <td>Give all Mentors access to the incubator GIT repository.
                (to be done by the Incubator PMC chair or an Incubator PMC
                Member with karma for the authorizations file)</td>
            </tr>
            <tr>
              <td>2015-03-25</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-04-01</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-04-17</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-07-13</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-07-13</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>2015-03-30</td>
              <td>Check that all active committers have submitted a contributors
                  agreement.</td>
            </tr>
            <tr>
              <td>2015-03-15</td>
              <td>Add all active committers in the STATUS file.</td>
            </tr>
            <tr>
              <td>2015-04-01</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>
