Jump to: navigation, search

Buckminster Galileo Builder

Revision as of 11:13, 15 April 2009 by Thomas.tada.se (Talk | contribs)

Introduction

The Buckminster Galileo Builder was created to enable a fast but still very accurate build of the Galileo release train. It's provided as a single feature to be installed either into an IDE or into some headless environment. The builder is intended to be used on any computer, not just on the build server at Eclipse.org.

The build will perform the following steps:

  1. Generate a full build model from the all contributions.
  2. Create a composite repositories that includes all contributed repositories.
  3. Create a special category repository that includes categories declared in the model.
  4. Create a feature that includes all contributed features and bundles.
  5. Verify that the feature can be installed into all configurations declared in the model.
  6. Create a mirror that includes everything. The mirroring is selective and will only bring in the transitive closure of all contributions. No categories are copied from the contributions. This last step is optional.

Steps 1-5 usually completes within 3-6 minutes on my machine (located in Sweden). The time is very much dependent on bandwidth and the current mode of download.eclipse.org. These steps will probably reveal about 95% of the problems. During the mirroring in step 6, it's verified that all artifacts exists and that packed files can be unpacked.

The builder should make a fairly good job of determining where to send emails when things go wrong. So far, this functionality has been tested using mock emails only. I think we should continue in that vein until everything is found to be working properly and the builder can be used in production. I.e. do not pass the -production flag to the builder unless you really know what you're doing.

How to get started

  1. Start an Eclipse 3.5 installation, I20090407-1430 or newer. If you don't have one available, download from here http://download.eclipse.org/eclipse/downloads/
  2. Use the P2 update manager and add the update site http://download.eclipse.org/tools/buckminster/tools-3.5/
  3. Install the Galileo Builder feature found under the Buckminster Tools category
  4. Check out the project org.eclipse.galileo.build from the CVS repository at :pserver:anonymous@dev.eclipse.org:/cvsroot/callisto. This is the project that contains all the contributions.

Running the build

From the command line

Just type:
eclipse -nosplash -application org.eclipse.buckminster.galileo.build.app <options>

From within the IDE

Create a Launch Configuration of type Eclipse Application, check Run an application, select org.eclipse.buckminster.galileo.build.app, go to the Arguments tab and enter the options, then click Run (or Debug).

Command line options

Option Value Description
-verifyOnly N/A Only verify all meta-data. Do not create a mirror
-update N/A Reuse the results of the previous run, i.e. update metadata and, if applicable, the mirror
-production N/A Enable sending of emails to proper addresses. Only mock emails can be sent unless this option is in effect (see -mockEmailTo and -mockEmailCC).
-logLevel ERROR, WARNING, INFO, or DEBUG Control the verbosity of the trace output. Default level is INFO
-buildModel <path to file> An absolute path to the galileo.build file (the one found adjacent to all contributions in the org.eclipse.galileo.build project)
-buildRoot <path to folder> A path denoting the folder where all generated artifacts will end up. This setting overrides the attribute with the same name in the build model.
-buildId <build id> The ID of the current build.
-targetPlatformRepository <URL> A pointer to the repository that contains the target platform. Typically the last milestone or an I-Build. The URL should point to a repository folder. A typical examle: http://download.eclipse.org/eclipse/updates/3.5milestones/S-3.5M6-200903130100/
-mockEmailTo <email address> An email address that will be used instead of the addresses listed with the contributions. Useful when testing the email sending function.
-mockEmailCC <email address> An email address that will be used instead of the declared build-masters address. Useful when testing the email sending function.