3 Add Projects to distribution
4 ============================
9 Add features to distribution
10 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 Managed projects must be in the distribution. Follow the steps below
13 to add your karaf features to distribution:
15 #. Download int/dist repository:
19 git clone ssh://<user>@git.opendaylight.org:29418/integration/distribution
21 #. Make sure the projects you depend are already in the pom file:
25 features/repos/index/pom.xml
27 #. Check your project version is correct in the file:
31 artifacts/upstream/properties/pom.xml
33 #. Declare your feature repositories and user-facing features dependencies:
35 If your project artifacts pom.xml contains your karaf feature repos and features,
36 just add your project artifacts dependency in:
40 artifacts/upstream/artifacts/pom.xml
42 Otherwise add your project feature repositories and your user-facing features to:
46 artifacts/upstream/feature-repos/pom.xml
47 artifacts/upstream/single-features/pom.xml
49 .. note:: Always add your maven dependencies in alphabethical order.
50 This also applies to the next steps.
52 #. Add your feature repositories in:
56 features/repos/index/pom.xml
58 #. Add your user facing features in either:
62 features/singles/odl-integration-compatible-with-all/pom.xml
64 if your feature is compatible.
68 features/singles/odl-integration-all/pom.xml
70 if your feature is not compatible.
72 .. note:: You do not need to add a feature if it is already contained
73 in another feature you have already included.
75 Remember compatible features are those that can co-exist with other features in ODL because:
77 * They do not interfere with any other feature
78 * They are not network intrusive (e.g. configure network devices or push flows out-of-the-box)
80 #. Push changes to int/dist and wait for patch verification and review.
82 Once the patch is merged your project will be part of the OpenDaylight managed distribution which is
83 normally available in nexus managed-distribution_ and will join the distribution-check verification.
85 Trigger distribution build
86 ~~~~~~~~~~~~~~~~~~~~~~~~~~
88 Once the project is in the distribution it is recommended to build and publish a new distribution
89 every time a merge happens in the project. Follow the steps below to add this trigger:
91 #. Download releng/builder repository:
95 git clone ssh://<user>@git.opendaylight.org:29418/releng/builder
97 #. Add your merge job in following file under distribution-managed section:
101 jjb/integration/distribution/distribution-jobs.yaml
104 name: distribution-managed
111 bgpcep-merge-{stream},
115 #. Push changes to releng/builder and wait for patch verification and review.
117 Self-Managed Projects
118 ---------------------
120 Add features to distribution
121 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123 Self-Managed projects must only be in the distribution if they want to be packaged in distribution
124 and released at the same time as the Managed projects do.
126 Follow the next steps to add your karaf features to the OpenDaylight distribution:
128 #. Download int/dist repository:
132 git clone ssh://<user>@git.opendaylight.org:29418/integration/distribution
134 #. Add your feature repository in:
140 .. note:: Always add your maven dependencies in alphabethical order.
141 This also applies to the next steps.
143 #. Push changes to int/dist and wait for patch verification and review.
145 Once the patch is merged your project will be part of the new OpenDaylight distribution which is
146 normally available in nexus full-distribution_.
148 .. note:: In order to install a Self-Managed feature, you have to first install the feature repository
149 in karaf, the example below shows how to install a repository from the karaf console.
153 opendayligt>feature:repo-add mvn:org.opendaylight.sxp/features-sxp//xml/features
155 .. note:: If the feature version is not specified in the URL (see example above), Karaf will use
156 the latest version (normally only one stored) in the the system folder.
158 .. note:: You can alternatively add the repository in the karaf boot file etc/org.apache.karaf.features.cfg
160 Add features to sanity test
161 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
163 Distribution sanity test runs once a day to verify all projects features, managed
164 and sef-managed, can be installed with no issues. Follow below steps to add your
165 features to the sanity test.
167 #. Download releng/builder repository:
171 git clone ssh://<user>@git.opendaylight.org:29418/releng/builder
173 #. Open the distribution-jobs.yaml file:
177 jjb/integration/distribution/distribution-jobs.yaml
179 Add your feature repo and user-facing features in the distribution section:
187 # Self-Managed projects repos and features:
189 mvn:org.opendaylight.sxp/features-sxp//xml/features,
190 mvn:org.opendaylight.tsdr/features-tsdr//xml/features
194 odl-tsdr-openflow-statistics-collector,
195 odl-tsdr-netflow-statistics-collector
197 .. note:: If the feature version is not specified in the URL (see example above), Karaf will use
198 the latest version (normally only one stored) in the the system folder.
200 #. Push changes to releng/builder and wait for patch verification and review.
202 Once the patch is merged your project will be tested in the distribution-sanity_.
204 Trigger distribution build
205 ~~~~~~~~~~~~~~~~~~~~~~~~~~
207 Once the project is in the distribution it is recommended to build and publish a new distribution
208 every time a merge happens in the project. Follow the steps below to add this trigger:
210 #. Download releng/builder repository:
214 git clone ssh://<user>@git.opendaylight.org:29418/releng/builder
216 #. Open the distribution-jobs.yaml file:
220 jjb/integration/distribution/distribution-jobs.yaml
222 And add your merge job in the distribution-full section:
227 name: distribution-full
236 #. Push changes to releng/builder and wait for patch verification and review.
238 .. _managed-distribution: https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/karaf
239 .. _full-distribution: https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/opendaylight
240 .. _distribution-sanity: https://jenkins.opendaylight.org/releng/view/Sanity