Add int/dist documentation
[integration/distribution.git] / docs / add-project-distribution.rst
diff --git a/docs/add-project-distribution.rst b/docs/add-project-distribution.rst
new file mode 100644 (file)
index 0000000..dd1e648
--- /dev/null
@@ -0,0 +1,141 @@
+.. _add-proj-dist:
+
+Add Projects to distribution
+============================
+
+Managed Projects
+----------------
+
+Managed projects must be in the distribution. Follow the next steps below
+to add your karaf features to distribution:
+
+#. Download int/dist repository:
+
+.. code-block:: bash
+
+    git clone ssh://<user>@git.opendaylight.org:29418/integration/distribution
+
+#. Make sure the projects you depend are already in the pom file:
+
+.. code-block:: bash
+
+    features/repos/index/pom.xml
+
+#. Check your project version is correct in the file:
+
+.. code-block:: bash
+
+    artifacts/upstream/properties/pom.xml
+
+#. Declare your feature repositories and user-facing features dependencies:
+
+If your project artifacts pom.xml contains your karaf feature repos and features,
+just add your project artifacts dependency in:
+
+.. code-block:: bash
+
+    artifacts/upstream/artifacts/pom.xml
+
+Otherwise add your project feature repositories and your user-facing features to:
+
+.. code-block:: bash
+
+    artifacts/upstream/feature-repos/pom.xml
+    artifacts/upstream/single-features/pom.xml
+
+.. note:: Always add your maven dependencies in alphabethical order.
+          This also applies to the next steps.
+
+#. Add your feature repositories in:
+
+.. code-block:: bash
+
+    features/repos/index/pom.xml
+
+#. Add your user facing features in either:
+
+.. code-block:: bash
+
+    features/singles/odl-integration-compatible-with-all/pom.xml
+
+if your feature is compatible.
+
+.. code-block:: bash
+
+    features/singles/odl-integration-all/pom.xml
+
+if your feature is not compatible.
+
+.. note:: You do not need to add a feature if it is already contained
+          in another feature you have already included.
+
+Remember compatible features are those that can co-exist with other features in ODL because:
+
+* They do not interfere with any other feature
+* They are not network intrusive (e.g. configure network devices or push flows out-of-the-box)
+
+#. Push changes to int/dist and wait for patch verification and review.
+
+Once the patch is merged your project will be part of the OpenDaylight distribution
+and join the distribution-check verification.
+
+
+Self-Managed Projects
+---------------------
+
+Self-Managed projects must only be in the distribution if they want to be packaged in distrbution
+and released at the same time as the Managed projects do.
+
+Follow the next steps to add your karaf features to the OpenDaylight distribution:
+
+#. Download int/dist repository:
+
+.. code-block:: bash
+
+    git clone ssh://<user>@git.opendaylight.org:29418/integration/distribution
+
+#. Add your feature reporsitory in:
+
+.. code-block:: bash
+
+    opendaylight/pom.xml
+
+.. note:: Always add your maven dependencies in alphabethical order.
+          This also applies to the next steps.
+
+#. Download releng/builder repository:
+
+.. code-block:: bash
+
+    git clone ssh://<user>@git.opendaylight.org:29418/releng/builder
+
+#. Add your feature repo and user-facing features in:
+
+.. code-block:: bash
+
+    jjb/releng-defaults.yaml
+
+See this example for the file section:
+
+.. code-block:: bash
+
+    # Self-Managed projects features
+    sm-repos: >
+        mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features
+
+    sm-features: >
+        odl-sxp-controller
+
+#. Push changes to int/dist and releng/builder and wait for patch verification and review.
+
+Once the patches are merged your project will be part of the OpenDaylight distribution
+and join the distibution-sanity verification.
+
+.. note:: In order to install a Self-Managed feature, you have to first install the feature repository
+          in karaf, the example below shows how to install a repository from the karaf console.
+
+.. code-block:: bash
+
+   opendayligt>feature:repo-add mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features
+
+.. note:: You can alternatively add the repository in the karaf boot file etc/org.apache.karaf.features.cfg