Added API tooling information
Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
diff --git a/documentation.php b/documentation.php
index dcc0945..970a8a3 100644
--- a/documentation.php
+++ b/documentation.php
@@ -34,6 +34,7 @@
# Generate documentation navigation
$Nav->addNavSeparator('Documentation', '/nattable/documentation.php');
+ $Nav->addCustomNav('Contribution Guide', '/nattable/documentation.php?page=contribution_guide', '_self', 4);
$Nav->addCustomNav('Getting started', '/nattable/documentation.php?page=getting_started', '_self', 3);
$Nav->addCustomNav('Basics', '/nattable/documentation.php?page=basics', '_self', 4);
$Nav->addCustomNav('Layers', '/nattable/documentation.php?page=layer', '_self', 4);
@@ -56,7 +57,6 @@
$Nav->addCustomNav('FAQ', '/nattable/documentation.php?page=faq', '_self', 4);
$Nav->addCustomNav('Related articles', '/nattable/documentation.php?page=articles', '_self', 4);
$Nav->addCustomNav('API Javadoc', 'http://download.eclipse.org/nattable/releases/1.2.0/apidocs', '_self', 4);
- $Nav->addCustomNav('Contribution Guide', '/nattable/documentation.php?page=contribution_guide', '_self', 4);
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
diff --git a/documentation/contribution_guide.html b/documentation/contribution_guide.html
index 7b20a8f..286a6b4 100644
--- a/documentation/contribution_guide.html
+++ b/documentation/contribution_guide.html
@@ -10,7 +10,7 @@
</div>
<div id="doccontent">
<div class="chapter">
- <h5>Environment</h5>
+ <h4>Environment</h4>
<div class="content">
<p>The development tools with minimum versions that are used by the NatTable team are:
<ul>
@@ -28,12 +28,12 @@
</div>
</div>
<div class="chapter">
- <h5>Obtaining sources and importing projects into Eclipse</h5>
+ <h4>Obtaining sources and importing projects into Eclipse</h4>
<div class="content">
The NatTable sources are hosted in Git. To get the sources you need to clone the repository either via
command line or via EGit Eclipse integration.
- <h6>Cloning via command line</h6>
+ <h5>Cloning via command line</h5>
<p>To clone the sources via command line, you need to execute the following Git command:</p>
<p><span class="code">git clone ssh://git.eclipse.org/gitroot/nattable/org.eclipse.nebula.widgets.nattable.git</span></p>
<p>After that, import the projects into Eclipse</p>
@@ -45,7 +45,7 @@
<li>Finish</li>
</ul>
- <h6>Cloning via EGit</h6>
+ <h5>Cloning via EGit</h5>
<p>First, verify that the default repository folder as set on the main Git preference page is to your liking.</p>
<p>Then, clone the repository and import the projects: </p>
<ul>
@@ -57,7 +57,7 @@
<li>Import existing projects into the workspace from the newly created working directory </li>
</ul>
- <h6>Source code organization</h6>
+ <h5>Source code organization</h5>
<p>The NatTable source is divided into the following main projects:
<ul>
<li>org.eclipse.nebula.widgets.nattable.core - NatTable Core code
@@ -77,21 +77,21 @@
</div>
<div class="chapter">
- <h5>Development IDE Configuration</h5>
+ <h4>Development IDE Configuration</h4>
<div class="content">
- <h6>Tools</h6>
+ <h5>Tools</h5>
<p>
Although not required you might want to install m2e together with the Tycho connector in order
to be able to build out of the IDE. This step is optional.
</p>
- <h6>Java Requirements</h6>
+ <h5>Java Requirements</h5>
<p>
NatTable has a Java 6 and Eclipse Platform 3.5 (Galileo) as minimum requirements,
so dependencies to newer Java and platform versions must be avoided.
</p>
- <h6>Dependencies</h6>
+ <h5>Dependencies</h5>
<p>
After importing the NatTable projects in Eclipse, they will not compile due to missing dependencies.
NatTable provides a target platform definition that should be activated in order to resolve the
@@ -112,10 +112,36 @@
select the checked target platform and click "Reload..." this will flush PDE's bundle
cache and re-download the artifacts listed in the target platform.
</p>
+
+ <h5>API Baseline</h5>
+ <p>
+ After importing the NatTable projects you should setup the API baseline if you intend to make changes to the code.
+ This will help you detect the <i>gravity</i> of the changes you are making (major, minor, micro) according to
+ <a href="http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf" target="_blank">OSGi semantic versioning</a>
+ </p>
+ <p>
+ The baseline you have to set is provided in the folder <i>api-baseline</i>.
+ </p>
+ <p>
+ Open the workspace preferences (Window > Preferences) and head to Plug-in Development > API Baselines.
+ There, hit <i>Add Baseline...</i> to define a new baseline. Choose any name you like (the version of the release the baseline
+ represents might be suitable, i.e. <i>NatTable 1.2</i>). Then, press <i>Browse...</i> and choose the api-baseline folder
+ within the NatTable git repository. Press <i>Finish</i> and apply the changes. This should trigger a workspace build.
+ </p>
+ <p>
+ From here on out the API tooling will highlight your code when your changes exceed the current margin given by the
+ snapshot version (e.g. while working on the 1.3 snapshot with the <i>NatTable 1.2</i> baseline, major API changes will
+ be marked as errors in the IDE).
+ More information about the API tooling can be found <a href="http://wiki.eclipse.org/PDE/API_Tools/User_Guide">here</a>.
+ </p>
+ <p>
+ Note, that you should aspire to make changes of the magnitude <i>micro</i>. These can be release in a Bugfix-Release,
+ while <i>minor</i> changes (new APIs) need a more elaborate release process. Currently, <i>major</i> changes will be generally rejected.
+ </p>
</div>
</div>
<div class="chapter">
- <h5>Build</h5>
+ <h4>Build</h4>
<div class="content">
<p>To build from the command line, you need to execute the following command from the <i>NATTABLE_TRUNK/nattable</i> directory:</p>
@@ -133,7 +159,7 @@
</div>
</div>
<div class="chapter">
- <h5>Contributing Patches </h5>
+ <h4>Contributing Patches</h4>
<div class="content">
<p>
We use Gerrit for reviewing and accepting patches. Please have a look at the