Jump to: navigation, search

Difference between revisions of "DSDP/DD/Releng"

< DSDP‎ | DD
m
m (Releasing)
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:
  
 
=== org.eclipse.dd.releng ===
 
=== org.eclipse.dd.releng ===
The build scripts are all contained within the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.dd.releng/?root=DSDP_Project org.eclipse.dd.releng] project.  To run the build scripts, check out this project into your home directory.
+
The build scripts are all contained within the [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.dd.releng/?root=DSDP_Project /cvsroot/dsdp/org.eclipse.dd.releng] project.  To run the build scripts, check out this project into your home directory.
  
=== nightly.sh, stable.sh ==
+
=== nightly.sh, stable.sh ===
 
These two shell scripts call ant with the appropriate parameters in order to build the release image.  The only different between these two scripts is the -DbuildType.  Other parameters are described in the build-dd.xml file.   
 
These two shell scripts call ant with the appropriate parameters in order to build the release image.  The only different between these two scripts is the -DbuildType.  Other parameters are described in the build-dd.xml file.   
  
 
=== message.in ===
 
=== message.in ===
Template for the mail that will be sent upon completion of the build.
+
Template for the mail that will be sent upon completion of the build
 +
 
 +
Note: At the moment mail notifications are broken in the build scripts.
 +
 +
=== installFeatures ===
 +
''installFeatures'' is a build step inside the dd-build.xml ant build script.  This step calls the eclipse installation used to perform the build to update the installation with the given features.  The features listed are dependent upon by the DD components being build.  In summary the features are as follows:
 +
 
 +
* ''MEMORY'' component
 +
** none, Eclipse SDK is the only dependency
 +
* ''DSF'', ''MI'', ''GDB'' component dependencies:
 +
** org.eclipse.cdt
 +
* ''IP-XACT'' component dependencies:
 +
** org.eclipse.draw2d
 +
** org.eclipse.gef
 +
** org.eclipse.emf.common
 +
** org.eclipse.emf.common.ui
 +
** org.eclipse.emf.ecore
 +
** org.eclipse.emf.edit
 +
** org.eclipse.emf.edit.ui
 +
** org.eclipse.emf.ecore.edit
 +
** org.eclipse.xsd
 +
** org.eclipse.xsd.edit
 +
** org.eclipse.wst
 +
** org.eclipse.wst.xml_ui.feature
 +
** org.eclipse.wst.common_ui.feature
 +
 
 +
All of these components have to have the correct version selected.  The easiest way to get the version to use in the build is to pull it from the site.xml file on the release update page.  For ganymede this page is: [http://download.eclipse.org/releases/ganymede/site.xml http://download.eclipse.org/releases/ganymede/site.xml]. 
 +
 
 +
Alternatively it is possible to get the version numbers and to install the components from the update sites of individual projects.  For example the CDT update site is [http://download.eclipse.org/tools/cdt/releases/ganymede/site.xml http://download.eclipse.org/tools/cdt/releases/ganymede/site.xml].
 +
 
 +
Note: at this moment (Eclipse SDK 3.4M6) the install feature is broken.  P2 team is working on fixing it.
 +
 
 +
=== customTargets.xml ===
 +
This ant file is used by the PDE build to perform portions of the build.  This file needs to be updated whenever features in the DD project are changed.
 +
 
 +
=== Pass/Fail ===
 +
The build process itself contains checks to determine whether there were errors in the build (this is done in the ''postBuild'' target of the customTargets.xml and file).  Based on whether there were errors detected, an appropriate message is mailed to the address specified in the ''mailTo'' property. 
 +
 
 +
However, in practice the error detection in the build is not always reliable.  Sometimes the compiler used by PDE does not generate errors but still fails to generate all the class files.  The only way to truly verify that a build succeeded is to install it and perform some testing on it.
  
 
== Releasing ==
 
== Releasing ==
 +
 +
=== drops ===
 +
Each build generates an directory containing a set of zipped archives with features that can be installed.  The ''stable.sh'' and ''nightly.sh'' deposit these drops into the /home/data/httpd/download.eclipse.org/dsdp/dd/downloads/drops directory. 
 +
 +
=== 'N' and 'V' builds ===
 +
The name of the drop starts either with an 'N' (nightly) or 'V' (stable) followed by a date-time stamp.  The 'N' builds are automatically published on the DD downloads page and they are periodically removed.  But the 'V' builds need to be renamed.  Depending on whether the stable build was successful, the V builds should be renamed to a format of S-<version>-<date-time> for milestone builds or R-<version>-<date-time> for release builds.
 +
 +
When renaming the build, the ''index.php'' file contained in the drop needs to be updated to the new directory name.  There are several places in the file where this needs to be done.
 +
 +
The script which populates the downloads page and reads the drops directory can be found at [http://dev.eclipse.org/viewcvs/index.cgi/www/dsdp/dd/downloads.php?root=Eclipse_Website&view=log /cvsroot/org.eclipse/www/dsdp/dd/downloads.php].
 +
 +
=== package.count ===
 +
There is an important "gotcha" in getting the build drop to show up on the downloads page.  The org.eclipse.dd.releng/template/package.count file needs to contain the correct ''count'' of packages that are to be found in the drop directory. 
 +
 +
=== buildNodes.php ===
 +
The build script copies the buildNodes.php from the org.eclipse.dd.releng project into the build.  The build nodes should be updated before performing the build.
 +
 +
=== Signing ===
 +
TODO
 +
 +
=== Updating Ganymede site ===
 +
After a new stable build is published, the ganymede update site automatically pulls it in.  There is a file at /cvsroot/callisto/org.eclipse.ganymede.sitecontributions/dsdp-dd.cs, which needs to be kept up in sync with site.xml.  Otherwise the ganymede build will fail.

Latest revision as of 14:03, 8 April 2008

Introduction

At the current moment (nearing completion of Ganymede release) there is no official build process for Eclipse projects. There are various rules and procedures that were put in place by various teams at various times and each project must find its own way through them. The Device Debugging project release process was implemented and is maintained by Ted Williams. This page is an attempt to document this process to allow us to support him.

Building

org.eclipse.dd.releng

The build scripts are all contained within the /cvsroot/dsdp/org.eclipse.dd.releng project. To run the build scripts, check out this project into your home directory.

nightly.sh, stable.sh

These two shell scripts call ant with the appropriate parameters in order to build the release image. The only different between these two scripts is the -DbuildType. Other parameters are described in the build-dd.xml file.

message.in

Template for the mail that will be sent upon completion of the build.

Note: At the moment mail notifications are broken in the build scripts.

installFeatures

installFeatures is a build step inside the dd-build.xml ant build script. This step calls the eclipse installation used to perform the build to update the installation with the given features. The features listed are dependent upon by the DD components being build. In summary the features are as follows:

  • MEMORY component
    • none, Eclipse SDK is the only dependency
  • DSF, MI, GDB component dependencies:
    • org.eclipse.cdt
  • IP-XACT component dependencies:
    • org.eclipse.draw2d
    • org.eclipse.gef
    • org.eclipse.emf.common
    • org.eclipse.emf.common.ui
    • org.eclipse.emf.ecore
    • org.eclipse.emf.edit
    • org.eclipse.emf.edit.ui
    • org.eclipse.emf.ecore.edit
    • org.eclipse.xsd
    • org.eclipse.xsd.edit
    • org.eclipse.wst
    • org.eclipse.wst.xml_ui.feature
    • org.eclipse.wst.common_ui.feature

All of these components have to have the correct version selected. The easiest way to get the version to use in the build is to pull it from the site.xml file on the release update page. For ganymede this page is: http://download.eclipse.org/releases/ganymede/site.xml.

Alternatively it is possible to get the version numbers and to install the components from the update sites of individual projects. For example the CDT update site is http://download.eclipse.org/tools/cdt/releases/ganymede/site.xml.

Note: at this moment (Eclipse SDK 3.4M6) the install feature is broken.  P2 team is working on fixing it.

customTargets.xml

This ant file is used by the PDE build to perform portions of the build. This file needs to be updated whenever features in the DD project are changed.

Pass/Fail

The build process itself contains checks to determine whether there were errors in the build (this is done in the postBuild target of the customTargets.xml and file). Based on whether there were errors detected, an appropriate message is mailed to the address specified in the mailTo property.

However, in practice the error detection in the build is not always reliable. Sometimes the compiler used by PDE does not generate errors but still fails to generate all the class files. The only way to truly verify that a build succeeded is to install it and perform some testing on it.

Releasing

drops

Each build generates an directory containing a set of zipped archives with features that can be installed. The stable.sh and nightly.sh deposit these drops into the /home/data/httpd/download.eclipse.org/dsdp/dd/downloads/drops directory.

'N' and 'V' builds

The name of the drop starts either with an 'N' (nightly) or 'V' (stable) followed by a date-time stamp. The 'N' builds are automatically published on the DD downloads page and they are periodically removed. But the 'V' builds need to be renamed. Depending on whether the stable build was successful, the V builds should be renamed to a format of S-<version>-<date-time> for milestone builds or R-<version>-<date-time> for release builds.

When renaming the build, the index.php file contained in the drop needs to be updated to the new directory name. There are several places in the file where this needs to be done.

The script which populates the downloads page and reads the drops directory can be found at /cvsroot/org.eclipse/www/dsdp/dd/downloads.php.

package.count

There is an important "gotcha" in getting the build drop to show up on the downloads page. The org.eclipse.dd.releng/template/package.count file needs to contain the correct count of packages that are to be found in the drop directory.

buildNodes.php

The build script copies the buildNodes.php from the org.eclipse.dd.releng project into the build. The build nodes should be updated before performing the build.

Signing

TODO

Updating Ganymede site

After a new stable build is published, the ganymede update site automatically pulls it in. There is a file at /cvsroot/callisto/org.eclipse.ganymede.sitecontributions/dsdp-dd.cs, which needs to be kept up in sync with site.xml. Otherwise the ganymede build will fail.