Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between pages "Platform-releng-faq-obsolete" and "CDT/Obsolete/whoswho"

(Difference between pages)
m
 
(Added Dave Daoust to page)
 
Line 1: Line 1:
<H3>Eclipse Platform Release Engineering FAQ</H3>
+
The following is the list of who's who in the CDT. For each person we list their status (Committer versus Contributor) and the areas they have interest in.
  
<p>
+
{|
If you would like additional content added to this FAQ, please send a note to the
+
| [mailto:dschaefer@qnx.com Doug Schaefer - QNX]
[https://dev.eclipse.org/mailman/listinfo/platform-releng-dev platform releng developers mailing list]
+
| CDT Project Lead, Committer, CDT Core parser and related features. [http://cdtdoug.blogspot.com Read my blog.]
</p>
+
|-
 
+
| [mailto:leo.treggiari@intel.com Leo Treggiari - Intel]
<h4>What hardware comprises the platform-releng build infrastructure?</h4>
+
| Committer, CDT Managed Build System primarily, but also Standard Make and Core
  <p>The eclipse platform build infrastructure consists of<br><ol>
+
|-
    <li>2 linux build machines (2GHz, 1GB  and  PowerMac G5, 2GB )<br></li>
+
| [mailto:crecoskie@ti.com Chris Recoskie - Texas Instruments]
    <li>2 junit test machines, one windows (2GHz, 1 GB) one linux (2.66
+
| Committer, CDT Managed Build System primarily, Debug second, and a little bit of everything for good measure
    GHz, 1.2 GB )</li>
+
|-
    <li>4 performance test machines - one set of slower machines (one windows, one
+
| [mailto:mikhailk@qnx.com Mikhail Khodjaiants - QNX]
    linux 2GHz, 512 MB) and one set of fast machines (one windows, one linux
+
| Committer, CDT Debugger
    3GHz, 2GB)</li>
+
|-
    <li>1 linux cvs test server(500MHz, 500MB)</li>
+
| [mailto:mikhail.sennikovsky@intel.com Mikhail Sennikovsky - Intel]
    <li>1 database server with apache derby installed to store performance test
+
| Committer, CDT Managed Build System primarily, also interested in Standard Make, Core and Debug
  results (2.5GHz, 500MB)</li>
+
|-
</ol></p><br>
+
| [mailto:norbert.ploett@siemens.com Norbert Ploett - Siemens]
 
+
| Committer, CDT content assist, Managed Build System, Debug
<h4>Is the Eclipse platform build process completely automated?</h4>
+
|-
 
+
| [mailto:dave.daoust@windriver.com David Daoust - Wind River]
  <p>Yes, the Eclipse build process starts with a cron job on our main build machine that initiates a shell script that checks out the builder projects. </p>
+
| Committer, Useability, Scalablity, CDT Core parser and related features
 
+
|}
    <li>org.eclipse.releng.eclipsebuilder -&gt; scripts to build each type of drop</li>
+
    <li>org.eclipse.releng.basebuilder -&gt; a subset of eclipse plugins required to run the build.</li>
+
    <li>we also use several small cvs projects on an internal server that
+
 
+
 
+
          store login credentials, publishing information and jdks</li>
+
 
+
 
+
  <p>Fetch, build and assemble scripts are generated automatically the org.eclipse.pde.build plugin in org.eclipse.releng.basebuilder. Fetch scripts specify the version of code to retrieve from the repository. Build
+
      scripts are also generated automatically to compile all java code, determine compile order and manage dependancies. Assembly scripts are generated to assemble the compiled code into it's final form, tar.gz, zip
+
      etc. We also use custom build scripts that you can see in org.eclipse.releng.eclipsebuilder.</p>
+
    <p>After the build drops are built, the automated junit and performance testing begins. Tests occur over ssh for Linux machines, and rsh for Windows machines.    Each component team contributes it's own tests. Once the tests are completed,the results are copied back to the build machine. Also, the images for the
+
  performance tests are generated.</p><br>
+
 
+
  <h4>What's the difference between an integration
+
    and nightly build?</h4>
+
     
+
      <p>With integration builds, we specify a version of the plugin to retrieve in the
+
    map files. (org.eclipse.releng/maps). With nightly builds, we retrieve the plugins specified in the map files from the HEAD stream.  The types of builds we run are described here   http://download.eclipse.org/eclipse/downloads/build_types.html.</p><br>
+
 
+
<h4>How do I run a build using the scripts in org.eclipse.releng.eclipsebuilder ?</h4>
+
 
+
<p>
+
This document provides an overview of
+
[http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/org.eclipse.releng.eclipsebuilder/readme.html?rev=HEAD&amp;content-type=text/html how to build eclipse components using the releng scripts.]      </p><br>
+
 
+
<h4>How do I automate my builds with PDE Build?</h4>
+
 
+
<p>
+
This document describes
+
[http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/org.eclipse.releng.basebuilder/readme.html?rev=HEAD&amp;content-type=text/html how to automate builds using PDE Build.]
+
</p>
+
<br>
+
 
+
<h4>How do I contribute a JUnit Plugin-in Test to the build?</h4>
+
 
+
<p>
+
[http://www.eclipse.org/eclipse/platform-releng/junit-contributing.html Contributing JUnit Plug-in Tests]  
+
</p>
+
 
+
<h4>How do I contribute an example plugin to the build?</h4>
+
 
+
<p>
+
Once you have your plugin ready, install the org.eclipse.releng.tools plug-in, and use the "Release" action in the context menu of the test plug-in project to update and commit the map file.</p>
+
 
+
<p>Send a request to platform-releng-dev@eclipse.org to add the test plugins to the build process. Include the following information:</p>
+
 
+
<li>the plug-in ids</li>
+
 
+
<p>The Eclipse release engineering team will update the org.eclipse.sdk.examples-feature to include the new tests.  They will also update org.eclipse.releng.eclipsebuilder/all/publishing/templateFiles/testManifest.xml  to indicate the zip that should get a red X if there are compile errors associated with that plugin on the build page.
+
</p>
+
 
+
<h4>I would like to recompile eclipse on a platform that is not currently supported. What is the best approach to this?  How can I ensure that the community can use my work?</h4>
+
 
+
<p>The best approach is use the source build drop and modify the scripts to support that you are interested in. Then
+
      open a bug  https://bugs.eclipse.org with product <i>platform</i> and component <i>releng</i> attaching the patches to the scripts that were required to build the new drop.</p><br>
+
 
+
<h4>How long does the build take to complete?</h4>
+
 
+
  <p>It takes two hours for all the drops to be produced. Junit (four hours)
+
  and performance tests (eight hours) run in parallel after the drops have been
+
  built.
+
  It takes a further
+
  two hours for the performance results to be generated. We will reduce the amount
+
  of time that  the build takes in the 3.2 timeframe by implementing faster hardware
+
  and more parallel ant tasks.
+
</p><br>
+
 
+
<h4>When is the next build?</h4>
+
<p>Please refer to the build schedule http://www.eclipse.org/eclipse/platform-releng/buildSchedule.html
+
      </p><br>
+
 
+
<h4>When is the next milestone?</h4>
+
<p>Please refer to the Eclipse Platform Project Plan
+
http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_2.html
+
</p><br>
+
 
+
<h4>I'd like to run a build with the version of the code that was used for build X? How do I know what versions of code in the repository were used?</h4>
+
<p>There are several ways to approach this issue. 
+
<ul>
+
<li>
+
Look at the directory.txt linked from the top of every build page.  The directory.txt concatenates all the map files used in a build into a single file. Please note that every nightly build runs from HEAD.  Therefore it is impossible to replicate a nightly build.
+
</li>
+
<li>
+
In addition, with every maintenance and integration build, the org.eclipse.releng project, which contains the map files for each project, is tagged with a version corresponding to that build.  For instance, the version I20051018-0932 corresponds to the integration build of the same name.  Please note that the builder projects, (org.eclipse.releng.eclipsebuilder and org.eclipse.releng.basebuilder) are also tagged during an integration build with the corresponding build name, but are not reflected in the directory.txt because they are not included in the eclipse distribution itself.
+
</li>
+
<li>
+
Finally, after each release the releng team tags all projects from the map files used in the release.  So, all the projects used to construct version 3.1.1 are tagged R_3_1_1. 
+
</li></ul>
+
</p><br>
+
 
+
<h4>I'm looking for an older build but can't find them on the download page?</h4>
+
 
+
<p>Check out archive site the http://archive.eclipse.org/eclipse/downloads for vintage builds.</p><br>
+
 
+
 
+
 
+
<h4>I'm a platform committer and have made major changes today.  I'd like to run a test build to ensure that my changes don't break the build. Can I request a test build from a web page?</h4>
+
 
+
<p>No, you cannot request a eclipse test build from a web page.  Our build takes too long and much of the time the builds machines are busy.  Please send an email to the releng team requesting a test build and explaining the changes you have made.  If you would like an expediated test build, please provide chocolate.</p><br>
+
 
+
<h4>How do I set up performance tests?</h4>
+
<p>Refer to the
+
 
+
[http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.test.performance/doc/Performance%20Tests%20HowTo.html    performance tests how-to.]
+
</p>
+
<br>
+
 
+
<h4>How do I run the performance tests from the zips provided on the download page?</h4>
+
 
+
  <p>Check out this https://bugs.eclipse.org/bugs/show_bug.cgi?id=91229#c3
+
  bug</p><br>
+
 
+
  <h4>What do I need to do to use org.eclipse.releng.basebuilder from HEAD now that the Xerces plugin has been removed?</h4>
+
 
+
<p>If you use the org.eclipse.releng.basebuilder from HEAD in your builds and you use
+
  TestVersionTracker to create a test.properties file (search for &quot;TestVersionTracker&quot; in
+
  your customTargets.xml build scripts), please read on.</p>
+
 
+
        <p>Some older versions of the TestVersionTracker class required xerces
+
        on the classpath. We have removed the xerces jars from
+
        the HEAD stream only of org.eclipse.releng.basebuilder.</p>
+
      <p>For any team broken by this, a &lt;generateTestProperties&gt; custom
+
        Ant task has been created which does the same. It is available in the
+
        org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools plug-in
+
        from HEAD. To use all you will need to do is the following replacement:</p>
+
      <p>Replace text such as this (taken from GEF):</p><br>
+
 
+
<p><pre>&lt;property name=&quot;build.compiler&quot; value=&quot;org.eclipse.jdt.core.JDTCompilerAdapter&quot;/&gt;<br>&lt;javac verbose=&quot;true&quot; failonerror=&quot;true&quot; srcdir=&quot;${builderDirectory}/tools&quot; destdir=&quot;${builderDirectory}/tools&quot;
+
  classpath=&quot;${eclipse.home}/plugins/org.apache.xerces_4.0.13/xercesImpl.jar:${eclipse.home}/plugins/org.apache.xerces_4.0.13/xmlParserAPIs.jar&quot;/&gt;<br>&lt;java classname=&quot;TestVersionTracker&quot; &gt;
+
 
+
&lt;arg line=&quot;${workingDirectory}/eclipse/features/org.eclipse.gef.test_3.1.0/feature.xml
+
${buildDirectory} ${workingDirectory}/gef-testing/test.properties&quot; /&gt;
+
&lt;classpath&gt;
+
&lt;pathelement path=&quot;${eclipse.home}/plugins/org.apache.xerces_4.0.13/xercesImpl.jar:${eclipse.home}/plugins/org.apache.xerces_4.0.13/xmlParserAPIs.jar:${builderDirectory}/tools&quot; /&gt;
+
&lt;/classpath&gt;<br>&lt;/java&gt;</pre>
+
 
+
with this:
+
 
+
<pre>&lt;generateTestProperties
+
buildDirectory=&quot;${buildDirectory}&quot;
+
 
+
featureId=&quot;org.eclipse.sdk.tests&quot;
+
outputFile=&quot;${workingDirectory}/eclipse-testing/test.properties&quot;
+
/&gt;</pre></p><br>
+
 
+
<h4>How do I update from 3.1 to 3.1.1 or 3.1.2 using update manager?</h4>
+
 
+
<p>Refer to this document http://www.eclipse.org/eclipse/platform-releng/updatesfor3.1.1.html</p><br>
+
 
+
<h4>Why should I package plugins and features as jars?</h4>
+
<p>See the Core team's document <i>Running Eclipse from JARs</i> http://www.eclipse.org/eclipse/platform-core/documents/3.1/run_from_jars.html</p>
+
 
+
<h4>Why should I use qualifiers?</h4>
+
 
+
<p>  See the Core team's document <i>Recommendation to version plug-ins</i> http://www.eclipse.org/equinox/documents/plugin-versioning.html </p>
+
 
+
<h4>How do I incorporate qualifiers into the build process?</h4>
+
 
+
<p>Update your plugins and features to use qualifiers as described in the previous FAQ entry.</p>
+
 
+
<p>Additional steps that the platform releng team uses to incorporate qualifiers into the build process</p>
+
 
+
<p>In our bootstrap script that kicks off the build, versionQualifier set to an empty string by default</p>
+
 
+
<tt>#versionQualifier - qualifier to use in plug-ins and features where specified<br>
+
versionQualifier=""</tt><br>
+
 
+
For nightly builds<br>
+
<tt>if [ "$buildType" = "N" ]</tt><br>
+
<tt>then</tt><br>
+
        <tt>versionQualifier="-DforceContextQualifier=$buildId"</tt><br>
+
<tt>fi</tt><br>
+
 
+
<p>For nightly builds, we set the  qualifier to the buildId.
+
For  integration builds, pde build sets it to the tag in the map file for plugins, and generates feature qualifiers.</p>
+
 
+
The versionQualifier property is passed to the antRunner in our bootstrap script
+
 
+
<tt>
+
$antRunner -buildfile all.xml $mail $testBuild $compareMaps -DbuildingOSGi=true -DmapVersionTag=$mapVersionTag -DbuildDirectory=$buildDirectory -DpostingDirectory=$postingDirectory -Dbootclasspath=$bootclasspath -DbuildType=$buildType -D$buildType=true -DbuildId=$buildId -Dbuildid=$buildId -DbuildLabel=$buildLabel -Dtimestamp=$timestamp -DmapCvsRoot=:ext:someuser@dev.eclipse.org:/cvsroot/eclipse -Dzipargs=-y $skipPerf $skipTest $tag $tagMaps -DjavacDebugInfo=true -DjavacSource=1.3 -DjavacTarget=1.2 -DcompilerArg="-enableJavadoc -encoding ISO-8859-1" <b>$versionQualifier</b>  -DJ2SE-1.5=$bootclasspath_15 -listener org.eclipse.releng.build.listeners.EclipseBuildListener</tt>
+
 
+
<h4>Eclipsecon 2006 presentation</h4>
+
<p>http://www.eclipsecon.org/2006/Sub.do?id=254</p>
+
 
+
<h4>Best releng practices from our Eclipsecon 2005 poster</h4>
+
 
+
  <p>1. Automate the build process from end-to-end and automate early.<br>
+
    2. Use PDE Build in Eclipse to generate build scripts.<br>
+
    3. Automate JUnit testing and performance monitoring.<br>
+
    4. Automate build notifications (email)<br>
+
    5. Use gentle humiliation to encourage developers to contribute carefully.
+
    (Clown nose technique).<br>
+
    6. Ensure stability in the build process by thorough testing of builder changes.<br>
+
    7. Schedule builds at regular intervals and enforce rebuild policies.<br>
+
    8. Use map files in a central cvs repository.<br>
+
    9. Build on Linux.<br>
+
    10. Have fun!
+
  <br></p><br>
+
 
+
 
+
<h4>Useful reference documents</h4>
+
 
+
<p>Build and Test Automation for plug-ins and features http://eclipse.org/articles/Article-PDE-Automation/automation.html </p>  
+
<p>        Eclipse's culture of shipping http://www.artima.com/lejava/articles/eclipse_culture.html </p>
+
<p>        The Eclipse Way: Proccesses that Adapt http://eclipsecon.org/2005/presentations/econ2005-eclipse-way.pdf
+
 
+
 
+
 
+
</p>
+
 
+
<h4>Who are the platform-releng committers?</h4>
+
 
+
<p>The platform releng team consists of Sonia Dimitrov and Kim Moir. </p>
+
 
+
<h4>As the holiday season approaches, what gifts are appropriate for your favourite release engineer?</h4>
+
 
+
<p>We enjoy fine chocolate and [http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/curries.png Shaan] </p>
+

Revision as of 10:40, 12 April 2006

The following is the list of who's who in the CDT. For each person we list their status (Committer versus Contributor) and the areas they have interest in.

Doug Schaefer - QNX CDT Project Lead, Committer, CDT Core parser and related features. Read my blog.
Leo Treggiari - Intel Committer, CDT Managed Build System primarily, but also Standard Make and Core
Chris Recoskie - Texas Instruments Committer, CDT Managed Build System primarily, Debug second, and a little bit of everything for good measure
Mikhail Khodjaiants - QNX Committer, CDT Debugger
Mikhail Sennikovsky - Intel Committer, CDT Managed Build System primarily, also interested in Standard Make, Core and Debug
Norbert Ploett - Siemens Committer, CDT content assist, Managed Build System, Debug
David Daoust - Wind River Committer, Useability, Scalablity, CDT Core parser and related features

Back to the top