This document presents an overview of the target definitions project in the Papyrus-RT release engineering (build) system.
First, it is important to know how to generate the HTML presentation of this documentation if you prefer not to read the markdown source.
The build.xml
Ant build script is configured, via a custom project builder, to generate HTML automatically from all *.md
files in the project (including this one). But, this requires an installation on the local system of the Mylyn WikiText Stand-alone distribution, which includes the Ant tasks required.
To enable documentation generation, simply download the latest WikiText Stand-alone distribution from the Mylyn Project Downloads and unzip it somewhere on your filesystem. Then, in the Ant preferences of your Eclipse workbench, define this property:
wikitext.standalone
with the absolute filesystem path of the unzipped Wikitext Standalone distribution as its value. From this point forward, any changes that you make in the markdown sources in this project will be generated to HTML automatically.
Generated HTML files are ignored in git. And if you do not have the Wikitext Standalone tools and therefore do not define the required Ant property in your preferences, then the HTML files simply won't be generated. This set-up is not required for the project to build correctly.
A variety of target platform files are specified in this project for the Hudson build, with variability in a few different dimensions:
The basic directory structure has the Papyrus build kind at the top level with Maven modules for each of the target platforms tailored to any given component or gerrit build (some targets are used by several builds, others are specific to a Papyrus-RT component).
So, at the top level we have
papyrusnightly
— for building on the latest Papyrus nightly build from the current streampapyrusmilestone
— for building on the latest Papyrus milestone (stable) build from the current streampapyrusrelease
— for building on the latest Papyrus official release build from the current streamAnd at the next level, for example using Papyrus nightly builds
papyrusnightly
org.eclipse.papyrusrt.targetplatform.neon.core
— intended for the Core component buildorg.eclipse.papyrusrt.targetplatform.neon.papyrus
— not used on its own as a component, but providing common Papyrus content in the *.tpd
which is then included in other target platformsorg.eclipse.papyrusrt.targetplatform.neon.rt.included
— use for the Gerrit builds, which build an individual component on top of the latest successful Papyrus-RT nightly buildorg.eclipse.papyrusrt.targetplatform.neon.releng
— used for the Papyrus-RT product and packaging buildsAccording to Maven properties described in the top POM and configured in each Hudson build, the POM in this project selects out of all of these target-platform modules the one as its child module that it should build and make available to all of the other maven modules.
All of these target platforms (*.target
files) are generated from abstract target platform definitions (*.tpd
files) using the tooling provided by Obeo at Github. Furthermore, the Papyrus Developer Tools feature provides a context-menu action Generate all Target files that finds all *.tpd
files in the current project and generates the corresponding *.target
files.
Within the directory structure of alternative target-platform definitions for the Tycho build within this project, there is an entire parallel module structure weaved into it that provides for target-platforms optimized for use on the HIPP instance on the Eclipse.org Hudson build server.
These alternative target platforms are located in eclipse/
sub-directories within each primary portable target-platform module. In the HIPP environment on the Eclipse build server, a profile in the top POM for the target-platform project selects this eclipse
variant.
So, for example, the Core component target platform build on the latest Papyrus nightly build has this structure:
papyrusnightly
— the latest Papyrus nightlyorg.eclipse.papyrusrt.targetplatform.neon.core
— the Core component's target platformeclipse
— the variant for Eclipse build-server local downloads accessThe 'eclipse' variants of the target-platform files are maintained automatically by the project build configuration. If your workspace is configured for automatic build, then the 'eclipse' variants will be regenerated automatically for any changes in the generated portable (HTTP-based) *.target files. Otherwise, just do a manual build of the project. Clean build will delete all contents of the 'eclipse' variant directories.