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 "Orbit/Adding Bundles To Orbit In 5 Minutes"

(Migrate page to reflect new orbit-recipes instructions)
Line 1: Line 1:
 
For the long version See [[Adding Bundles to Orbit]]
 
For the long version See [[Adding Bundles to Orbit]]
  
This is for primarily meant as a guide if you know how to create an orbit bundle, and wish to make a release:
+
This is for primarily meant as a guide for contributing a bundle to make its way into a release. This guide assumes all the steps to get approval for the bundle itself have already been performed.
  
* Checkout <code>org.eclipse.orbit.releng</code> and <code>org.eclipse.orbit.build.feature.set1</code>
+
See http://git.eclipse.org/c/gerrit/orbit/orbit-recipes.git/tree/README.md for a more thorough explanation
  
* Add the plugin to <code>org.eclipse.orbit.build.feature.set1/feature.xml</code>:
+
== Setup ==
  <plugin
+
        id="org.hamcrest.generator"
+
        download-size="0"
+
        install-size="0"
+
        version="1.1.0.qualifier"
+
        unpack="false"/>
+
  
* Commit changes to org.eclipse.orbit.build.feature.set1, and tag the feature plugin with the version number. The version format is <code>vYYYYMMDDHHMM</code> in UTC.
+
* Clone the orbit-recipes git repository
  
* Tag the bundle(s) that you wish to add to orbit with the same version number you used for tagging <code>org.eclipse.orbit.build.feature.set1</code>. The version format is <code>vYYYYMMDDHHMM</code> in UTC.
+
$ git clone ssh://USERNAME@git.eclipse.org:29418/orbit/orbit-recipes
  
* Add the plugins to <code>org.eclipse.orbit.releng/psf/orbit.psf</code>:
+
== Recipe Creation/Preparation ==
<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.hamcrest.generator,org.hamcrest.generator_v1.1,v1_1"/>
+
  
* Add the plugins to <code>org.eclipse.orbit.releng/maps/bundles.map</code>. Use the same version number here that you used for tagging previously.
+
* Choose a folder under which to create the recipe and then create it there
plugin@org.hamcrest.generator,1.1.0=vYYYYMMDDHHMM,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,,org.eclipse.orbit/org.hamcrest.generator
+
plugin@org.hamcrest.generator.source,1.1.0=vYYYYMMDDHHMM,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,,org.eclipse.orbit/org.hamcrest.generator/source-bundle
+
  
* Change the feature tag in <code>bundles.map</code> (the last line in that file)
+
$ cd github/mongodb
  feature@org.eclipse.orbit.build.feature.set1=vYYYYMMDDHHMM,:pserver:anonymous@dev.eclipse.org:/cvsroot/tools,,org.eclipse.orbit/org.eclipse.orbit.build.feature.set1
+
  $ mvn ebr:create-recipe -DgroupId=org.mongodb -DartifactId=mongo-java-driver -Dversion=3.4.1 -DbundleSymbolicName=org.mongodb.mongo-java-driver
  
* Commit all changes in <code>org.eclipse.orbit.releng</code>, and wait for [http://build.eclipse.org:9777/dashboard/tab/dashboard CruiseControl] to pick it up.
+
* Modify recipe pom and osgi.bnd to suite the needs of the bundle. If the bundles has dependencies, make sure to specify them under the Import-Package header in the osgi.bnd as opposed to just leaving it as '*;resolution:=optional'.
 +
 
 +
$ cd org.mongodb.mongo-java-driver_3.4.1
 +
$ $EDITOR pom.xml
 +
$ $EDITOR osgi.bnd
 +
 
 +
* Perform a test build of the package to have an ip_log.xml file generated. Fill in the missing information (Name, Email, Company, Ipzilla Bug Id), into the ip_log.xml file. Note that the Ipzilla Bug Id must be an Add-To-Orbit (ATO) CQ.
 +
 
 +
$ mvn -U clean package -DdirtyWorkingTree=warning
 +
$ $EDITOR src/eclipse/ip_log.xml
 +
 
 +
* Add the new recipe to the category pom as a module
 +
(eg. <code><module>org.mongodb.mongo-java-driver_3.4.1</module></code>)
 +
 
 +
$ cd ../
 +
$ $EDITOR pom.xml
 +
 
 +
* Add the recipe bundle to the aggregation feature to ensure it ends up in the generated repository
 +
 
 +
$ cd ../../
 +
$ EDITOR releng/aggregationfeature/feature.xml
 +
 
 +
(eg. <code><plugin id="org.mongodb.mongo-java-driver" version="3.4.1.qualifier"/></code>)
 +
 
 +
* Add and commit the new recipe and changes to the aggregation feature. Be sure to reference the ATO CQ in your commit message.
 +
 
 +
$ git add github/mongodb/org.mongodb.mongo-java-driver_3.4.1 releng/aggregationfeature/feature.xml
 +
$ git commit
 +
 
 +
== Building Locally (Recommended) ==
 +
 
 +
* We should also test that our new recipe builds successfully prior to submitting for review
 +
 
 +
First we test that our recipe builds alongside all other recipes and install them locally to be discovered later by our aggregation featue
 +
 
 +
$ mvn clean install
 +
 
 +
Next we test that the aggregation feature builds successfully
 +
 
 +
$ mvn clean install -f releng/aggregationfeature/pom.xml
 +
 
 +
Finally, we test that the generated repository containing all bundle recipes builds successfully
 +
 
 +
$ mvn clean package -f releng/repository/pom.xml
 +
 
 +
== Contributing ==
 +
 
 +
* Lastly, we push to review
 +
 
 +
$ git push origin HEAD:refs/for/master
  
 
See [[Orbit_Builds#Orbit_Builds_for_Orbit_Committers | Orbit Builds for Orbit Committers]].
 
See [[Orbit_Builds#Orbit_Builds_for_Orbit_Committers | Orbit Builds for Orbit Committers]].
  
 
[[Category: Orbit]]
 
[[Category: Orbit]]

Revision as of 14:05, 5 January 2017

For the long version See Adding Bundles to Orbit

This is for primarily meant as a guide for contributing a bundle to make its way into a release. This guide assumes all the steps to get approval for the bundle itself have already been performed.

See http://git.eclipse.org/c/gerrit/orbit/orbit-recipes.git/tree/README.md for a more thorough explanation

Setup

  • Clone the orbit-recipes git repository
$ git clone ssh://USERNAME@git.eclipse.org:29418/orbit/orbit-recipes

Recipe Creation/Preparation

  • Choose a folder under which to create the recipe and then create it there
$ cd github/mongodb
$ mvn ebr:create-recipe -DgroupId=org.mongodb -DartifactId=mongo-java-driver -Dversion=3.4.1 -DbundleSymbolicName=org.mongodb.mongo-java-driver
  • Modify recipe pom and osgi.bnd to suite the needs of the bundle. If the bundles has dependencies, make sure to specify them under the Import-Package header in the osgi.bnd as opposed to just leaving it as '*;resolution:=optional'.
$ cd org.mongodb.mongo-java-driver_3.4.1
$ $EDITOR pom.xml
$ $EDITOR osgi.bnd
  • Perform a test build of the package to have an ip_log.xml file generated. Fill in the missing information (Name, Email, Company, Ipzilla Bug Id), into the ip_log.xml file. Note that the Ipzilla Bug Id must be an Add-To-Orbit (ATO) CQ.
$ mvn -U clean package -DdirtyWorkingTree=warning
$ $EDITOR src/eclipse/ip_log.xml
  • Add the new recipe to the category pom as a module

(eg. <module>org.mongodb.mongo-java-driver_3.4.1</module>)

$ cd ../
$ $EDITOR pom.xml
  • Add the recipe bundle to the aggregation feature to ensure it ends up in the generated repository
$ cd ../../
$ EDITOR releng/aggregationfeature/feature.xml

(eg. <plugin id="org.mongodb.mongo-java-driver" version="3.4.1.qualifier"/>)

  • Add and commit the new recipe and changes to the aggregation feature. Be sure to reference the ATO CQ in your commit message.
$ git add github/mongodb/org.mongodb.mongo-java-driver_3.4.1 releng/aggregationfeature/feature.xml
$ git commit

Building Locally (Recommended)

  • We should also test that our new recipe builds successfully prior to submitting for review

First we test that our recipe builds alongside all other recipes and install them locally to be discovered later by our aggregation featue

$ mvn clean install

Next we test that the aggregation feature builds successfully

$ mvn clean install -f releng/aggregationfeature/pom.xml

Finally, we test that the generated repository containing all bundle recipes builds successfully

$ mvn clean package -f releng/repository/pom.xml

Contributing

  • Lastly, we push to review
$ git push origin HEAD:refs/for/master

See Orbit Builds for Orbit Committers.

Back to the top