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 revisions of "CDO/Release Engineering"

< CDO
(Adding components to the build)
Line 22: Line 22:
  
 
If you add to either one make sure that the new component is found with the specifications in the ''build.rmap'' file!
 
If you add to either one make sure that the new component is found with the specifications in the ''build.rmap'' file!
 +
 +
    <cs:dependencies>
 +
        <cs:dependency name="org.eclipse.emf.cdo.site" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.emf.cdo.formatchecker" componentType="osgi.bundle"/>
 +
        <cs:dependency name="org.eclipse.emf.cdo.server.product" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.gastro" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.equinox.executable" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.platform" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.platform.source" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.emf" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.emf.source" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.emf.teneo.hibernate" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.emf.teneo.hibernate.source" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.zest" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.eclipse.zest.source" componentType="eclipse.feature"/>
 +
        <cs:dependency name="com.mysql.jdbc" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.hsqldb" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.postgresql.jdbc3" componentType="eclipse.feature"/>
 +
        <cs:dependency name="org.hibernate" componentType="eclipse.feature"/>
 +
    </cs:dependencies>
  
 
=== Excluding components from the build ===
 
=== Excluding components from the build ===

Revision as of 08:27, 6 May 2010

Introduction

The CDO project produces consumable builds for two separate streams. The integration stream build relates to the HEAD development and the maintenance stream build relates to the CVS branch (currently R2_0_maintenance) that always gets forked from HEAD after the yearly GA release. The builds are defined in terms of a Buckminster releng component and are executed by two Hudson CI build jobs.

This article is not meant to be a complete description of the various used concepts from Buckminster and Hudson. It's rather supposed to be an ongoing work to record the experiences with these builds and the actions taken to address particular issues.

The Releng Component

The CDO releng component is the org.eclipse.emf.cdo.releng project in your workspace if you followed CDO Source Installation. There are versions for both streams in CVS. The HEAD version looks roughly like this:

Releng-component.png

The remainder of this section lists some typical releng tasks that lead to modification of one or several of the files in the releng component. Here is an overview of how they relate to each other:

Releng-files.png

Adding components to the build

Buckminster calculates the overall set of the needed components through the buckminster.cspec file. The org.eclipse.emf.cdo.site feature defines the content of the produced p2 repository (build output). This top-level feature in turn includes all the other CDO and Net4j features and their included bundles. The remainder of the dependencies list specifies additional components that are to be materialized in the workspace or the target platform but that are not meant to become part of the build result (i.e. the site feature and the related p2 repository).

Hence there are two ways of adding components. Either add them directly to an existing source feature or bundle in the workspace (no need to update a releng file then) or add them to the buckminster.cspec file in the releng component.

If you add to either one make sure that the new component is found with the specifications in the build.rmap file!

   <cs:dependencies>
       <cs:dependency name="org.eclipse.emf.cdo.site" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.emf.cdo.formatchecker" componentType="osgi.bundle"/>
       <cs:dependency name="org.eclipse.emf.cdo.server.product" componentType="eclipse.feature"/>
       <cs:dependency name="org.gastro" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.equinox.executable" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.platform" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.platform.source" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.emf" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.emf.source" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.emf.teneo.hibernate" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.emf.teneo.hibernate.source" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.zest" componentType="eclipse.feature"/>
       <cs:dependency name="org.eclipse.zest.source" componentType="eclipse.feature"/>
       <cs:dependency name="com.mysql.jdbc" componentType="eclipse.feature"/>
       <cs:dependency name="org.hsqldb" componentType="eclipse.feature"/>
       <cs:dependency name="org.postgresql.jdbc3" componentType="eclipse.feature"/>
       <cs:dependency name="org.hibernate" componentType="eclipse.feature"/>
   </cs:dependencies>

Excluding components from the build

Sometimes external components or the p2 repositories they reside in are partially corrupt. In these cases only the corrupt parts need to be excluded from the build (of course only if these parts are not directly or indirectly needed by the build). To exclude particular components from a build add an advisor node to the build.cquery file. Example:

  <cq:advisorNode namePattern="org\.eclipse\.swt\.gtk\.linux\.s390x\.source" skipComponent="true"/>

The Hudson Jobs

Back to the top