diff --git a/whats-new/0.1M6/libra-news-0.1M6.html b/whats-new/0.1M6/libra-news-0.1M6.html
new file mode 100644
index 0000000..01ed2fe
--- /dev/null
+++ b/whats-new/0.1M6/libra-news-0.1M6.html
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Language" content="en-us" />
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>Eclipse &quot;New and Noteworthy&quot; Template</title>
+</head>
+<body>
+<h1>Eclipse &quot;New and Noteworthy&quot; Template</h1>
+<p>Last revised October 29, 2007</p>
+
+<p>This is the template for the &quot;New and Noteworthy&quot; document that
+  accompanies each Eclipse project milestone build.</p>
+<p>Note: This template document is XHTML 1.0 Transitional. Please use the W3C <a href="http://validator.w3.org/#validate_by_input">XHTML
+    Markup Validation Service</a> to check your document's markup before submitting.
+    This will detect screwed up HTML tags, images without an &quot;alt&quot;
+  attrribute, and other tedious little details. </p>
+<table border="0" width="80%" cellpadding="10" cellspacing="0">
+  <tr>
+
+    <td colspan="2"><hr />
+      <h2>OSGi Bundle Facet</h2>
+      <hr /></td>
+  </tr>
+  <tr id="itemname">
+    <td width="30%" valign="top" align="left"><b>Item title, in bold, no trailing
+        punctuation, with unique id attribute on &lt;tr&gt; </b></td>
+    <td width="70%" valign="top">A blurb pitched to the Eclipse community
+        (not just to members of the Eclipse Platform development team). Tell
+        end users about changes they'll see at the UI. Tell component writers
+        about changes they'll see at the client- and server-side APIs. Try to
+        generate some excitement; save the boring details for the manual. The
+        description should be complete sentences, with trailing punctuation.
+        Stick to the default font and size.
+      <p>If a small image sheds light, place it below the description, in a separate
+        paragraph. Regular screen snapshots should be done on Windows XP. Crop
+        out any extraneous stuff to focus the reader's attention on your new
+        feature. <span style="background-color: #FFFF00">The image should be
+        no more than 466 pixels wide and in PNG-24 format</span> (as opposed
+        to GIF, TIF, BMP, or JPG).</p>
+
+      <p>Microsoft Paint actually saves to PNG on Windows XP and can easily be
+        used to crop and save screenshots:</p>
+      <ul>
+        <li>Arrange the windows for the shot</li>
+        <li>Use the Print Screen key (or Alt+Print Screen) to capture the screen</li>
+        <li>Open Paint (under All Programs &gt; Accessories)</li>
+        <li>Ctrl+V to paste</li>
+
+        <li>Select the area you want to keep</li>
+        <li>Ctrl+C to copy it</li>
+        <li>Ctrl+N to create a new canvas (ok to discard old one)</li>
+        <li>Ctrl+V to paste selected portion</li>
+        <li>Save As PNG</li>
+      </ul>
+
+      <p>Name the file is a way that is appropriate and specific to the item
+        (e.g., key-bindings.png, rather than something generic like image.png).
+        Use all lowercase letters in the image file name, including the &quot;.png&quot; 
+        file extension. As a separator, use hyphen &quot;-&quot; rather than
+        underscore 
+        &quot;_&quot;. </p>
+      <p>Put all the images in a sibling directory named &quot;images&quot;.
+        This gives HTML like &lt;img src=&quot;images/foo.png&quot; alt=&quot;The
+        Foo View&quot; /&gt;. Include a suitable alt property (which is mandatory
+        in XHTML 1.0). Do not embed the width and height of the image.</p>
+
+      <p>The images should be left justified (as opposed to centered). </p>
+      <p>Use the W3C <a href="http://validator.w3.org/#validate_by_input">XHTML
+          Markup Validation Service</a> to check your document's markup before
+          submitting.</p></td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />
+    </td>
+
+  </tr>
+  <tr id="itemname2">
+    <td width="30%" valign="top" align="left"><b>Another item</b></td>
+    <td width="70%" valign="top">Another blurb</td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />
+    </td>
+
+  </tr>
+  <tr id="itemname3">
+    <td width="30%" valign="top" align="left"><b>Another item</b></td>
+    <td width="70%" valign="top">Another blurb</td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />
+    </td>
+
+  </tr>
+  <tr>
+
+    <td colspan="2"><hr />
+      <h2>WAR Products</h2>
+      <hr /></td>
+  </tr>
+  <tr id="itemname">
+    <td width="30%" valign="top" align="left"><b>Item title, in bold, no trailing
+        punctuation, with unique id attribute on &lt;tr&gt; </b></td>
+    <td width="70%" valign="top">A blurb pitched to the Eclipse community
+        (not just to members of the Eclipse Platform development team). Tell
+        end users about changes they'll see at the UI. Tell component writers
+        about changes they'll see at the client- and server-side APIs. Try to
+        generate some excitement; save the boring details for the manual. The
+        description should be complete sentences, with trailing punctuation.
+        Stick to the default font and size.
+      <p>If a small image sheds light, place it below the description, in a separate
+        paragraph. Regular screen snapshots should be done on Windows XP. Crop
+        out any extraneous stuff to focus the reader's attention on your new
+        feature. <span style="background-color: #FFFF00">The image should be
+        no more than 466 pixels wide and in PNG-24 format</span> (as opposed
+        to GIF, TIF, BMP, or JPG).</p>
+
+      <p>Microsoft Paint actually saves to PNG on Windows XP and can easily be
+        used to crop and save screenshots:</p>
+      <ul>
+        <li>Arrange the windows for the shot</li>
+        <li>Use the Print Screen key (or Alt+Print Screen) to capture the screen</li>
+        <li>Open Paint (under All Programs &gt; Accessories)</li>
+        <li>Ctrl+V to paste</li>
+
+        <li>Select the area you want to keep</li>
+        <li>Ctrl+C to copy it</li>
+        <li>Ctrl+N to create a new canvas (ok to discard old one)</li>
+        <li>Ctrl+V to paste selected portion</li>
+        <li>Save As PNG</li>
+      </ul>
+
+      <p>Name the file is a way that is appropriate and specific to the item
+        (e.g., key-bindings.png, rather than something generic like image.png).
+        Use all lowercase letters in the image file name, including the &quot;.png&quot; 
+        file extension. As a separator, use hyphen &quot;-&quot; rather than
+        underscore 
+        &quot;_&quot;. </p>
+      <p>Put all the images in a sibling directory named &quot;images&quot;.
+        This gives HTML like &lt;img src=&quot;images/foo.png&quot; alt=&quot;The
+        Foo View&quot; /&gt;. Include a suitable alt property (which is mandatory
+        in XHTML 1.0). Do not embed the width and height of the image.</p>
+
+      <p>The images should be left justified (as opposed to centered). </p>
+      <p>Use the W3C <a href="http://validator.w3.org/#validate_by_input">XHTML
+          Markup Validation Service</a> to check your document's markup before
+          submitting.</p></td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />
+    </td>
+
+  </tr>
+  <tr id="itemname2">
+    <td width="30%" valign="top" align="left"><b>Another item</b></td>
+    <td width="70%" valign="top">Another blurb</td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />
+    </td>
+
+  </tr>
+  <tr id="itemname3">
+    <td width="30%" valign="top" align="left"><b>Another item</b></td>
+    <td width="70%" valign="top">Another blurb</td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />
+    </td>
+
+  </tr>
+</table>
+</body>
+</html>
