Jump to: navigation, search

XQuery Development Tools/Build

Introduction

Currently builds are conducted using the Athena_Common_Build infrastructure and the Hudson build server.

Builds

Information about running builds and various configuration options.

  • Latest XQDT Builds - note these are not official release builds but for developers and early adopters. They may be unstable.


Build Configuration

Since currently there are no unit tests the XQuery builds are just building the code and producing the necessary ZIP and P2 Update Zip archives. The build that is on Hudson is using that Athena_Common_Build set of ant scripts. This allows for a easy configuration of an eclipse feature based build, it does NOT currently work with a product based build.

Releng Build Script

The XQDT project does not use the standard shell script on the build server to execute the build. Instead it uses the same ANT script that is suggested by the Athena Documentation to run Eclipse Headless builds from the workspace. This has a couple of advantages:

  1. The same script it used by both developers and the build machine.
  2. ANT is platform independent, this means that multiple build scripts do not need to be maintained.

The latest version of the Ant script can be found in the releng project.

Build Properties

An Athena build is controlled primarily by the build.properties file. The following is an example of the build.properties file in the org.eclipse.wst.xquery.releng project.


## BEGIN PROJECT BUILD PROPERTIES ##

# default settings for all this project's builds, for this branch; see also o.e.d.common.releng/build.properties for more overrideable defaults

# To permit automatic downloads of non-EPL compatible code, set this to property to "I accept"
thirdPartyDownloadLicenseAcceptance="I accept"

# MUST BE SET #
projectid=webtools.xquery
zipPrefix=wst-xquery
incubation=
version=0.7.0
buildType=N
mainFeatureToBuildID=org.eclipse.wst.xquery.feature
#testFeatureToBuildID=org.eclipse.wst.xml.xpath2.processor_tests.feature

# MUST BE SET #
JAVA_HOME=/opt/public/common/ibm-java2-ppc-50
JAVA50_HOME=/opt/public/common/ibm-java2-ppc-50
#dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-linux-gtk-ppc.tar.gz,http://download.eclipse.org/tools/orbit/downloads/drops/R20090825191606/orbit-R20090825191606.zip,http://download.eclipse.org/webtools/downloads/drops/R3.1/R-3.1.1-20090917225226/wtp-common-fproj-sdk-R-3.1.1-20090917225226.zip,http://www.starstandard.org/download/org.antlr.runtime_v31.zip
dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-linux-gtk-ppc.tar.gz,http://download.eclipse.org/tools/orbit/downloads/drops/R20090825191606/orbit-R20090825191606.zip,http://download.eclipse.org/webtools/downloads/drops/R3.1/R-3.1.1-20090917225226/wtp-common-fproj-sdk-R-3.1.1-20090917225226.zip
repositoryURLs=http://download.eclipse.org/releases/galileo

#Need to install DLTK via Update Site as ZIP install does not appear to work with DLTK zips.
featureIDsToInstall=org.eclipse.dltk.core


#what steps should we do? default: build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
build.steps=buildUpdate,buildZips,generateDigests,publish,cleanup

compilerArg=-enableJavadoc -encoding ISO-8859-1
flattenDependencies=true
parallelCompilation=true
generateFeatureVersionSuffix=true
individualSourceBundles=true
forceContextQualifier=v${env.BUILD_ID}

writableBuildRoot=${WORKSPACE}/build
## END PROJECT BUILD PROPERTIES ##

Build Dependencies

There are several dependencies needed for XQuery. Additional dependencies will be added as needed:

  • Eclipse 3.5 SDK
  • Eclipse Orbit
  • DLTK 1.0
  • Faceted Project Framework 1.4 or greater

Executing a Build

A build can be run both manually by a committer or it will be checked every 10 to 20 minutes to determine if a build needs to be run. Builds are only run if the following projects have changed in the cvsroot/webtools repository:

  • incubator/sourceediting/development/org.eclipse.wst.xquery.releng
  • incubator/sourceediting/plugins/org.eclipse.wst.xquery.marklogic
  • incubator/sourceediting/features/org.eclipse.wst.xquery.feature
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.core
  • incubator/sourceediting/plugins/com.google.gson
  • incubator/sourceediting/plugins/org.antlr.runtime_v31
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.debug.core
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.debug.debugger.marklogic
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.debug.debugger.zorba
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.debug.ui
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.debug.ui.marklogic
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.debug.ui.zorba
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.launching
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.launching.marklogic
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.launching.zorba
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.set.core
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.set.debug.core
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.set.debug.ui
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.set.launching
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.set.ui
  • incubator/sourceediting/plugins/org.eclipse.wst.xqdt.ui

If any of these change, a build will be executed.

Build Metrics and Trends

The builds on Hudson allow for some build metric and trends to be captured. In particular are the following:

  • Compiler Warnings
  • Build Execution Time
  • Disk Usage
  • Unit Testing Failure/Passing trends.

A failed build will also affect the weather report for a build.

Unit Tests

To be filled in when there are some.

Resources