<!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</H1>

<p><i>$Revision: 1.2 $</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> available in release33/features/infrastructure/index.html CVS

<hr>
<p><b>Contents:</b></p>
<ol>
  <li>Overview</li>
  <li>How to write features for your module</li>
  <li>XSL styles</li>
  <li>Strenghts and Weaknesses</li>
</ol>
<hr>
<h2>1. Overview</h2>
<p>
The main reson of this proposal is to simplify the work with new features
proposals and plans 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>plan.xml</b> file.
Using xsl it is possible to generate html files for every module and also
features for whole release. In order to to track the implementation
progress during different phases of release the features can and are suggested
to link into an issue in <a href="https://netbeans.org/bugzilla/">issuezilla</a>.
The actual information (progress, status, target version, responsible persons) will be extracted from the
associated issue and updated dynamically each time the pages are regenerated.
</p>
<p>
The whole infrastructure consists of the following parts:
<ul>
        <li><b><font color="red">Source</font> data for each module:</b></li>
        <ul>
                <li>plan.xml file for every module. This file is located in /www/plans/ directory of every module. Examples:
                vcscore,
                debugger,
                java
                </li>
        </ul>
        <li><b>Source data for whole release:</b></li>
        <ul>
                <li>/nbbuild/plans/modules.xml - The list of modules collected to projects.</li>
                <li>/nbbuild/plans/all_features.xml - Features for all modules included in one xml file - used for transformation.</li>
        </ul>
        <li><b>XSL styles for transformation:</b>(stored in nbbuild module)</li>
        <ul>
                <li>/nbbuild/plans/nb33-features-overview.xsl - Style for generation the main features overview.</li>
                <li>/nbbuild/plans/nb33-features-module.xsl - Style for generation features for one module.</li>
        </ul>
        <li><b>Build script for transformation:</b></li>
        <ul>
                <li>/nbbuild/plans/build.xml - ANT script.</li>
                <li>Plan.xml generator (nbbuild/antsrc/org/netbeans/nbbuild/NoPlans.java) - and Ant task that creates draft plan.xml file to be postprocessed by:</li>
                <li>/nbbuild/antsrc/org/netbeans/nbbuild/PlansPreprocess.java
                     - an ANT task that connects to issuezilla and updates the the features with values from issuzilla</li>
        </ul>
        <li><b><font color="red">Generated overview</font> of features for whole release:</b></li>
        <ul>
                <li><a href="../nb33-features-overview.html">nb33-features-overview.html</a> - List for projects (one or more modules), only features which has high impact on users</li>
        </ul>
        <li><b><font color="red">Generated module</font> list:</b></li>
        <ul>
                <li>features.html file for every module. This file is located in /www/plans/ directory of every module. Examples:
                vcscore,
                debugger,
                java
                </li>
        </ul>
        <li><b>Instructions</b>:</li>
        <ul>
                <li><a href="index.html">index.html</a> - this document</li>
        </ul>
</ul>
</p>
<h2>2. How to write features for your module</h2>
<p>

<ul>
  <li>Use any example and modify it for your module:
                vcscore,
                debugger,
                java ,
                nbbuild
  </li>
  <li>Use this DTD if you prefer: https://netbeans.org/dtds/module_features-1_0.dtd
     The DTD is <b>commented</b>!
  </li>
  <li>Each proposal is formated in <b>xml</b>.</li>
  <li>Check if the xml is well-formed.</li>
  <li>Check if the xml is valid with the DTD</li>
  <li>The file is stored in the same place for every module: <b>/&lt;yourmodule&gt;/www/plans/plan.xml</b></li>
</ul>

<h3>Three Examples</h3>

<ul>
  <li>Example <a href="#storing">storing</a> all information in Issuezilla
  <li>Example <a href="#extending">extending</a> information from Issuesilla
  <li>Example <a href="#overwriting">overwriting</a> information from Issuezilla
</ul>

<h4 id="storing">Example fully generated from IssueZilla</h4>

Fill planned issue into IssueZilla. There is conventionally
introduced status whileboard attribute named "duration" that
maps directly to plan.xml's <requirement>'s duration attribute.
Usage duration=5 means that given issue takes 5 responsible developer
days. (More status whileboard attributes may be introduced if needed).
<p>
Mark somehow issues that you have planned. I used a "mykeyword"
placed in status whiteboard.
<p>

Create a build script that will generate plan.xml draft:

<pre>
    &lt;taskdef name="noplans"
                classname="org.netbeans.nbbuild.NoPlans"
                classpath="${nbbuild_root}/nbantext.jar"
    /&gt;

    &lt;!-- For those behind firewall. --&gt;
    &lt;property name="http.proxyPort" value="..." /&gt;
    &lt;property name="http.proxyHost" value="..." /&gt;

    &lt;target name="generate-plans"&gt;
        &lt;noplans target="plans.xml"
                    query="component=mycomponent&amp;target_milestone=4.0&amp;status_whiteboard=mykeyword&amp;status_whiteboard_type=allwords"
                    group="MyPlan"
        /&gt;
    &lt;/target&gt;
</pre>

where:
<dl>
<dt>target <dd>points to plans file to be generated,
<dt>query  <dd>selects issues that you want to include in your plan
               (it can go over multiple modules if needed)
<dt>group  <dd>names generated plan, it must be module name
               for module plans.
</dl>

<p>
Let <tt>PlanPreprocess</tt> task genereates all requirement details from Issuezilla connection.

<h4 id="extending">Example of one requirement that uses connection with issuezilla</h4>

<pre>
    &lt;requirement issue="14234" duration="5" user-impact="high"&gt;
        &lt;short-description&gt;
            Create list of planned features for NetBeans release 3.3.
        &lt;/short-description&gt;
        &lt;long-description&gt;
           &lt;body&gt;&lt;p&gt;Make features list for NetBeans 3.3.&lt;/p&gt;&lt;p&gt;
           All modules will have own list in $modulehome/www/plans/plan.xml
           This features will be collected to one list for whole NetBeans 3.3&lt;/p&gt;&lt;/body&gt;
        &lt;/long-description&gt;
        &lt;req-link href="https://netbeans.org/release33/">NetBeans - Release 3.3 Homepage&lt;/req-link&gt;
        &lt;req-link href="https://netbeans.org/release33/features/infrastructure/index.html">Instructions&lt;/&gt;
    &lt;/requirement&gt;
</pre>

<h4 id="overwriting">Another example that overrides name, roles and percentage-complete</h4>

<pre>
    &lt;requirement issue="17132" name="Features list" percentage-complete="90" user-impact="high"&gt;
        &lt;short-description&gt;
            Create list of planned features for NetBeans release 3.3.
        &lt;/short-description&gt;
        &lt;long-description&gt;
           &lt;body&gt;&lt;p&gt;Make features list for NetBeans 3.3.&lt;/p&gt;&lt;p&gt;
           All modules will have own list in $modulehome/www/plans/plan.xml
           This features will be collected to one list for whole NetBeans 3.3&lt;/p&gt;&lt;/body&gt;
        &lt;/long-description&gt;
        &lt;roles&gt;
            &lt;person nickname="Petr Hamernik"&gt;
                &lt;e-mail&gt;petr.hamernik@czech.sun.com&lt;/e-mail&gt;
                &lt;role name="owner"/&gt;
            &lt;/person&gt;
        &lt;/roles&gt;
        &lt;req-link href="https://netbeans.org/release33/">NetBeans - Release 3.3 Homepage&lt;/req-link&gt;
        &lt;req-link href="https://netbeans.org/release33/features/infrastructure/index.html">Instructions&lt;/&gt;
    &lt;/requirement&gt;
</pre>

<p>
<b>FAQs:</b>
<ul>
 <li>Use issue="number" to connect your requirement with issuezilla</li>
 <li>Use user-impact="high" if you want the feature is listed in release features overview or
 	do not use the user-impact attribute and change type of your issuezilla issue to <em>FEATURE</em></li>
 <li>Use short-description as a description at features overview (just plain text 1-3 lines), if it is missing the first text description from
 	issuezilla is taken</li>
 <li>Use long-description in plain text or in xhtml format starting with &lt;body&gt; element. xhtml is the same like html,
 but all tags has to be coupled, for example: &lt;p&gt;text&lt;/p&gt;. Long descriptions are used in per-module pages</li>
 <li>Use percentage-complete to notify users, which feature is already implemented in dev build or leave it out to update it from issue,
 	if you do not use this attribute it will be automatically taken from issuezilla</li>
 <li>XSL transformation are scheduled to run automatically every two hours.</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 plan.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 <b>/nbbuild/plans/ CVS</b><b>.</b></li>
</ul>
<h2>4. Strengths and weaknesses</h2>
<p>Strengths of this solution are:</p>
<ul>
  <li>Issuezilla can be used as the only data entry point.</li>
  <li>The simple format of plan.xml (the same effort as features.html)</li>
  <li>Possibility to generate more then just a collection of features - generation of whatisnew.html in the end of release cycle</li>
  <li>Possibility tracking of implementation status</li>
  <li>Allow future extension of xsl styles </li>
  <li>Many others...</li>
</ul>
<p>Weaknesses:</p>
<ul>
  <li>Extra work with filling the content to the plan.xml files which is now reduced by live integration with issuezilla. </li>
  <li>Generated reports do not distinguish between subtasks and external dependencies.</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:daniel.pfeffer@sun.com">Dan Pfeffer</a>.
Thanks.</i></p>
<p>&nbsp;</p>

</BODY>
</HTML>
