<?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>
For an introduction to Tycho , we recommend following the <a href="http://www.eclipsecon.org/europe2012/sessions/building-eclipse-plugins-and-rcp-applications-tycho">EclipseCon Tycho Tutorial</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>We also publish the <a href="sitedocs/index.html">reference maven plugin documentation for Tycho</a>
</p>

<p>Other sources of information:
<ul>
  <li><a href="http://wiki.eclipse.org/Tycho/Demo_Projects">Tycho demo projects</a></li>
  <li><a href="http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/tree/tycho-its/">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="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);
?>