blob: edd5b7f30aafe8dfa6aa51a630e6f14c82675923 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="author" content="david.kaspar@sun.com">
<link rel="stylesheet" href="https://netbeans.org/netbeans.css" type="text/css">
<title>netbeans.org : NetBeans Visual Library 2.0 - Change Integration Process</title>
<style type="text/css"><!--
pre {
border: 1px solid black;
padding: 10px;
background-color: #FFD;
}
table.framed {
border: 2px solid black;
border-collapse: collapse;
border-spacing: 1px solid black;
}
table.framed th {
background-color: #FFD;
padding: 5px;
border: 2px solid black;
vertical-align: top;
}
table.framed td {
padding: 5px;
border: 1px solid black;
vertical-align: top;
}
code {
background-color: #FFD;
border: 1px solid #DD0;
}
--></style>
</head>
<body>
<h1>Visual Library 2.0 - Change Integration Process</h1>
<a name="Index">
<h2>Index</h2>
<ul>
<li><a href="#Index">Index</a>
<li><a href="#Abstract">Abstract</a>
<li><a href="#ChangeIntegrationProcess">Change Integration Process</a>
<li><a href="#RelatedLinks">Related Links</a>
</ul>
<a name="Abstract">
<h2>Abstract</h2>
Since NetBeans 6.0 the library become stable. Therefore integration of new features or changes
that may affect functionality, behaviour or API has to be described and approved be API review committee.
This document described a process of a change integration.
<a name="ChangeIntegrationProcess">
<h2>Change Integration Process</h2>
<p>
Let assume that you have a feature or a change that may affect functionality, behaviour or API. Then you have to follow next steps before the source code may be integrated to the CVS.
<ol>
<li>Enter an issue for the change and describe it together with your solution.
<li>Create a patch for the change. The patch has to include:
<ol>
<li>The changed code including all new files.
<li>Proper javadoc. Use the "since" tag in javadoc for each new/changed method/class.
<li>Change has to be documented in <code>graph/lib/src/org/netbeans/api/visual/widget/doc-files/documentation.html</code> file.
<li>Have an automated test in <code>graph/lib/test/unit/src</code> directory. Use <code>framework.VisualTestCase</code> class for visual tests.
<li>Have an example in <code>graph/examples/src</code> directory. The example should show how to use the feature or how it is working.
The example has to be referenced in <code>graph/examples/src/org/netbeans/modules/visual/examples/RunDialog.java</code> class (enable the example in examples RunDialog).
The example has to be documented in <code>graph/www/documentation.html</code> file.
<li>Increased specification-version in <code>graph/lib/manifest.mf</code> file. Increase it only once a day when you are doing a patch/commit of an API or a behavior.
<li>Described the change in <code>graph/lib/api-changes.xml</code> file.
</ol>
<li>Attach the patch to the issue, add "API_REVIEW" or "API_REVIEW_FAST" keyword to the issue and reassigned the issue to the <code>apireviews@netbeans.org</code>.
<li>Wait for 2 days. During that time they may change the status from "API_REVIEW_FAST" to "API_REVIEW".
<li>Wait for 7 days. During that time people can have comments or requests. Discuss and implement them and attach a new patch.
<li>Reassign the issue back to the module owner.
<li>Take the patch and apply it to your clean version of graph module from CVS.
<li>Check whether the spec. version in manifest.mf is correct (i.e. correctly increated).
<li>Update date, spec.version in api-changes.xml file.
<li>Update all newly added "since" tags in javadocs.
<li>Check whether all files (including new ones) are included/add into the CVS.
<li>Compile the NetBeans IDE and run <code>ant test</code> in <code>graph/lib</code> module to start automated tests.
<li>Commit the patch and set the issue as Resolved Fixed (still keep the "keyword" filled).
</ol>
<p>
Yes, the process is so big and exhausting but it is necessary since the library is considered stable and therefore has to be 100% backward compatible.
<a name="RelatedLinks">
<h2>Related Links</h2>
<ul>
<li><a href="http://openide.netbeans.org/tutorial/review-steps.html">API review process step-by-step</a>
<li><a href="http://bits.netbeans.org/dev/javadoc/index.html">NB API Javadoc</a>
<li><a href="http://openide.netbeans.org/tutorial/reviews/">API review home page</a>
<li><a href="http://openide.netbeans.org/tutorial/api-design.html">how to design API</a>
<li><a href="http://openide.netbeans.org/tutorial/api.html">API development</a>
</ul>
<hr>
If you have any comments, suggestions, or missing feature or documentation, please, send an email to <a href="mailto:users@graph.netbeans.org">users@graph.netbeans.org</a>.
</body>
</html>