<?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'
/*******************************************************************************
 * Copyright (c) 2009 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    
 *******************************************************************************/

	$pageTitle 		= "Tycho - Documentation";

	$html  = <<<EOHTML
<div id="midcolumn">
<h2>$pageTitle</h2>
<p>The documentation of the Tycho project is maintained in the <a href="http://wiki.eclipse.org/Category:Tycho">Eclipse wiki</a>.</p>
<p>In order to set up Tycho in a Maven build, follow the instructions and examples on the pages
<a href="http://wiki.eclipse.org/Tycho/Reference_Card">Tycho Reference Card</a> and <a href="http://wiki.eclipse.org/Tycho/Packaging_Types">Tycho Packaging Types</a>.
</p>
<p>Other sources of information:
<ul>
  <li><a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&id=2049">Tycho tutorial and exercises (EclipseCON 2011)</a></li>
  <li><a href="http://wiki.eclipse.org/Tycho/Demo_Projects">Tycho demo projects</a></li>
  <li><a href="http://github.com/sonatype/sonatype-tycho/tree/master/tycho-its/projects/">Tycho integration tests contain many examples you can use as templates</a></li>
  <li><a href="http://dev.eclipse.org/mhonarc/lists/tycho-user/">Search the tycho-user mailing list archive</a></li>
  <li><a href="http://dev.eclipse.org/mhonarc/lists/tycho-dev/">Search the tycho-dev mailing list archive</a></li>
  <li><a href="http://software.2206966.n2.nabble.com/Tycho-Users-f3053503.html">Search the OLD sonatype mailing list archive</a></li>
  <li><a href="https://issues.sonatype.org/browse/TYCHO">Search the OLD sonatype issue tracker</a></li>
  <li><a href="https://dev.eclipse.org/mailman/listinfo/tycho-user">Ask on the tycho-user@eclipse.org mailing list</a></li>
</ul>
</p>

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