Releng: added target definitions for Oxygen and 2018-09 We are now using the Eclipse CBI TPD infrastructure to generate target definitions for the different Eclipse platforms. That means that the releng.target project has been converted to an xtext project to enable the generation of the target definition files. For now, the target definition we use for building will remain the hand-crafted one we used so far, but in the future, we might move to one with dependencies to a newer Eclipse platform. Developers can already start to adapt Eclipse Capra to newer versions, though. While Oxygen works without issue, there are dependency issues in the RegIF Handler and in the Zest visualisation for 2018-09..
diff --git a/org.eclipse.capra.releng.target/.project b/org.eclipse.capra.releng.target/.project index 6133844..859b58f 100644 --- a/org.eclipse.capra.releng.target/.project +++ b/org.eclipse.capra.releng.target/.project
@@ -5,7 +5,13 @@ <projects> </projects> <buildSpec> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> </buildSpec> <natures> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> </natures> </projectDescription>
diff --git a/org.eclipse.capra.releng.target/2018-09.tpd b/org.eclipse.capra.releng.target/2018-09.tpd new file mode 100644 index 0000000..b462ffc --- /dev/null +++ b/org.eclipse.capra.releng.target/2018-09.tpd
@@ -0,0 +1,56 @@ +target "2018-09" with source requirements + +location "http://download.eclipse.org/releases/2018-09/" eclipse-2018-09 { + org.eclipse.cdt.sdk.feature.group + org.eclipse.cdt.testsrunner.feature.feature.group + org.eclipse.emf.compare.ide.ui.feature.group + org.eclipse.emf.ecore.xcore.sdk.feature.group + org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group + org.eclipse.emf.emfstore.sdk.feature.feature.group + org.eclipse.emf.sdk.feature.group + org.eclipse.gef.mvc.sdk.feature.group + org.eclipse.gef.zest.sdk.feature.group + org.eclipse.papyrus.sdk.feature.feature.group + org.eclipse.php.feature.group + org.eclipse.xtext.sdk.feature.group + org.eclipse.mylyn.gerrit.feature.feature.group + org.eclipse.mylyn.hudson.feature.group +} + +location "http://download.eclipse.org/tools/gef/gef4/updates/releases" eclipse-gef4 { + org.eclipse.gef4.common.sdk.feature.group + org.eclipse.gef4.geometry.sdk.feature.group + org.eclipse.gef4.fx.sdk.feature.group + org.eclipse.gef4.mvc.sdk.feature.group + org.eclipse.gef4.mvc.examples.source.feature.group + org.eclipse.gef4.layout.sdk.feature.group + org.eclipse.gef4.graph.sdk.feature.group + org.eclipse.gef4.zest.sdk.feature.group + org.eclipse.gef4.zest.examples.source.feature.group + org.eclipse.gef4.dot.sdk.feature.group + org.eclipse.gef4.cloudio.sdk.feature.group +} + + +location "https://download.eclipse.org/tools/orbit/downloads/drops/R20180905201904/repository" eclipse-orbit-2018-09 { + org.apache.poi.ooxml + org.apache.xmlbeans + com.google.guava + org.apache.commons.collections + org.apache.poi.ooxml.schemas + org.apache.poi + com.fasterxml.jackson.core.jackson-core +} + +location "http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/" eclipse-orbit-mars2 { + org.mortbay.jetty.util + org.mortbay.jetty.server +} + +location "http://hallvard.github.io/plantuml/" plantuml { + net.sourceforge.plantuml.feature.feature.group +} + +location "http://featureide.cs.ovgu.de/update/v3/" feature-ide { + de.ovgu.featureide.featuremodeling.feature.group +} \ No newline at end of file
diff --git a/org.eclipse.capra.releng.target/Neon.tpd b/org.eclipse.capra.releng.target/Neon.tpd new file mode 100644 index 0000000..c85eed6 --- /dev/null +++ b/org.eclipse.capra.releng.target/Neon.tpd
@@ -0,0 +1,56 @@ +target "Neon" with source requirements + +location "http://download.eclipse.org/releases/neon/" eclipse-neon { + org.eclipse.cdt.sdk.feature.group + org.eclipse.cdt.testsrunner.feature.feature.group + org.eclipse.emf.compare.ide.ui.feature.group + org.eclipse.emf.ecore.xcore.sdk.feature.group + org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group + org.eclipse.emf.emfstore.sdk.feature.feature.group + org.eclipse.emf.sdk.feature.group + org.eclipse.gef.mvc.sdk.feature.group + org.eclipse.gef.zest.sdk.feature.group + org.eclipse.papyrus.sdk.feature.feature.group + org.eclipse.php.feature.group + org.eclipse.xtext.sdk.feature.group + org.eclipse.mylyn.gerrit.feature.feature.group + org.eclipse.mylyn.hudson.feature.group +} + +location "http://download.eclipse.org/tools/gef/gef4/updates/releases" eclipse-gef4 { + org.eclipse.gef4.common.sdk.feature.group + org.eclipse.gef4.geometry.sdk.feature.group + org.eclipse.gef4.fx.sdk.feature.group + org.eclipse.gef4.mvc.sdk.feature.group + org.eclipse.gef4.mvc.examples.source.feature.group + org.eclipse.gef4.layout.sdk.feature.group + org.eclipse.gef4.graph.sdk.feature.group + org.eclipse.gef4.zest.sdk.feature.group + org.eclipse.gef4.zest.examples.source.feature.group + org.eclipse.gef4.dot.sdk.feature.group + org.eclipse.gef4.cloudio.sdk.feature.group +} + + +location "https://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository" eclipse-orbit-neon.3 { + org.apache.poi.ooxml + org.apache.xmlbeans + com.google.guava + org.apache.commons.collections + org.apache.poi.ooxml.schemas + org.apache.poi + com.fasterxml.jackson.core.jackson-core +} + +location "http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/" eclipse-orbit-mars2 { + org.mortbay.jetty.util + org.mortbay.jetty.server +} + +location "http://hallvard.github.io/plantuml/" plantuml { + net.sourceforge.plantuml.feature.feature.group +} + +location "http://featureide.cs.ovgu.de/update/v3/" feature-ide { + de.ovgu.featureide.featuremodeling.feature.group +} \ No newline at end of file
diff --git a/org.eclipse.capra.releng.target/Oxygen.tpd b/org.eclipse.capra.releng.target/Oxygen.tpd new file mode 100644 index 0000000..fb6f1c2 --- /dev/null +++ b/org.eclipse.capra.releng.target/Oxygen.tpd
@@ -0,0 +1,56 @@ +target "Oxygen" with source requirements + +location "http://download.eclipse.org/releases/oxygen/" eclipse-oxygen { + org.eclipse.cdt.sdk.feature.group + org.eclipse.cdt.testsrunner.feature.feature.group + org.eclipse.emf.compare.ide.ui.feature.group + org.eclipse.emf.ecore.xcore.sdk.feature.group + org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group + org.eclipse.emf.emfstore.sdk.feature.feature.group + org.eclipse.emf.sdk.feature.group + org.eclipse.gef.mvc.sdk.feature.group + org.eclipse.gef.zest.sdk.feature.group + org.eclipse.papyrus.sdk.feature.feature.group + org.eclipse.php.feature.group + org.eclipse.xtext.sdk.feature.group + org.eclipse.mylyn.gerrit.feature.feature.group + org.eclipse.mylyn.hudson.feature.group +} + +location "http://download.eclipse.org/tools/gef/gef4/updates/releases" eclipse-gef4 { + org.eclipse.gef4.common.sdk.feature.group + org.eclipse.gef4.geometry.sdk.feature.group + org.eclipse.gef4.fx.sdk.feature.group + org.eclipse.gef4.mvc.sdk.feature.group + org.eclipse.gef4.mvc.examples.source.feature.group + org.eclipse.gef4.layout.sdk.feature.group + org.eclipse.gef4.graph.sdk.feature.group + org.eclipse.gef4.zest.sdk.feature.group + org.eclipse.gef4.zest.examples.source.feature.group + org.eclipse.gef4.dot.sdk.feature.group + org.eclipse.gef4.cloudio.sdk.feature.group +} + + +location "https://download.eclipse.org/tools/orbit/downloads/drops/R20180330011457/repository" eclipse-orbit-oxygen3a { + org.apache.poi.ooxml + org.apache.xmlbeans + com.google.guava + org.apache.commons.collections + org.apache.poi.ooxml.schemas + org.apache.poi + com.fasterxml.jackson.core.jackson-core +} + +location "http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/" eclipse-orbit-mars2 { + org.mortbay.jetty.util + org.mortbay.jetty.server +} + +location "http://hallvard.github.io/plantuml/" plantuml { + net.sourceforge.plantuml.feature.feature.group +} + +location "http://featureide.cs.ovgu.de/update/v3/" feature-ide { + de.ovgu.featureide.featuremodeling.feature.group +} \ No newline at end of file
diff --git a/org.eclipse.capra.releng.target/readme.md b/org.eclipse.capra.releng.target/readme.md new file mode 100644 index 0000000..bfca789 --- /dev/null +++ b/org.eclipse.capra.releng.target/readme.md
@@ -0,0 +1,20 @@ +# Defining Target Platforms + +We are using the TPD editor for target platforms which can be found at <https://github.com/eclipse-cbi/targetplatform-dsl>. It currently only works in Eclipse versions >= 2018.09, but can generate target definitions for any Eclipse platform. + +It allows defining target definitions with a DSL and generating `.target` files from them automatically. During the generation, the latest versions of the selected features are selected and added to the definitions. + +We are following a scheme that is used by some other Eclipse projects, e.g., [EASE](https://git.eclipse.org/c/ease/org.eclipse.ease.core.git/tree/releng/org.eclipse.ease.releng.target). + +# Building and developing + +Tycho will use the file `org.eclipse.capra.releng.target.target` for builds. This file has to be manually overridden when a new target platform has been created. + +When developing, any of the target platforms can be used by first generating a target definition and then setting it as the current target platform. This allows developers to check compatibility in different Eclipse versions. + +# Available targets + + * Neon.tpd - original platform for which Capra was developed + * Oxygen.tpd + * 2018-09.tpd - latest build platform + \ No newline at end of file