| <!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 "WhatIsNew.html" |
| 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>/<yourmodule>/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> |
| <taskdef name="noplans" |
| classname="org.netbeans.nbbuild.NoPlans" |
| classpath="${nbbuild_root}/nbantext.jar" |
| /> |
| |
| <!-- For those behind firewall. --> |
| <property name="http.proxyPort" value="..." /> |
| <property name="http.proxyHost" value="..." /> |
| |
| <target name="generate-plans"> |
| <noplans target="plans.xml" |
| query="component=mycomponent&target_milestone=4.0&status_whiteboard=mykeyword&status_whiteboard_type=allwords" |
| group="MyPlan" |
| /> |
| </target> |
| </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> |
| <requirement issue="14234" duration="5" user-impact="high"> |
| <short-description> |
| Create list of planned features for NetBeans release 3.3. |
| </short-description> |
| <long-description> |
| <body><p>Make features list for NetBeans 3.3.</p><p> |
| 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</p></body> |
| </long-description> |
| <req-link href="https://netbeans.org/release33/">NetBeans - Release 3.3 Homepage</req-link> |
| <req-link href="https://netbeans.org/release33/features/infrastructure/index.html">Instructions</> |
| </requirement> |
| </pre> |
| |
| <h4 id="overwriting">Another example that overrides name, roles and percentage-complete</h4> |
| |
| <pre> |
| <requirement issue="17132" name="Features list" percentage-complete="90" user-impact="high"> |
| <short-description> |
| Create list of planned features for NetBeans release 3.3. |
| </short-description> |
| <long-description> |
| <body><p>Make features list for NetBeans 3.3.</p><p> |
| 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</p></body> |
| </long-description> |
| <roles> |
| <person nickname="Petr Hamernik"> |
| <e-mail>petr.hamernik@czech.sun.com</e-mail> |
| <role name="owner"/> |
| </person> |
| </roles> |
| <req-link href="https://netbeans.org/release33/">NetBeans - Release 3.3 Homepage</req-link> |
| <req-link href="https://netbeans.org/release33/features/infrastructure/index.html">Instructions</> |
| </requirement> |
| </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 <body> element. xhtml is the same like html, |
| but all tags has to be coupled, for example: <p>text</p>. 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> </p> |
| |
| </BODY> |
| </HTML> |