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

PTP/release engineering

< PTP
Revision as of 15:44, 7 December 2011 by G.watson.computer.org (Talk | contribs) (Overview)

Overview

PTP uses [hudson.eclipse.org Hudson] for nightly and release builds. Nightly builds will start if a change in the Git repository is detected. Release builds must be manually started (currently).

In order to modify the build configuration, you need to be an authorized user. Please contact Greg, Beth, or Vivian if you need this access.

Preparation

Versions

Prior to a new release, the version numbers of various features/plugins must be updated to reflect the version of the build. In general, the version numbers of plugins not listed here should only be changed if the plugin has been modified.

There is now a script that will update the version numbers appropriately as follows:

  1. Change to the workspace directory
  2. Run the command "sh org.eclipse.ptp.releng/update_versions ptp-version photran-version" where ptp-version is the new version number for PTP, and photran-version is the new version number for Photran, e.g.
    • sh org.eclipse.ptp.releng/update_versions 3.0.1 5.0.1

The following table lists the version numbers that will be updated by the script.

Feature/Plugin/Fragment File Comments
org.eclipse.ptp-feature feature.xml Feature version number updated to ptp-version.qualifier
org.eclipse.ptp.*-feature feature.xml Feature version number updated to ptp-version.qualifier
org.eclipse.ptp.master feature.xml Feature version number updated to ptp-version.qualifier
org.eclipse.ptp MANIFEST.MF Feature version number updated to ptp-version.qualifier
org.eclipse.ptp.aix.ppc MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.linux.ppc MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.linux.x84 MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.linux.x86_64 MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.macosx.ppc MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.macosx.x86 MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.debug.sdm MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.proxy MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.ptp.utils MANIFEST.MF Plugin version number updated to ptp-version.qualifier
org.eclipse.photran-feature feature.xml Feature version number updated to photran-version.qualifier
org.eclipse.photran.*-feature feature.xml Feature version number updated to photran-version.qualifier
org.eclipse.ptp.releng build.xml ptpBranchVersion updated to ptp-version and photranBranchVersion updated to photran-version

Build Scripts

The main PTP build scripts live in the releng/org.eclipse.ptp.releng plugin. The script that is used to build the RDT servers is located in org.eclipse.ptp.rdt.core.remotejars.

If you are building locally, you will need to download copies of the following files:

Edit build.xml and change the values of the eclipseDist, cdtDist, mylynDist, rseDist, and tauJars properties to the location of each downloaded file, respectively.

Running a headless build

The ptpbuild script in the org.eclipse.ptp.releng plugin manages the process of building PTP. It is used as follows:

sh ptpbuild [-r tag] [-c cdt_tag] [-d build_dir] [build_args]

If tag is specified, it will be the CVS tag used to check out the releng project. The default value is HEAD

If cdt_tag is specified, it will be the CVS tag used to check out CDT.

If build_dir is specified, it will be the directory in which the build will take place (the basedir property in build.xml). The default location is /opt/public/download-staging.priv/tools/ptp/releng.

Any remaining arguments will be passed to the build.sh script.

The ptpbuild script checks out a copy of the org.eclipse.ptp.releng project prior to the build. In order to prevent the version in CVS from being used instead of your modified local version, you will need to comment out the section of the script that does the checkout. Once you've done this, copy the org.eclipse.ptp.releng directory you checked out earlier (and modified) to the build directory, then run ptpbuild.

Build results

On completion, a successful build will be located in /home/www/tools/ptp/builds/M.N.S/I.IYYYMMDDHHMM, where M.N.S is the version number of the release, and YYYYMMDDHHMM is the date and time stamp for the build. The location of the output is determined by the copyTo property in the org.eclipse.ptp/build.xml and org.eclipse.ptp.rdt.core.remotejars/build.xml scripts.

The output directory will contain a signed zipped copy of the master update site along with various other files.

The master update site will be in the form:

  • ptp-master-M.N.S-IYYYYMMDDHHMM.zip

If the build was not successful, then the partial build will be located in the build directory.

Modifying the build

Changing the build version

In order to change a the build version of PTP, you need to make the following modifications in the appropriate branch:

  • Modify the ptpBranchVersion attribute in org.eclipse.ptp.releng/build.xml (e.g. "3.0.1")
  • Modify the ptpTag and mapVersionTag tags in org.eclipse.ptp/releng/master/build.properties (e.g. "ptp_3_0")
  • Modify the photranTag tag in org.eclipse.ptp/releng/master/build.properties (e.g. "photran_5_0")
  • Modify the serverVersion attribute in org.eclipse.ptp.rdt.core.remotejars/build.xml (e.g. "3.0.1")

Make sure you supply the correct branch tag to the ptpbuild script (e.g. "ptp_3_0") so that the correct version is built.

If all versions don't match correctly, strange things may happen.

Changing the build type

The build.xml script supports four different types of builds:

nightly (default) 
In addition to building, tags the CVS repository with the build version, signs the plugins, runs any tests, then copies the result to the output directory. Note that signing will only work on the Eclipse build server.
build 
Just runs the build.
testbuild 
Runs the build and tests, then copies the result to the output directory.
buildcopy 
Runs the build, and copies the result to the output directory without running any tests.

The build type can be modified by changing the default attribute of the project XML element in the build.xml script.

Changing the version of CDT used to compile RDT

  • Modify the cdtDist property in build.xml to point to the new version.
  • Modify the cdtCoreVersion property in org.eclipse.ptp.rdt.core.remotejars/build.xml to the new value of the org.eclipse.cdt.core plugin. This is generally the same as the CDT distribution I number without the "I", but not always, so it is good to check. e.g. if the CDT distribution is cdt-master-5.0.2.I200902130801.zip, then the cdtCoreVersion should be 5.0.2.200902130801.

Adding a new plugin or feature

For both plugins and features:

  • Add entries in org.eclipse.ptp.releng/maps/ptp.map for the plugin or the feature and all of its plugins
  • Add entries to the tag target element in build.xml to tag the plugin or the feature and its plugins

If a new feature is being added:

  • Add the new feature to the PTP master feature org.eclipse.ptp.master
  • Add the new feature to the update site in org.eclipse.ptp.releng/buildsite.xml

Back to the top