<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<TITLE>NetBeans New Features</TITLE>
<LINK REL="Stylesheet" HREF="https://netbeans.org/netbeans.css" TYPE="text/css" TITLE="NetBeans OpenSource Style">
</HEAD><BODY>

<H1>NetBeans New Features [proposal]</H1>

<p><i>version: 0.1, May 22, 2001</i><br>
<i>author: <a href="mailto:petr.hamernik@czech.sun.com">Petr Hamernik</a></i></p>

<p><i>special thanks to <a href="mailto:Daniel.Pfeffer@czech.sun.com">Dan
Pfeffer</a> for the xsl and ant scripts and <a href="mailto:Petr.Hrebejk@czech.sun.com">Petr
Hrebejk</a> for original ideas.</i></p>
<hr>
<br>
<i>Abstract:</i>
<ul>
  This document proposes the format of New features plans and describes how they
  can be used.
</ul>
<hr>
<p><i>Changes:</i>
<dl>
  <dt>May 22, 2001
  <dd>The original proposal for review</dd>
  <dt>May 28, 2001</dt>
  <dd>&nbsp;Updated after nbdev comments</dd>
</dl>
<hr>
<p><b>Contents:</b></p>
<ol>
  <li>Overview</li>
  <li>Features per module</li>
  <li>XSL styles</li>
  <li>Generated html files</li>
  <li>Strenghts and Weaknesses</li>
</ol>
<hr>
<h2>1. Overview</h2>
<p>The reson of this proposal is to simplify the work with new features
proposals in NetBeans. It will allow to write xsl files, which will generate the
exact collection of features you need (e.g. only significant features for the
whole release). An example can be the generation of &quot;WhatIsNew.html&quot;
file at the end of release cycle.</p>
<p>The features will be collected per module in one <b>features.xml</b> file.
Using xsl it is possible to generate html files for every module and also
features for whole release. It will be possible to track the implementation
progress during the implementation phase.</p>
<h2>2. Features per module</h2>
<ul>
  <li>The new features for upcoming releases are organized <b>per module</b>.</li>
  <li>Each proposal is formated in <b>xml</b>.</li>
  <li>The file is stored in the same place for every module: <b>$module/www/plans/features.xml</b></li>
</ul>
<h3>2.1 Features.xml overview</h3>
<p>The features.xml files contain requirements. <b>Every requirement </b>must
have:</p>
<ul>
  <li><b>Name</b></li>
  <li><b>Description</b></li>
  <li><b>Target milestone </b>(3.3, 3.4, etc.)</li>
  <li><b>Priority </b>(&quot;Must have&quot;, &quot;Should have&quot;,
    &quot;Nice to have&quot;)</li>
</ul>
<p>Optional (but recommended) part contains:</p>
<ul>
  <li>One or more <b>responsible persons </b>(with e-mails)</li>
  <li><b>Links </b>(e.g. links to Issuezilla enhancement, link to separate html
    file which describes the feature, ...)</li>
  <li><b>Percentage of completion </b>(this will allow everyone to track, how many features
    are already implemented)</li>
  <li><b>Duration</b> (the amount of the work - in days per developer)</li>
</ul>
<h3><b>2.2 Features.xml format</b></h3>
<ul>
  <li>The format of features.xml file is <b>as simple as possible</b>.</li>
  <li>Simple <b>example</b> which is possible to <b>use as a template
    </b>is available at <a href="https://netbeans.org/projects/ide/plans/features.xml">https://netbeans.org/projects/ide/plans/features.xml</a></li>
</ul>
<h3>2.3 Other features&nbsp;</h3>
<ul>
  <li>The features which <b>don't belong </b>to any module are stored in <b>nbbuild
    </b>module in <b>/www/plans/features.xml</b></li>
  <li>An example is &quot;New module proposal&quot;.</li>
</ul>
<h2>3. XSL styles</h2>
<ul>
  <li>Using <b>xsl</b> and <b>ant</b> scripts it is possible to generate the
    output from features.xml files</li>
  <li>The scripts are stored in <b>nbbuild </b>module in <b>/plans</b> directory</li>
  <li>The scripts are not finished yet, but are already available at <a href="https://netbeans.org/source/browse/nbbuild/plans/"><b>CVS</b></a><b>.</b></li>
</ul>
<h2>4. Generated html files</h2>
<ul>
  <li>Generated files are:
    <ul>
      <li>The <b>main features </b>for next release: <a href="../index.html">https://netbeans.org/community/releases/33/features/index.html</a></li>
      <li>The features list <b>per module</b>:
        everymodule.netbeans.org/plans/features.html</li>
    </ul>
  </li>
  <li>These documents are <b>linked.</b></li>
  <li>In the future these scripts should be run <b>automatically</b>, so
    generated pages should be always <b>up-to-date</b>.</li>
</ul>
<h2>5. Strengths and weaknesses</h2>
<p>Strengths of this solution are:</p>
<ul>
  <li>The simple format of features.xml (the same effort as features.html)</li>
  <li>Possibility to generate more then just a collection of features</li>
  <li>Possibility tracking of implementation status</li>
  <li>Allow future extension of xsl styles </li>
</ul>
<p>Weaknesses:</p>
<ul>
  <li>Extra work with filling the content to the features.xml files. </li>
</ul>
<hr>
<p><i>Please send comments to <a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a>
or to directly to me: <a href="mailto:petr.hamernik@czech.sun.com">petr.hamernik@czech.sun.com</a>.
Thanks.</i></p>
<p>&nbsp;</p>

</BODY>
</HTML>
