Difference between revisions of "RAP/Build Process"

From Eclipsepedia

< RAP
Jump to: navigation, search
m (Procedure for Milestone builds)
m (Procedure for release builds)
 
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
Since version 1.5, RAP is built on the public build server at Eclipse.
+
Since version 1.5, RAP is built on the public Hudson build servers at Eclipse.org.
  
 
=== Hudson Builds ===
 
=== Hudson Builds ===
  
Build jobs at the Eclipse.org Hudson:
+
From RAP version 2.1 on all RAP build jobs are running on a dedicated [https://hudson.eclipse.org/rap/ RAP Hudson instance]; older build jobs are still available at the central [https://hudson.eclipse.org/hudson/ Eclipse.org Hudson cluster]:
  
 
{| border="1"
 
{| border="1"
 
|-
 
|-
! RAP 1.5 !! RAP 2.0 !! RAP 2.x (head)
+
! RAP 1.5 !! RAP 2.0 !! RAP 2.1 !! RAP 2.x (head)
 
|-
 
|-
 
| [https://hudson.eclipse.org/hudson/job/rap-1.5-runtime/ rap-1.5-runtime]
 
| [https://hudson.eclipse.org/hudson/job/rap-1.5-runtime/ rap-1.5-runtime]
 
| [https://hudson.eclipse.org/hudson/job/rap-2.0-runtime/ rap-2.0-runtime]
 
| [https://hudson.eclipse.org/hudson/job/rap-2.0-runtime/ rap-2.0-runtime]
| [https://hudson.eclipse.org/hudson/job/rap-head-runtime/ rap-head-runtime]
+
| [https://hudson.eclipse.org/rap/job/rap-2.1-runtime/ rap-2.1-runtime]
 +
| [https://hudson.eclipse.org/rap/job/rap-head-runtime/ rap-head-runtime]
 
|-
 
|-
 
| [https://hudson.eclipse.org/hudson/job/rap-1.5-tools/ rap-1.5-tools]
 
| [https://hudson.eclipse.org/hudson/job/rap-1.5-tools/ rap-1.5-tools]
 
| [https://hudson.eclipse.org/hudson/job/rap-2.0-tools/ rap-2.0-tools]
 
| [https://hudson.eclipse.org/hudson/job/rap-2.0-tools/ rap-2.0-tools]
| [https://hudson.eclipse.org/hudson/job/rap-head-tools/ rap-head-tools]
+
| [https://hudson.eclipse.org/rap/job/rap-2.1-tools/ rap-2.1-tools]
 +
| [https://hudson.eclipse.org/rap/job/rap-head-tools/ rap-head-tools]
 
|-
 
|-
 
| [https://hudson.eclipse.org/hudson/job/rap-1.5-incubator/ rap-1.5-incubator]
 
| [https://hudson.eclipse.org/hudson/job/rap-1.5-incubator/ rap-1.5-incubator]
 
|  
 
|  
| [https://hudson.eclipse.org/hudson/ rap-head-incubator-COMPONENT_NAME]
+
|
 +
| [https://hudson.eclipse.org/rap/view/RAP%20incubator%20builds/ rap-head-incubator-COMPONENT_NAME]
 
|}
 
|}
  
Line 77: Line 80:
 
* Check copyright year and version number of JavaDoc (search for "JavaDoc" in <code>org.eclipse.rap.releng/tooling/customTargets.xml</code>)
 
* Check copyright year and version number of JavaDoc (search for "JavaDoc" in <code>org.eclipse.rap.releng/tooling/customTargets.xml</code>)
 
* Move old builds to archive (<code>dev.eclipse.org:/home/data/httpd/archive.eclipse.org/rt/rap/downloads</code>), update archive page
 
* Move old builds to archive (<code>dev.eclipse.org:/home/data/httpd/archive.eclipse.org/rt/rap/downloads</code>), update archive page
* Update the RAP-tooling entry in the [http://marketplace.eclipse.org/content/rich-ajax-platform-rap-tooling Eclipse Marketplace] and in the Yoxos Marketplace. They should point to the latest release.
+
* Update the RAP-tooling entry in the [http://marketplace.eclipse.org/content/remote-application-platform-tools Eclipse Marketplace] and in the Yoxos Marketplace. They should point to the latest release.
 
* Redirect rap/latest-release/{runtime/tooling} repositories
 
* Redirect rap/latest-release/{runtime/tooling} repositories
 
* notify newsgroup and mailing list
 
* notify newsgroup and mailing list
Line 118: Line 121:
 
* clientscripting
 
* clientscripting
 
* cnf
 
* cnf
 +
* dropdown
 
* fileupload
 
* fileupload
 
* gef
 
* gef
Line 123: Line 127:
 
* osgi-packaging
 
* osgi-packaging
 
* pde
 
* pde
 +
* richtext
 
* tabbed-properties
 
* tabbed-properties
 
* visualization
 
* visualization
  
 
and make them available from [http://build.eclipse.org/rt/rap/incubator/nightly/ build.eclipse.org/rt/rap/incubator/nightly] and from [http://download.eclipse.org/rt/rap/incubator/nightly/ download.eclipse.org/rt/rap/incubator/nightly].
 
and make them available from [http://build.eclipse.org/rt/rap/incubator/nightly/ build.eclipse.org/rt/rap/incubator/nightly] and from [http://download.eclipse.org/rt/rap/incubator/nightly/ download.eclipse.org/rt/rap/incubator/nightly].

Latest revision as of 08:51, 27 February 2014

Since version 1.5, RAP is built on the public Hudson build servers at Eclipse.org.

Contents

[edit] Hudson Builds

From RAP version 2.1 on all RAP build jobs are running on a dedicated RAP Hudson instance; older build jobs are still available at the central Eclipse.org Hudson cluster:

RAP 1.5 RAP 2.0 RAP 2.1 RAP 2.x (head)
rap-1.5-runtime rap-2.0-runtime rap-2.1-runtime rap-head-runtime
rap-1.5-tools rap-2.0-tools rap-2.1-tools rap-head-tools
rap-1.5-incubator rap-head-incubator-COMPONENT_NAME

The base directory for our builds is /shared/rt/rap on build.eclipse.org.

[edit] Nightly Builds

We produce p2 repositories from our nightly builds:

These p2 repositories are updated by a cron job:

/shared/rt/rap/scripts/publish-nightly-build.sh

This job is run by rsternber's crontab.

[edit] Procedure for Milestone builds

  • Prepare new base platform in /shared/rt/rap/base-platforms (see HOWTO file)
  • Configure pom.xml files to include the new base platform
    • features/org.eclipse.rap.equinox.target.feature/.project (RAP Runtime) - bug in qualifier generation
    • features/org.eclipse.rap.equinox.target.feature/pom.xml (RAP Runtime)
    • releng/org.eclipse.rap.build/pom.xml (RAP Runtime)
    • releng/org.eclipse.rap.target.build/pom.xml (RAP Runtime)
    • releng/org.eclipse.rap.target.build/repository.kepler/pom.xml (RAP Runtime)
    • releng/org.eclipse.rap.tools.build/pom.xml (RAP Tools)
  • Build RAP Runtime and RAP Tools with BUILD_TYPE = S for stable builds (these will be signed)
  • Move repositories to download area (see /shared/rt/rap/publish/)
  • Contribute repositories to simrel aggregator
  • Add tag to git repositories
    • TAG=2.1.0-RCx
    • git tag -a -m "$TAG" -s $TAG (note: -s creates a signed tag)
    • git push --tags origin

[edit] Publishing

  • Finalize New & Noteworthy
  • Update web site: builds.xml and arrivals sidebar
  • Scan Bugzilla for open bugs that are targeted at the milestone or bugs that are still open but solved, verify target version of closed bugs
  • Update composite repositories for runtime and tools
  • Update rap/targets/ files
  • [1.5 only] Update rap/latest-stable/{runtime/tooling} repositories to redirect to new repo (for compatibility with 1.4 tooling)
  • Notify the newsgroup
  • Announce via Blog
  • Re-deploy demo applications (in oder to demonstrate the new features from the milestone)

[edit] Procedure for release builds

additional steps to do when creating release builds

  • ensure version numbers in bundle manifests
  • ensure legal files (see [1])
    • check that about.html are included in source build
  • update infocenter content and links to infocenter from project home page
  • update help plugin
  • Check copyright year and version number of JavaDoc (search for "JavaDoc" in org.eclipse.rap.releng/tooling/customTargets.xml)
  • Move old builds to archive (dev.eclipse.org:/home/data/httpd/archive.eclipse.org/rt/rap/downloads), update archive page
  • Update the RAP-tooling entry in the Eclipse Marketplace and in the Yoxos Marketplace. They should point to the latest release.
  • Redirect rap/latest-release/{runtime/tooling} repositories
  • notify newsgroup and mailing list
  • use the portal to review project metadata that is displayed in the "About this Project" page (i.e. update release train name in description text)
  • Add p2.stats to artifact.xml
  • Add p2 mirror URLs to artifact.xml
  • Check notice.html and epl-v10.html files for updates
  • Make sure notice.html and epl-v10.html files are included in the download zip files (see bug 347659)

[edit] Eclipse Marketplace

Make sure the RAP Tools are uploaded to the Eclipse market place.

[edit] Simultaneous Release

[edit] RAP Incubator Builds

In order to help early adopters consuming the work from the RAP Incubator project, we are running a set of automated builds from Git HEAD for all RAP Incubator Projects. Every component has its own build that must follow some common naming conventions.

  • Every RAP Incubator Component has a COMPONENT_NAME, that is used to find the necessary build scripts, features, etc.
  • Every component has its own Git repository org.eclipse.rap.incubator.COMPONENT_NAME.git at git.eclipse.org/c/rap/incubator/.
  • The build is based on Tycho and uses the RAP Incubator parent releng/org.eclipse.rap.incubator.releng/pom.xml.
  • The main build project releng/org.eclipse.rap.COMPONENT_NAME.build of the component contains the pom.xml that is used to build the entire component. In addition to that, it has
    • a repository/ sub-directory with an additional pom that creates the final p2 repository of the component.
  • There is a main feature features/org.eclipse.rap.COMPONENT_NAME.feature that assembles everything that is used by a potential consumer.

Every build creates an independent p2 repository. All repositories are available on the build server at

/shared/rt/rap/incubator/nightly/COMPONENT_NAME

At the moment, we are running builds for the following components

  • clientscripting
  • cnf
  • dropdown
  • fileupload
  • gef
  • nebula-grid
  • osgi-packaging
  • pde
  • richtext
  • tabbed-properties
  • visualization

and make them available from build.eclipse.org/rt/rap/incubator/nightly and from download.eclipse.org/rt/rap/incubator/nightly.