PTP/release engineering

From Eclipsepedia

Jump to: navigation, search

Contents

Overview

PTP uses 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.

There are three Hudson jobs associated with each build[1]. The jobs are:

ptp-photran-nightly and ptp-photran-release 
This job builds the Photran project and generates a zip file containing a p2 repository.
ptp-nightly and ptp-release 
This job builds the PTP project and generates a zip file containing a p2 repository. The RDT server files and the proxy zip file is also generated.
ptp-master-nightly and ptp-master-release 
This job aggregates the Photran and PTP projects together to produce the final repository.

These jobs are linked together so that they run in this order (from top to bottom). E.g. if the ptp-photran-nightly job runs, it will start ptp-nightly when completed, which will in turn start ptp-master-nightly.

All the jobs use Maven to run the build. Maven requires a pom.xml file in each package (plugin or feature) as well as a pom.xml at the top of each project tree. The version numbers of the pom.xml files must be kept in sync with their corresponding feature and plugin version numbers.


  1. This is required because the Hudson Git plugin does not support building from multiple repositories.

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. Obtain a copy of the update_versions script from the org.eclipse.ptp.master.git repository.
  2. Run the command "sh 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 update_versions 3.0.1 5.0.1
    • The command will clone new copies of the photon, ptp, and ptp.master repos and update the versions appropriately
  3. When the command completes, change to fix_ptp_versions and check that the repos have be updated correctly.
  4. Commit and push the changes in each repo in turn using the commands:
    (cd org.eclipse.photran && git commit -m "Update PTP & Photran versions" && git push)
    (cd org.eclipse.ptp && git commit -m "Update PTP & Photran versions" && git push)
    (cd org.eclipse.ptp.master && git commit -m "Update PTP & Photran versions" && git push)
    
  5. Remove the fix_ptp_versions directory

The script should update the version number in the feature.xml for every feature and the pom.xml for every package. There are also a number of plugins that will have their plugin manifest files updated. The main pom.xml files in each repo will also be updated.

Build results

The nightly and release builds currently put their results in different locations. The results from each intermediate build step for all the hudson jobs are always available from the hudson build artifacts.

Release builds

On completion, a successful build will be located in /home/www/download.eclipse.org/tools/ptp/builds/M.N.S/YYYMMDDHHMM, where M.N.S is the version number of the release, and YYYYMMDDHHMM is the date and time stamp for the build. The build also updates the /home/www/download.eclipse.org/tools/ptp/builds/M.N.S/index.html file to include the new build.

Nightly builds

On completion, a successful build will be located in /home/www/download.eclipse.org/tools/ptp/builds/juno/nightly.

Modifying the build

Changing the dependency versions

The versions of components that are required for the build jobs is determined by the top level pom.xml in repo for that build. These versions would normally need to be changed when a new version of Eclipse, CDT, Orbit, etc. is required for a particular build (e.g. to build for a Service Release). The versions are specified by the entries in the <properties></properties> section of the pom.xml.

Changing the RDT build versions

Whenever the versions of components are updated, the RDT build script also needs to be updated to ensure that the correct versions are also picked up. These are specified in the org.eclipse.ptp.rdt.core.remotejars/build.xml file. Depending on what has changed in the pom.xml, the versions specified in this file may need to be updated. Note that some of these are the versions of plugins that are included in the component, not just the component itself. This will require the component to be unzipped to determine the new versions.

Adding a new plugin or feature

For both plugins and features:

  • Add entries in the <modules></modules> section of the pom.xml file in the root of the corresponding Git repository.
    • To access this file, check out the whole repository as a general project (e.g. from Git Repositories Perspective)

If a new feature is being added:

  • In the org.eclipse.ptp.git Git repository, add the new feature to the category.xml file in the repo plugin (org.eclipse.[ptp|photran].repo)
  • In the org.eclipse.ptp.master.git Git repository, add the new feature to the category.xml file in the repository root.
    • or should this be org.eclipse.ptp.master ? cloned from ssh://<userid>@git.eclipse.org/gitroot/ptp/org.eclipse.ptp.master
  • See next section Simultaneous Release for how to add the feature to the simrel repository too.

Simultaneous Release

For the Eclipse Simultaneous Release (e.g. Juno, Kepler, Luna) contribution of PTP, the features of PTP need to be added to the simrel repository. To do so, see Contributing to the Simrel Aggregation Build. In a 4.2.2 workbench, Check out the

  • org.eclipse.simrel.build project

and install the b3 Aggregator editor (see instructions at Contributing to the Simrel Aggregation Build. ) Note: ONLY add features to the repo using this editor. Do not add a feature simply by editing the ptp.b3aggrcon file. Be sure to Validate (see the instructions). For milestone builds, the location of the PTP build to be used in the repository aggregation can be edited in the ptp.b3aggrcon using a simple text editor, and committed. Any change to a file in this project kicks off another aggregation build (e.g. simrel.kepler.runaggregator on http://hudson.eclipse.org) or it can be started from the hudson page.

EPP Eclipse Packaging Project

Updates required for building the Parallel Package...