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

Difference between revisions of "RAP/Build Process"

< RAP
m (Procedure for Milestone builds)
(Procedure for release builds)
 
(28 intermediate revisions by 2 users 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]:
* [https://hudson.eclipse.org/hudson/job/rap-1.5-runtime/ rap-1.5-runtime]
+
* [https://hudson.eclipse.org/hudson/job/rap-1.5-tools/ rap-1.5-tools]
+
* [https://hudson.eclipse.org/hudson/job/rap-1.5-incubator/ rap-1.5-incubator]
+
  
* [https://hudson.eclipse.org/hudson/job/rap-2.0-runtime/ rap-2.0-runtime]
+
'''''Need help with older versions of Eclipse? Request [https://lts.eclipse.org/request-help Long Term Support (LTS)].'''''
* [https://hudson.eclipse.org/hudson/job/rap-2.0-tools/ rap-2.0-tools]
+
 
* [https://hudson.eclipse.org/hudson/ rap-2.0-incubator-COMPONENT_NAME]
+
{| border="1"
 +
|-
 +
! RAP 1.5 !! RAP 2.0 !! RAP 2.1 !! RAP 2.2 !! RAP 2.3 !! RAP 3.x (head)
 +
|-
 +
| [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://lts.eclipse.org/request-help rap-2.1-runtime LTS]
 +
| [https://hudson.eclipse.org/rap/job/rap-2.2-runtime/ rap-2.2-runtime]
 +
| [https://lts.eclipse.org/request-help rap-2.3-runtime LTS]
 +
| [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-2.0-tools/ rap-2.0-tools]
 +
| [https://hudson.eclipse.org/rap/job/rap-2.1-tools/ rap-2.1-tools]
 +
| [https://hudson.eclipse.org/rap/job/rap-2.2-tools/ rap-2.2-tools]
 +
| [https://hudson.eclipse.org/rap/job/rap-2.3-tools/ rap-2.3-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/rap/view/RAP%20incubator%20builds/ rap-head-incubator-COMPONENT_NAME]
 +
|}
  
 
The base directory for our builds is <code>/shared/rt/rap</code> on <code>build.eclipse.org</code>.
 
The base directory for our builds is <code>/shared/rt/rap</code> on <code>build.eclipse.org</code>.
Line 20: Line 41:
 
* http://download.eclipse.org/rt/rap/nightly/tooling/
 
* http://download.eclipse.org/rt/rap/nightly/tooling/
  
These p2 repositories are updated by a cron job:
+
These p2 repositories are updated by a [https://hudson.eclipse.org/rap/job/rap-head-publish/ rap-head-publish] job that runs after the ''master'' jobs are run.
/shared/rt/rap/scripts/publish-nightly-build.sh
+
This job is run by rsternber's crontab.
+
  
 
=== Procedure for Milestone builds ===
 
=== Procedure for Milestone builds ===
  
* Prepare new base platform in <code>/shared/rt/rap/base-platforms</code> (see <code>HOWTO</code> file)
+
* Prepare new base platform in <code>/shared/rt/rap/base-platforms</code> (see <code>HOWTO.create</code> file)
 
* Configure pom.xml files to include the new base platform
 
* Configure pom.xml files to include the new base platform
** <code>releng/org.eclipse.rap.build/pom.xml</code>
+
** RAP Runtime
** <code>releng/org.eclipse.rap.target.build/pom.xml</code>
+
*** <code>releng/org.eclipse.rap.build/pom.xml</code>: base-platform-mars property and base-platform-repository repository
* Build runtime and tooling with <code>BUILD_TYPE</code> = <code>S</code> for stable builds (these will be signed)
+
*** <code>releng/org.eclipse.rap.build/repository.mars/pom.xml</code>: base-platform-repository-with-ICU-bundle repository
 +
*** <code>features/org.eclipse.rap.equinox.target.feature/pom.xml</code>: base-platform-repository-with-ICU-bundle
 +
*** Enforce generation of new qualifier by "touching" <code>features/org.eclipse.rap.equinox.target.feature/.forceQualifierUpdate</code>
 +
** RAP Tools
 +
*** Update target definition in <code>releng/org.eclipse.rap.tools.build/target.definition/org.eclipse.rap.tools.target.definition.target</code>
 +
*** Enforce generation of new qualifier by "touching" <code>features/org.eclipse.rap.tools.feature/.forceQualifierUpdate</code>
 +
* Build RAP Runtime two times, one time with <code>BUILD_TYPE</code> = <code>S</code> (signing, without tests), and another time with <code>BUILD_TYPE</code> = <code>N</code> (unsigned, with tests). Build RAP Tools.
 
* Move repositories to download area (see <code>/shared/rt/rap/publish/</code>)
 
* Move repositories to download area (see <code>/shared/rt/rap/publish/</code>)
 
* Contribute repositories to simrel aggregator
 
* Contribute repositories to simrel aggregator
 +
** In most cases it is required to disable the Scout RAP contribution because of conflicting dependencies. The Scout project enables its contribution a day later when they contribute their updated build.
 
* Add tag to git repositories
 
* Add tag to git repositories
** <code>TAG=1.5.0-Mx-YYYYMMDD</code>
+
** <code>TAG=3.0.0-Mx</code>
 
** <code>git tag -a -m "$TAG" -s $TAG</code> (note: -s creates a signed tag)
 
** <code>git tag -a -m "$TAG" -s $TAG</code> (note: -s creates a signed tag)
 
** <code>git push --tags origin</code>
 
** <code>git push --tags origin</code>
 +
* Upload RWT bundles to [[RAP/Maven_Central | Maven Central repository]].
  
 
==== Publishing ====
 
==== Publishing ====
Line 49: Line 76:
 
* Announce via Blog
 
* Announce via Blog
 
* Re-deploy demo applications (in oder to demonstrate the new features from the milestone)
 
* Re-deploy demo applications (in oder to demonstrate the new features from the milestone)
 +
 +
* Publish RWT bundles in the [[RAP/Maven_Central | Maven Central repository]].
  
 
=== Procedure for release builds ===
 
=== Procedure for release builds ===
  
additional steps to do when creating release builds
+
Additional steps to do when creating release builds and publishing them.
  
* ensure version numbers in bundle manifests
+
* ensure version numbers in bundle manifests and features are correct, qualifiers got updated
 
* ensure legal files (see [http://eclipse.org/legal/guidetolegaldoc.php])
 
* ensure legal files (see [http://eclipse.org/legal/guidetolegaldoc.php])
 
** check that about.html are included in source build
 
** check that about.html are included in source build
* update infocenter content and links to infocenter from project home page
+
* update [help.eclipse.org/ infocenter] content and links to infocenter from project home page
* update help plugin
+
* update help plugin and [https://www.eclipse.org/rap/developers-guide/ developers guide]
 
* 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. (Beyhan)
+
* Update the RAP-Tools entry in the [http://marketplace.eclipse.org/content/remote-application-platform-tools Eclipse Marketplace]. It should list 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 rap-dev 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)
 
* 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 <code>notice.html</code> and <code>epl-v10.html</code> files for updates
 
* Check <code>notice.html</code> and <code>epl-v10.html</code> files for updates
 
* Make sure <code>notice.html</code> and <code>epl-v10.html</code> files are included in the download zip files (see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=347659 bug 347659])
 
* Make sure <code>notice.html</code> and <code>epl-v10.html</code> files are included in the download zip files (see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=347659 bug 347659])
  
==== Maven Central Repository ====
+
* Publish RWT bundles in the [[RAP/Maven_Central | Maven Central repository]].
 
+
* Publish updated Docker images with the RAP demo applications to [https://registry.hub.docker.com/u/eclipsesource/eclipse-rap-demo/ registry.hub.docker.com]
Make sure RWT bundles are available in the maven central repository. See [[RAP/Maven_Central | Maven Central]].
+
* Update the source code location for automated [http://babel.eclipse.org/babel/project_source_locations.php Eclipse Babel] translations
  
 
==== Eclipse Marketplace ====
 
==== Eclipse Marketplace ====
Line 79: Line 110:
 
=== Simultaneous Release ===
 
=== Simultaneous Release ===
  
* [https://hudson.eclipse.org/hudson/job/simrel.juno.runAggregator/ Juno Aggregator]
+
* [https://hudson.eclipse.org/hudson/job/simrel.mars.runAggregator/ Mars Aggregator]
* [https://hudson.eclipse.org/hudson/job/simrel.kepler.runaggregator/ Kepler Aggregator]
+
 
* [[SimRel/Simultaneous_Release_FAQ|Simultaneous_Release_FAQ]]
 
* [[SimRel/Simultaneous_Release_FAQ|Simultaneous_Release_FAQ]]
  
Line 102: Line 132:
 
* clientscripting
 
* clientscripting
 
* cnf
 
* cnf
 +
* dropdown
 
* fileupload
 
* fileupload
 
* gef
 
* gef
Line 107: Line 138:
 
* 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 04:18, 21 June 2015

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

Hudson Builds

From RAP version 2.1 on all RAP build jobs are running on a dedicated RAP Hudson instance:

Need help with older versions of Eclipse? Request Long Term Support (LTS).

RAP 1.5 RAP 2.0 RAP 2.1 RAP 2.2 RAP 2.3 RAP 3.x (head)
rap-1.5-runtime rap-2.0-runtime rap-2.1-runtime LTS rap-2.2-runtime rap-2.3-runtime LTS rap-head-runtime
rap-1.5-tools rap-2.0-tools rap-2.1-tools rap-2.2-tools rap-2.3-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.

Nightly Builds

We produce p2 repositories from our nightly builds:

These p2 repositories are updated by a rap-head-publish job that runs after the master jobs are run.

Procedure for Milestone builds

  • Prepare new base platform in /shared/rt/rap/base-platforms (see HOWTO.create file)
  • Configure pom.xml files to include the new base platform
    • RAP Runtime
      • releng/org.eclipse.rap.build/pom.xml: base-platform-mars property and base-platform-repository repository
      • releng/org.eclipse.rap.build/repository.mars/pom.xml: base-platform-repository-with-ICU-bundle repository
      • features/org.eclipse.rap.equinox.target.feature/pom.xml: base-platform-repository-with-ICU-bundle
      • Enforce generation of new qualifier by "touching" features/org.eclipse.rap.equinox.target.feature/.forceQualifierUpdate
    • RAP Tools
      • Update target definition in releng/org.eclipse.rap.tools.build/target.definition/org.eclipse.rap.tools.target.definition.target
      • Enforce generation of new qualifier by "touching" features/org.eclipse.rap.tools.feature/.forceQualifierUpdate
  • Build RAP Runtime two times, one time with BUILD_TYPE = S (signing, without tests), and another time with BUILD_TYPE = N (unsigned, with tests). Build RAP Tools.
  • Move repositories to download area (see /shared/rt/rap/publish/)
  • Contribute repositories to simrel aggregator
    • In most cases it is required to disable the Scout RAP contribution because of conflicting dependencies. The Scout project enables its contribution a day later when they contribute their updated build.
  • Add tag to git repositories
    • TAG=3.0.0-Mx
    • git tag -a -m "$TAG" -s $TAG (note: -s creates a signed tag)
    • git push --tags origin
  • Upload RWT bundles to Maven Central repository.

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)

Procedure for release builds

Additional steps to do when creating release builds and publishing them.

  • ensure version numbers in bundle manifests and features are correct, qualifiers got updated
  • ensure legal files (see [1])
    • check that about.html are included in source build
  • update [help.eclipse.org/ infocenter] content and links to infocenter from project home page
  • update help plugin and developers guide
  • 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-Tools entry in the Eclipse Marketplace. It should list the latest release.
  • Redirect rap/latest-release/{runtime/tooling} repositories
  • notify newsgroup and rap-dev 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)

Eclipse Marketplace

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

Simultaneous Release

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.

Back to the top