<!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>Axion 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='Overview'><img src="../images/redarrow.gif" />Overview
</h2>
<div class="section-content">
<p>Axion is a Java-based relational database engine.
</p>
<p>This page tracks Axion's incubation status. For general project
status, see the Axion project website.
</p>
<p><span class="retired">The Axion project retired on 2006-01-23</span></p>
</div>
        <h2 id='News'><img src="../images/redarrow.gif" />News
</h2>
<div class="section-content">
<h3 id='Incubation+Related'>Incubation Related
</h3>
<div class="section-content">
<dl>
           <dt>2006-01-23</dt>
           <dd><a href="http://mail-archives.apache.org/mod_mbox/incubator-general/200601.mbox/%3cB94F91F8-4E42-4336-B9C6-B06D63BC8BF0@apache.org%3e">Cancelled at request of Sponsoring TLP.  The axion project never moved to the ASF from tigris.org.</a></dd>
        </dl>
<dl>
          <dt>2003-12-19
</dt>
          <dd>The

            <a href="http://incubator.apache.org/">Apache Incubator Project
</a>has acknowledged Axion's acceptance by the

            <a href="http://db.apache.org/">Apache Database Project
</a>. Incubation is officially underway.

          </dd>
          <dt>2003-12-02
</dt>
          <dd>The

            <a href="http://db.apache.org/">Apache Database Project
</a>has accepted Axion's proposal. Send message to

            <a href="mailto:general-thread.243@db.apache.org">general-thread.243@db.apache.org
</a>to retrieve the VOTE thread, and to

            <a href="mailto:general-thread.247@db.apache.org">general-thread.257@db.apache.org
</a>to retrieve the RESULT thread. Morgan Delegrange has

            <a href="http://axion.tigris.org/servlets/ReadMsg?list=dev&amp;msgNo=720">volunteered
</a>to act as "mentor".

          </dd>
          <dt>2003-11-04
</dt>
          <dd>Axion team

            <a href="http://axion.tigris.org/servlets/ReadMsg?list=dev&amp;msgNo=697">has voted
</a>to move the

            <a href="http://db.apache.org/">Apache Database Project
</a>.

          </dd>
        </dl>
</div>
<h3 id='Project+Related'>Project Related
</h3>
<div class="section-content">
<p>Currently, see

          <a href="http://axion.tigris.org/news.html">http://axion.tigris.org/news.html
</a>for project related news.

        </p>
</div>
</div>
        <h2 id='Project+Info'><img src="../images/redarrow.gif" />Project Info
</h2>
<div class="section-content">
<table class="colortable" width="100%">
        <tr>
          <th colspan="1" rowspan="1">item
</th>
          <th colspan="1" rowspan="1">type
</th>
          <th colspan="1" rowspan="1">reference
</th>
        </tr>
        <tr>
          <td colspan="1" rowspan="1">Website
</td>
          <td colspan="1" rowspan="1">www
</td>
          <td colspan="1" rowspan="1">Currently

            <a href="http://axion.tigris.org/">http://axion.tigris.org/
</a>. Eventually

            <a href="http://db.apache.org/axion/">http://db.apache.org/axion/
</a>.

          </td>
        </tr><!--
        <tr>
          <td>&#160;</td>
          <td>wiki</td>
          <td>&#160;</td>
        </tr>
        -->
        <tr>
          <td colspan="1" rowspan="1">Mailing List
</td>
          <td colspan="1" rowspan="1">dev
</td>
          <td colspan="1" rowspan="1">axion-dev@db.apache.org (deprecated: dev@axion.tigris.org)
</td>
        </tr>
        <tr>
          <td colspan="1" rowspan="1"> 
</td>
          <td colspan="1" rowspan="1">user
</td>
          <td colspan="1" rowspan="1">axion-user@db.apache.org (deprecated: users@axion.tigris.org)
</td>
        </tr>
        <tr>
          <td colspan="1" rowspan="1"> 
</td>
          <td colspan="1" rowspan="1">cvs
</td>
          <td colspan="1" rowspan="1">axion-dev@db.apache.org (deprecated: cvs@axion.tigris.org)
</td>
        </tr>
        <tr>
          <td colspan="1" rowspan="1">Issue Database
</td>
          <td colspan="1" rowspan="1"> 
</td>
          <td colspan="1" rowspan="1">Currently

            <a href="http://axion.tigris.org/servlets/ProjectIssues">http://axion.tigris.org/servlets/ProjectIssues
</a>. Soon Bugzilla? Jira? To be determined.

          </td>
        </tr>
        <tr>
          <td colspan="1" rowspan="1">Source Repository
</td>
          <td colspan="1" rowspan="1">CVS
</td>
          <td colspan="1" rowspan="1">Currently

            <a href="http://axion.tigris.org/source/browse/axion/">http://axion.tigris.org/source/browse/axion/
</a>. Soon

            <a href="http://cvs.apache.org/viewcvs/db-axion">db-axion
</a>.

          </td>
        </tr>
        <tr>
          <td colspan="1" rowspan="1">Mentors
</td>
          <td colspan="1" rowspan="1"> 
</td>
          <td colspan="1" rowspan="1">Morgan Delegrange (morgand@apache)
</td>
        </tr>
        <tr>
          <td colspan="1" rowspan="1">Committers
</td>
          <td colspan="1" rowspan="1"> 
</td>
          <td colspan="1" rowspan="1">For now, see

            <a href="http://axion.tigris.org/servlets/ProjectMemberList">http://axion.tigris.org/servlets/ProjectMemberList
</a>
          </td>
        </tr>
      </table>
</div>
        <h2 id='Incubation+Status+Reports'><img src="../images/redarrow.gif" />Incubation Status Reports
</h2>
<div class="section-content">
<p>ToDo: Add links here.
</p>
</div>
        <h2 id='Incubation+Work+Areas'><img src="../images/redarrow.gif" />Incubation Work Areas
</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>
<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 colspan="1" rowspan="1">date completed
</th>
              <th colspan="1" rowspan="1">item
</th>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-19
</td>
              <td colspan="1" rowspan="1">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.

                <br />
                <strong>Done.
</strong>
                <em>As of 19 December 2003, nothing seems relevant (

                  <a href="http://nameprotect.com/cgi-bin/FREESearch/search.cgi?action=SEARCH&amp;db=PTO&amp;ss=axion" title="nameprotect.com search">try it yourself
</a>). Note that "axion" is

                  <a href="http://www.m-w.com/cgi-bin/dictionary?axion" title="look up &quot;axion&quot; in the dictionary">a scientific term
</a>.

                </em>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-02
</td>
              <td colspan="1" rowspan="1">If request from an existing Apache project to adopt an external
package, then ask the Apache project for the cvs module and mail
address names.

                <br />
                <strong>Done.
</strong>
                <em>Send a message to

                  <a href="mailto:general-thread.243@db.apache.org">general-thread.243@db.apache.org
</a>to retrieve the VOTE thread, and to

                  <a href="mailto:general-thread.247@db.apache.org">general-thread.257@db.apache.org
</a>to retrieve the RESULT thread.

                </em>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-11-04
</td>
              <td colspan="1" rowspan="1">If request from outside Apache to enter an existing Apache project,
then post a message to that project for them to decide on acceptance.

                <br />
                <strong>Done.
</strong>
                <em>See

                  <a href="http://axion.tigris.org/servlets/ReadMsg?list=dev&amp;msgNo=697">http://axion.tigris.org/servlets/ReadMsg?list=dev&amp;msgNo=697
</a>.

                </em>
              </td>
            </tr>
          </table>
</div>
<h4 id='Interim+responsibility'>Interim responsibility
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th colspan="1" rowspan="1">date completed
</th>
              <th colspan="1" rowspan="1">item
</th>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-03
</td>
              <td colspan="1" rowspan="1">Identify all the Mentors for the incubation, by asking all that can
be Mentors.

                <br />
                <strong>Done.
</strong>
                <em>See

                  <a href="http://axion.tigris.org/servlets/ReadMsg?list=dev&amp;msgNo=720">http://axion.tigris.org/servlets/ReadMsg?list=dev&amp;msgNo=720
</a>.

                </em>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-19
</td>
              <td colspan="1" rowspan="1">Subscribe all Mentors on the pmc and general lists.

                <br />
                <strong>Done.
</strong>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-19
</td>
              <td colspan="1" rowspan="1">Give all Mentors access to all incubator CVS modules. (to be done by
PMC chair)

                <br />
                <strong>Done.
</strong>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-19
</td>
              <td colspan="1" rowspan="1">Tell Mentors to track progress in the file

                <code>incubator/projects/{project.name}.cwiki
</code>
                <br />
                <strong>Done.
</strong>
                <em>Using

                  <code>incubator/projects/axion.xml
</code>instead, since Forrest's cwiki parser seems to be broken.

                </em>
              </td>
            </tr>
          </table>
</div>
<h4 id='Copyright'>Copyright
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th colspan="1" rowspan="1">date completed
</th>
              <th colspan="1" rowspan="1">item
</th>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">Submitted 16-July-2004
</td>
              <td colspan="1" rowspan="1">Check 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.

                <br />(Fax submitted 16-July-2004. Not yet acknowledged.)

              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1"> 
</td>
              <td colspan="1" rowspan="1">Check that the files that have been donated have been updated to
reflect the new ASF copyright.

                <br />
              </td>
            </tr>
          </table>
</div>
<h4 id='Verify+distribution+rights'>Verify distribution rights
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th colspan="1" rowspan="1">date completed
</th>
              <th colspan="1" rowspan="1">item
</th>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-19
</td>
              <td colspan="1" rowspan="1">Check 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.

                <br />
                <strong>Done.
</strong>
                <em>All code currently distributed by the project is already available
under an ASF-like license. See

                  <a href="http://axion.tigris.org/unbranded-source/browse/*checkout*/axion/LICENSE.txt?rev=HEAD">Axion's original license
</a>. This will be changed to the ASF license when the copyright is
transfered (see

                  <a href="#copyright">above
</a>).

                </em>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2003-12-19
</td>
              <td colspan="1" rowspan="1">Check 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.

                <br />
                <strong>Done.
</strong>
                <em>All code currently distributed by the project is already available
under an ASF-like license. See

                  <a href="http://axion.tigris.org/unbranded-source/browse/*checkout*/axion/LICENSE.txt?rev=HEAD">Axion's original license
</a>. This will be changed to the ASF license when the copyright is
transfered (see

                  <a href="#copyright">above
</a>).

                </em>
              </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 colspan="1" rowspan="1">date completed
</th>
              <th colspan="1" rowspan="1">item
</th>
            </tr>
            <tr>
              <td colspan="1" rowspan="1"> 
</td>
              <td colspan="1" rowspan="1">Check that all active committers have submitted a contributors
agreement.
</td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1"> 
</td>
              <td colspan="1" rowspan="1">Add all active committers in the STATUS file.
</td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1"> 
</td>
              <td colspan="1" rowspan="1">Ask root for the creation of committers' accounts on cvs.apache.org.
</td>
            </tr>
          </table>
</div>
<h4 id='Infrastructure'>Infrastructure
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th colspan="1" rowspan="1">date completed
</th>
              <th colspan="1" rowspan="1">item
</th>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2004-06-14
</td>
              <td colspan="1" rowspan="1">Ask infrastructure to create source repository modules and add the
committers to the avail file.

                <br />
                <strong>Done.
</strong>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1">2004-06-14
</td>
              <td colspan="1" rowspan="1">Ask infrastructure to set up and archive Mailing lists.

                <br />
                <strong>Done.
</strong>
              </td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1"> 
</td>
              <td colspan="1" rowspan="1">Decide about and then ask infrastructure to setup an issue tracking
system (Bugzilla, Scarab, Jira).
</td>
            </tr>
            <tr>
              <td colspan="1" rowspan="1"> 
</td>
              <td colspan="1" rowspan="1">Migrate the project to our infrastructure.

                <br />
                <em>As previously discussed, waiting on final Milestone 3 release from
Tigris.
</em>
              </td>
            </tr>
          </table>
</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>
<div class="note">
<note>These items are not to be signed as done during incubation, as they
may change during incubation. They are to be looked into and
described in the status reports and completed in the request for
incubation signoff.
</note>
</div>
<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>
</div>
<h3 id='Exit'>Exit
</h3>
<div class="section-content">
<p>Things to check for before voting the project out.
</p>
<h4 id='Organizational+acceptance+of+responsibility+for+the+project'>Organizational acceptance of responsibility for the project
</h4>
<div class="section-content">
<dl>
            <dt>If graduating to an existing PMC, has the PMC voted to accept it?
</dt>
            <dd>
              <em>Yes. Send a message to

                <a href="mailto:general-thread.243@db.apache.org">general-thread.243@db.apache.org
</a>to retrieve the VOTE thread, and to

                <a href="mailto:general-thread.247@db.apache.org">general-thread.257@db.apache.org
</a>to retrieve the RESULT thread.

              </em>
            </dd>
          </dl>
</div>
<h4 id='Incubator+sign-off'>Incubator sign-off
</h4>
<div class="section-content">
<dl>
            <dt>Has the Incubator decided that the project has accomplished all of
the above tasks?
</dt>
            <dd> 
</dd>
          </dl>
</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>
