<!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>log4net
 - 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='Log4net+Project+Incubation+Status'><img src="../images/redarrow.gif" />Log4net 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 log4net project graduated on 2007-02</span></p>
</div>
        <h2 id='Description'><img src="../images/redarrow.gif" />Description
</h2>
<div class="section-content">
<p>The Log4net project graduated the incubator on 2007-02-17 and is now part of the 
Logging Services project. It implements a 
logging API similar to log4j but in the C#
language.
</p>
</div>
        <h2 id='News'><img src="../images/redarrow.gif" />News
</h2>
<div class="section-content">
<ul>
        <li>The Log4net project graduated the incubator on 2007-02-17 and is now part of the
Logging Services project.
</li>
      </ul>
</div>
        <h2 id='Project+info'><img src="../images/redarrow.gif" />Project info
</h2>
<div class="section-content">
<table class="colortable" width="100%">
        <tr>
          <th>item
</th>
          <th>type
</th>
          <th>reference
</th>
        </tr>
        <tr>
          <td>Website
</td>
          <td>www
</td>
          <td>
            <a href="http://logging.apache.org/log4net">http://logging.apache.org/log4net
</a>
          </td>
        </tr>
        <tr>
          <td>.
</td>
          <td>wiki
</td>
          <td>.
</td>
        </tr>
        <tr>
          <td>Mailing list
</td>
          <td>dev
</td>
          <td>log4net-dev@logging.apache.org
</td>
        </tr>
        <tr>
          <td>.
</td>
          <td>user
</td>
          <td>log4net-user@logging.apache.org
</td>
        </tr>
        <tr>
          <td>.
</td>
          <td>cvs
</td>
          <td>log4net-cvs@logging.apache.org
</td>
        </tr>
        <tr>
          <td>Bug tracking
</td>
          <td>JIRA
</td>
          <td>
            <a href="http://issues.apache.org/jira/browse/LOG4NET">http://issues.apache.org/jira/browse/LOG4NET
</a>
          </td>
        </tr>
        <tr>
          <td>Source code
</td>
          <td>SVN
</td>
          <td>
            <a href="https://svn.apache.org/repos/asf/logging/log4net/trunk">https://svn.apache.org/repos/asf/logging/log4net/trunk
</a>
          </td>
        </tr>
        <tr>
          <td>Mentors
</td>
          <td>id1
</td>
          <td>Mark Womack
</td>
        </tr>
        <tr>
          <td>Committers
</td>
          <td>nicko
</td>
          <td>Nicko Cadell
</td>
        </tr>
        <tr>
          <td>.
</td>
          <td>niall
</td>
          <td>Niall Daley
</td>
        </tr>
        <tr>
          <td>.
</td>
          <td>drieseng
</td>
          <td>Gert Driesen
</td>
        </tr>
        <tr>
          <td>.
</td>
          <td>rgrabowski
</td>
          <td>Rob Grabowski
</td>
        </tr>
        <tr>
          <td>Extra
</td>
          <td>.
</td>
          <td>.
</td>
        </tr>
      </table>
</div>
        <h2 id='Incubation+status+reports'><img src="../images/redarrow.gif" />Incubation status reports
</h2>
<div class="section-content">
<table class="colortable" width="100%">
          <tr><th>Date</th><th>Status</th></tr>
          <tr valign="top"><td>2004-05</td><td>Log4net now supports building under the Mono Beta 1 runtime. </td></tr>
          <tr valign="top"><td>2005-02</td><td>The Logging Services PMC would like to see the log4net project graduate 
in the coming few months. A new log4net development release is in 
preparation which the LS PMC has approved. We intend to seek the approval 
of the Incubator PMC in the coming days. The finalised log4net version 
1.2 should be released within the next quarter.<br /><br />
log4net is now using a JIRA issue tracker.</td></tr>
          <tr valign="top"><td>2005-05</td><td>The incubator approved the release of log4net 1.2.9 beta which is the 
first release of log4net under Apache. The upcoming release goals are 
to ensure consistent code quality and improve the available end user 
documentation.<br /><br />
The project's ongoing goal is to increase the number of active committers 
and to graduate from incubation.</td></tr>
          <tr valign="top"><td>2005-08</td><td>The log4net project is still in incubation, but it is active.  The
Logging Services PMC is currently voting on a new committer,
Rob Grabowski (rgrabowski@apache.org), and the vote seems likely to pass.
This would bring the number of active committers to 4, helping meet
incubator exit criteria.<br /><br />
The log4net committers are working towards the next maintenance release 
with a focus on code quality and improving the available end user 
documentation.</td></tr>
          <tr valign="top"><td>2005-10</td><td>Log4net has elected Rob Grabowski (rgrabowski at apache dot org) as a new
committer. This brings the number of active committers to 4, helping meet
incubator exit criteria.<br /><br />
We have recently migrated from CVS to SVN.<br /><br />
We are working towards the next maintenance release  with a focus on code
quality and improving the available end user documentation.</td></tr>
          <tr valign="top"><td>2006-01</td><td>The log4net committers are working on compatibility with the .NET 2.0
releases from Microsoft and Mono.</td></tr>
          <tr valign="top"><td>2007-02-17</td><td>Graduation from Incubator to Logging Services.</td></tr>
        </table>
</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>2004-01-15
</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>2004-01-15
</td>
              <td>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.
</td>
            </tr>
            <tr>
              <td>2004-01-06
</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='Interim+responsibility'>Interim responsibility
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date
</th>
              <th>item
</th>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Identify all the Mentors for the incubation, by asking all that can
be Mentors.
</td>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Subscribe all Mentors on the pmc and general lists.
</td>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Give all Mentors access to all incubator CVS modules. (to be done by
PMC chair)
</td>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Tell Mentors to track progress in the file
'incubator/projects/{project.name}.cwiki'
</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>2004-01-26
</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>2005-03-10
</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>2005-03-10
</td>
              <td>Check and make sure that for all code included with the distribution
that is not under the Apache license, e have the right to combine
with Apache-licensed code and redistribute.
</td>
            </tr>
            <tr>
              <td>2005-03-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>2004-01-23
</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>2004-01-23
</td>
              <td>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>date
</th>
              <th>item
</th>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Ask infrastructure to create source repository modules and grant the
committers karma.
</td>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Ask infrastructure to set up and archive Mailing lists.
</td>
            </tr>
            <tr>
              <td>2005-02-23
</td>
              <td>Decide about and then ask infrastructure to setup an issuetracking
system (Bugzilla, Scarab, Jira).
</td>
            </tr>
            <tr>
              <td>2004-01-15
</td>
              <td>Migrate the project to our infrastructure.
</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>
        </p>
<p>
          <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>
          </ul>
<ul>
            <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>
          </ul>
<ul>
            <li>Are project decisions being made in public by the committers?
</li>
          </ul>
<p>From the discussions on log4net-dev@logging.apache.org that appears
to be the case.
</p>
<ul>
            <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>
<p>Nicko Cadell has promtly responded to IP related concerns raised on
the general@incubator and log4net-dev mailing lists.
</p>
</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>
