<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();
include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "Tigerstripe 0.5M1 Build (0.5.0.200908271716NGT)";
$pageKeywords	= "Type, page, keywords, here";
$pageAuthor		= "Eric Dillon";
# End: page-specific settings
#

# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<div id="maincontent">

<div id="midcolumn">
<h1>$pageTitle</h1>
	<div class="homeitem3col">
		<h3>Release Notes - 08/27/09</h3>
		<small>There is no final release yet of 0.5. In the meantime, stable releases can be installed from our interim update site.</small>
		<p>This milestone build is the second stable build for Tigerstripe 0.5, targeting Galileo. </p>

		<p>It provides the following
			<ul>
				<li>Overall additional stability, more specifically around Class Diagrams editing, where 0.5M0 contained issues related to Drag-n-Drop
				of Association Classes, and removal of objects</li>
				<li>Ability to see association ends in the Explorer. This is configured through the Tigerstripe->Explorer preferences page.
					<img src="/tigerstripe/images/assocEnd-in-explorer.png"/>
				</li>
			</ul>
		</p>
		
		<h3>Resolved bugzillas</h3>
		<p>A list of resolved bugzillas for this build can be found <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Tigerstripe&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2009-06-26&chfieldto=2009-08-28&chfieldvalue=&cmdtype=doit&order=Importance&field0-0-0=noop&type0-0-0=noop&value0-0-0=">here</a></p>.
		
		<h3>Installing this build</h3>
		<ul>
			<li>Help
			<ul>
				<li>install New Software
				<ul>
					<li>Add...<br/>
								Name: <strong>Tigerstripe Interim Update Site</strong><br/>
								Location: <a href="http://download.eclipse.org/technology/tigerstripe/updates-3.5-interim/">http://download.eclipse.org/technology/tigerstripe/updates-3.5-interim/</a><small> (Interim Builds)</small><br/>
								<strong>The interim site is not categorized. Make sure you uncheck the "Group Items by Categories" option.</strong>
					</li>
				</ul>
				</li>
			</ul>
			</li>
		</ul>
		
			</div>
	</div>
	<div id="rightcolumn">
 		<div class="sideitem">
		   <h6>Incubation</h6>
 		  <div align="center">
 		  	<a href="/projects/what-is-incubation.php">
 		  		<img align="center" src="/images/egg-incubation.png" border="0" alt="Incubation" />
 		  	</a>
 		  </div>
 		</div>
 	</div>
</div>
EOHTML;

# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);

?>