<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
 <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
  <title>Contributing a port to an Eclipse build</title>
</head>
<body>
<span style="font-weight: bold;">Contributing an Eclipse port</span><br>
<i><b>DRAFT </b></i>
<p>Last updated: August 22, 2007</p>
<br>
<p> 
The Eclipse platform team has limited hardware and platform resources
to compile and produce builds of Eclipse on a wide variety of
platforms. This document describes the mechanism to provide a build for
a operating system-windowing system-architecture (os-ws-arch) that is
not currently built by the platform team. 


<p>

<p>In assuming this role, teams
    or individuals will be expected to perform the following tasks.  .&nbsp; <br>
<ul>
  <li>Meet eclipse.org&nbsp; <a href="http://eclipse.org/legal/">legal
requirements.</a></li>
<li>Garner PMC support for new port.</li>
<li>Become a <a href="http://www.eclipse.org/legal/newcommitter.html">committer</a> and sign the associated legal documents.
<li>Contribute the new swt fragment.</li>
  <li>Contribute patches required for build and run Eclipse on the
new platform.</li>
  <li>Run the build and conduct automated tests during the test pass of each    <a href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_4.html#Milestones">milestone</a></li>
  <li>Investigate, provide patches and resolve platform specific bugs.</li>
  <li>Upload a tested build for inclusion in upcoming Eclipse
platform <a href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_4.html#Milestones">milestones</a> and
releases to the eclipse.org infrastructure.<a
 href="http://eclipse.org/legal/"></a>.<br>
  </li>
</ul>
These conditions must be met before a port will be provided on eclipse.org.<br>
<br>
The process to include an external build on eclipse.org is as follows:<br>
<ol>
  <li>Open a <a href="http://bugs.eclipse.org/bugs">bug</a> with the
    Product Platform and Component Releng describing the os-ws-arch platform
    to be used for the build.&nbsp; The
    platform releng team will arrange for PMC approval of support of this new
    drop. Once approved, a 
new project may need to be created to provide swt libraries for this
platform.
You
will also need to be approved as a committer by the PMC to have commit
rights to new platform-specific libraries
required by your contributed build. As part of this progress, you will
also
agree to the <a href="http://www.eclipse.org/legal/committerguidelines.html">committer
  due diligence guidelines</a>.</li>
  <li>Once approval is granted, use the&nbsp; <a
 href="http://download.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/srcIncludedBuildInstructions.html">Source
Build</a> or <a
 href="http://download.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/srcFetchBuildInstructions.html">Source
Fetch build</a> scripts to generate a SDK build.&nbsp; Incorporate platform
specific patches in these scripts and test the resultant build.&nbsp; A
bug describing the patches to ensure that the build runs should be
opened with Product Platform and Component Releng.&nbsp; We will
incorporate these patches into our build scripts or ensure that they
are included in other teams code base as appropriate.  </li>
  <li>The cvs tag of&nbsp; the builder projects (org.eclipse.releng,
org.eclipse.releng.eclipsebuilder and org.eclipse.releng.basebuilder)
that was used to create the build will be listed on the test results
page of the build. Refer to the <a href="http://www.eclipse.org/eclipse/platform-releng/buildSchedule.html">platform
releng build schedule</a> if you need additional information about upcoming builds </li>
  <li><a mailto="webmaster@eclipse.org">Run the automated tests for
your platform after you have
successfully completed the build.</a></li>
  <li>Request a ftp account on download1.eclipse.org from <a
 href="mailto:webmaster@eclipse.org">
webmaster@eclipse.org</a>  </li>
  <li>Copy the build to the staging area for eclipse downloads. </li>
  <p></p>
  <tt>/home/data/httpd/download-staging.priv/eclipse/downloads/&lt;your organization&gt;</tt>
  <p>
  <li>Once you have pushed your
  files to the server, notify the releng team that your file available.  They
    will move it to the appropriate directory so it's available for download
    from eclipse.org.
    <p></li>
</ol>
   
    </p>
</body>
</html>
