Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "PTP/release engineering"
(→Modifying the build) |
(→Changing the dependency versions) |
||
Line 60: | Line 60: | ||
=== Changing the dependency versions === | === Changing the dependency versions === | ||
− | The versions of | + | The versions of packages that are required for the build jobs is determined by the top level <code>pom.xml</code> in repo for that build. Modify the versions specified by the entries in the <code><properties></properties></code> section of the <code>pom.xml</code>. |
=== Changing the version of CDT used to compile RDT === | === Changing the version of CDT used to compile RDT === |
Revision as of 12:29, 30 January 2012
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|release}
- This job builds the Photran project and generates a zip file containing a p2 repository.
- ptp-{nightly|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|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.
- ↑ 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:
- Obtain a copy of the
update_versions
script from theorg.eclipse.ptp.master.git
repository. - Run the command "
sh update_versions ptp-version photran-version
" whereptp-version
is the new version number for PTP, andphotran-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
- When the command completes, change to
fix_ptp_versions
and check that the repos have be updated correctly. - 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)
- 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 packages that are required for the build jobs is determined by the top level pom.xml
in repo for that build. Modify the versions specified by the entries in the <properties></properties>
section of the pom.xml
.
Changing the version of CDT used to compile RDT
- Modify the
cdtDist
property inbuild.xml
to point to the new version. - Modify the
cdtCoreVersion
property inorg.eclipse.ptp.rdt.core.remotejars/build.xml
to the new value of theorg.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 iscdt-master-5.0.2.I200902130801.zip
, then thecdtCoreVersion
should be5.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 inbuild.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