<html>
<head>

<title>Tycho</title>
</head>

<body>
<p>The Tycho project is a proposed open source project under the <a
	href="http://www.eclipse.org/projects/project_summary.php?projectid=technology">Technology
Project</a>.</p>

<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the <a
	href="http://www.eclipse.org/forums/eclipse.tycho">Tycho</a> Eclipse
Forum.</p>

<h2>Background</h2>

<p>As more Eclipse users are looking at Maven-based build solutions,
along with the great interest in Tycho interest we see from the Eclipse
community itself, we feel it's time to bring Tycho to Eclipse. The
majority of the Tycho user community are interested in bringing Tycho to
Eclipse so that's the path we are taking.</p>

<h2>Scope</h2>

<p>Tycho is focused on a Maven-centric, manifest-first approach to
building Eclipse plug-ins, features, update sites, RCP applications and
OSGi bundles.</p>

<h2>Description</h2>

<p>Tycho is a set of Maven plugins and extensions for building
Eclipse plugins and OSGi bundles with Maven. Eclipse plugins and OSGi
bundles have their own metadata for expressing dependencies, source
folder locations, etc. that are normally found in a Maven POM. Tycho
uses native metadata for Eclipse plugins and OSGi bundles and uses the
POM to configure and drive the build. Tycho supports bundles, fragments,
features, update site projects and RCP applications. Tycho also knows
how to run JUnit test plugins using OSGi runtime and there is also
support for sharing build results using Maven artifact repositories.</p>

<p>Tycho plugins introduce new packaging types and the corresponding
lifecycle bindings that allow Maven to use OSGi and Eclipse metadata
during a Maven build. OSGi rules are used to resolve project
dependencies and package visibility restrictions are honoured by the
OSGi-aware JDT-based compiler plugin. Tycho will use OSGi metadata and
OSGi rules to calculate project dependencies dynamically and injects
them into the Maven project model at build time. Tycho supports all
attributes supported by the Eclipse OSGi resolver (Require-Bundle,
Import-Package, Eclipse-GenericRequire, etc). Tycho will use proper
classpath access rules during compilation. Tycho supports all project
types supported by PDE and will use PDE/JDT project metadata where
possible. One important design goal in Tycho is to make sure there is no
duplication of metadata between POM and OSGi metadata.</p>

<h2>Initial Contribution</h2>

<p>The initial code based will be contributed by Sonatype, and is
currently located at Github: <a
	href="http://github.com/sonatype/sonatype-tycho">http://github.com/sonatype/sonatype-tycho</a>.</p>

<h2>Legal Issues</h2>

<p>None.</p>

<h2>Committers</h2>

<p>The following individuals are proposed as initial committers to
the project:</p>

<ul>
	<li>Igor Fedorenko, Sonatype (project lead)</li>
	<li>Benjamin Bentmann, Sonatype</li>
	<li>Marvin Froeder, Sonatype</li>
	<li>Jason van Zyl, Sonatype</li>
	<li>Jan Sievers, SAP</li>
</ul>

<p>All of these individuals have contributed significantly to the existing code base;
they bring their existing knowledge and skill to the project.</p>

<h2>Mentors</h2>

<p>The following Architecture Council members will mentor this
project:</p>

<ul>
	<li>Nick Boldt (Redhat)</li>
	<li>Bernd Kolb (SAP)</li>
</ul>

<h2>Interested Parties</h2>

<p>The following individuals, organisations, companies and projects
have expressed interest in this project:</p>

<ul>
	<li>Gary Keim, Terracotta</li>
	<li>Jesse McConnell, Italio</li>
	<li>Hugues Malphettes, Italio</li>
	<li>Max Andersen, Redhat</li>
	<li>Max Spring, Cisco</li>
	<li>Shawn O. Pearce, Google</li>
	<li>Matthias Vach, SAP</li>
	<li>Jan Sievers, SAP</li>
	<li>Stephan Merker, SAP</li>
	<li>Jan Lohre, SAP</li>
	<li>Beat Strasser, Inventage AG</li>
	<li>David Hudgins, AT&T</li>
	<!-- Indepdendent -->
	<li>Derek Lane, Independent</li>
	<li>Wendell Beckwith, Independent</li>
	<li>Michael Hüttermann, Independent</li>
	<li>Mattias Holmqvist, Independent</li>
	<li>Ron Pomeroy, Independent</li>
	<li>Alex Blewitt, Independent</li>
	<li>Pascal Leclercq, Independent</li>
	<li>Pete Carapetyan, Independent</li>
	<li>Mykola Nikishov, Indepdendent</li>
	<li>Toni Menzel, Indepdendent</li>
	<li>Steffen Stundzig</li>
	<li>Werner Keil</li>
</ul>

<h2></h2>
Related Projects
</h2>

<p>There are existing solutions at Eclipse in the same space at
Tycho. Among these solution are Buckminster, B3, PDE Build, and Athena.
Tycho will collaborate with these projects on P2 interoperability
issues, but aside from that Tycho competes with these projects.</p>

<h2>Project Scheduling</h2>

<p>The initial code contribution will be made when the project
review process is completed. We plan to release Tycho 1.0 in Q3 2010.</p>

<h2>Changes to this Document</h2>

<table>
	<!--
	<tr>
		<th>Date</th>
		<th>Change</th>
	</tr>
	-->
	<tr>
		<td>16-July-2010</td>
		<td>Added Jan Sievers to the list of committers.</td>
	</tr>
	<tr>
		<td>12-April-2010</td>
		<td>Added to the list of interested parties.</td>
	</tr>
	<tr>
		<td>29-March-2010</td>
		<td>Added to the list of interested parties.</td>
	</tr>
	<tr>
		<td>26-March-2010</td>
		<td>Document created</td>
	</tr>
</table>
</body>
</html>