Jump to: navigation, search

TPTP Build

TPTP main page > TPTP Wiki home > TPTP Miscellaneous

Releng component

The TPTP Release Engineering (Releng) component refers to the plug-in org.eclipse.hyades.releng.builder in the TPTP Platform project. It contains all the the build scripts that are used during a TPTP build. The script used to start a TPTP build is in org.eclipse.hyades.releng.builder/master/bash/make.sh. The Java code compiling is handled by the eclipse-build.sh script located in org.eclipse.hyades.releng.builder/master/bash.

Description of the contents of org.eclipse.hyades.releng.builder/master directory: bash: Contains scripts and utilities used for working with the TPTP builds. java: Contains Java utilities used during the TPTP builds (most utilities are compiled with Java 1.4). ltaconfig: Not currently in use. Contains configuration for the LTA component. maps: Contains the hyades.map file which is used for locating the source during a build. rcpconfig: Not currently in use. Contains configuration for the TPTP RCP builds. runtime: Contains the PDE build file (customTargets.xml) and properties file (build.properties) used during the PDE build, including dependency definitions. templateFiles: Contains the web page template for the driver.

The org.eclipse.hyades.releng.builder/releases directory contains information specific to each release, such as which features and plug-ins versions have changed.

org.eclipse.hyades.releng.builder/updatesite contains the scripts used for creating the TPTP site.xml for the update site.

BVT/Tools component

Build Verification Test (BVT) scripts are located in platform/org.eclipse.tptp.platform.releng.tools/org/eclipse/tptp/platform/releng/tools/testautomation. For details on using the BVT, refer to the readme.html.

The tools which are jars in platform/org.eclipse.hyades.releng.builder/master/java that are used during the build are from platform/org.eclipse.tptp.platform.releng.tools.

Dependencies

Dependencies are the pre-requisite projects that TPTP build depends on. All these project need to be included inside the eclipse sdk /plugins or /dropins. Currently TPTP includes dependencies from EMF, XSD, WTP, BIRT, DTP, GEF, Equinox OSGI and Eclipse Orbit.

Hardware setup

TPTP builds on windows and linux 32bits(ia32), 64bits(em64t) and ipf. For the hardware set up please refers to the table below.

Platform
OS
Compiler
Usage
JVM
Xerces-C
Windows-ia32
Windows XP Pro 64 bits Version 2003 SP2
Microsoft Visual Studio 2005
Windows IA32 native build machine
java 1.5.0
xerces-c_2_6_0-windows_nt-msvc_60
Windows-em64t
Windows XP Pro 64 bits Version 2003 SP2
Windows Server 2003 SP1 SDK
Windows EM64T native build machine
java 1.5.0
xerces-c-src_2_6_0
Linux-ia32
RHEL 4 (Nahant Update 6) 64 bits
gcc version 3.4.6
Linux IA32 native build machine
java 1.5.0
xerces-c-src_2_6_0
Linux-em64t
RHEL 4 (Nahant Update 6) 64 bits
gcc version 3.4.6
Linux EM64T native build machine
java 1.5.0
xerces-c-src_2_6_0

xerces-C_2_6_0 can be downloaded here

cbe sdk can be downloaded here.Choose the driver that is built on top of and go to the native logging under As-Is Components. Select the platform and donwload the SDK.

Map file for source

hyades.map is located inside plugin org.eclipse.hyades.releng.builder/master/maps/ in platform project. It tells which plugins and features at which verison should be checked out before the build.

Versioning guideline

TPTP version numbering is based on the Eclipse guidelines described in Version Numbering.

The following example describes how TPTP has updated the version numbers in maintenance releases. The example uses the current release as version 4.7.2, and a previous previous most recent major maintenance release as TPTP 4.6.2. For a feature or plug-in that was version 1.0.101 in TPTP 4.7.1. If the content changes in the current release (TPTP 4.7.2) and the version was 1.0.101 in TPTP 4.6.2, then the version will be 1.0.200. For a feature or plug-in that was version 1.0.101 in TPTP 4.7.1. If the content changes in the current release (TPTP 4.7.2) and the version was 1.0.100 in TPTP 4.7.0, then the version will be 1.0.102.

Promotion

Promotion means that we will copy the Development Build one level above in the file system so it can be promoted to either milestone or release build where the Development Build still remains intact.

Release

  • Rename the promoted TPTP build with RCx or Mx so it indicates that this build is dropped to RCx or Mx
  • Using the TPTP SDK all driver, make sure all features and plug-ins are jarred (this can be done using updatesite.europa.sh that is in platform/org.eclipse.hyades.releng.builder/updatesite/)
  • Sign the features and plugins, and then run Pack200 to reduce the size of signed jars.
  • Create the simultaneous update site by generating P2 Metadata against the signed and packed features and plugins using this as the source argument.

On the final release(on the GA day), TPTP project updatesite will need to be created in addition to simultaneous release update site; TPTP update site can be created any time between RC4 to GA. Similar method is applied when creating TPTP project updatesite. Also, Composite Repositories technique is implemented so that the repository for TPTP project updatesite will not keep growing in size. Updating compositeContent.xml and compositeArtifacts.xml are required on the GA day to make the TPTP update site visible. Prior to GA day, the features and plug-ins for the update site can be copied to Eclipse.

After RC4 and prior to GA, the Release driver and webpage can be created. The link to the Release webpage should not be linked in the tabs-config.txt until the GA.

Branching

Branching allows you to create parallel development streams. It is assumed that a tagged build has been performed and that it will be the root of the new branch. Replace all occurrences of HEAD with the branch name in the Project Set file. A branch is just a tag (branch tag) with special meaning for the CVS program.

Hyades.map is located at platform/org.eclipse.hyades.releng.builder/master/maps/ The command of tagging is shown below:
grep "^feature\|^plugin" hyades.map | grep "tptp:"| while read i; do tag=`echo $i| cut -d= -f2| cut -d, -f1`; mod=`echo $i| grep -o "[^,]*$"`; cvs -d <CVS> rtag -b -r $tag <Branch> $mod; done >log 2>&1

For each line in the map file, the modules (plug-in, feature or fragment) get the version tag (the part after the equal sign and before the first comma) then get the matching pattern (grep -o) matching any non-comma based string (the last string after the last comma). Tag this revision of the file with the new branch tag. This command will take some time, use ctrl-z followed by bg to put it in the background and then you can tail the log. This can take around an hour to complete. Check for errors in the log.

Remember to tag org.eclipse.hyades.releng.builder plugin and .project file inside each project features seperatly.

  • Update the PSF files (check-out the www/tptp/home/documents/resources/projectSets) by replacing all instances of HEAD with the name of the created branch.
  • Create a new release directory under org.eclipse.hyades.releng.builder/releases. In the plugin tags, reset all flags to false for hasChanges. Change the release tag to the new release number and rename the file to the new release name.
  • New release folder, <new release>/drops, /drops/cvsActivity and /drops/bugzilla will need to be created for the next release in www/tptp/home/downloads.
  • Create publish_<next release version>.txt and index_<next release version>.php inside the new release folder.
  • Update the release template changing the installation guides directory to that of the new release (www/tptp/home/project_info/releaseinfo/)
  • The version number reported by the Agent Controller when running ACServer -version should be updated to reflect the version of the release. Bug 286323

Build Name

TPTP has four build types: Release Builds, Stable Builds, Candidate Builds and Development Builds. For information about different kinds of builds look here. For Development Builds, the build ID has the format of TPTP-<version>-<timestamps>. During the Milestones and Release Candidates, TPTP builds will be renamed to TPTP-<version>M#-<timestamps> or TPTP-<version>RC#-<timestamps> depending on which Milestones or Release Candidates is. Please refers to this page for information on Helios/Simultaneous Release Plan. On the GA day, TPTP will be renamed to TPTP-<version>.

--Samwu.ca.ibm.com 22:44, 11 March 2011 (UTC)