Merge "Add a new section about KeystoneAuthRealm"
[docs.git] / docs / release-process / simultaneous-release.rst
index dcd44fb9439ffc415a001534905c5b779fad45f3..e78bc8e3b3781e5c5f2299ad0fc181b9541ff4ba 100644 (file)
@@ -14,49 +14,92 @@ After release candidate is built gpg sign artifacts using odlsign-bulk script in
 .. code-block:: bash
 
     cd scripts/
-    ./odlsign-bulk <staging-repo-id>  # eg. autorelease-1367
+    ./odlsign-bulk STAGING_REPO_ID  # eg. autorelease-1367
+
+Verify the distribution-karaf file with the signature.
+
+.. code-block:: bash
+
+    gpg2 --verify distribution-karaf-x.y.z-${RELEASE}.tar.gz.asc distribution-karaf-x.y.z-${RELEASE}.tar.gz
+
 
 Releasing OpenDaylight
 ======================
 
+- Block submit permissions for registered users and elevate RE's committer rights on gerrit. **(Helpdesk)**
+
+  .. figure:: images/gerrit-update-committer-rights.png
+
+  .. note::
+
+     Enable Exclusive checkbox
+
+- Export ${RELEASE} and ${BUILDNUM} with current release name and build number.
+
+  .. code-block:: bash
+
+     export RELEASE=Beryllium-SR4
+     export BRANCH=${RELEASE//-*}
+     export BUILDNUM=55
+
 - Nexus: click release for staging repo **(Helpdesk)**
 - Nexus: click release for gpgsign repo (created above in Preparations) **(Helpdesk)**
 - Send email to Helpdesk with binary URL to update website **(Helpdesk)**
 - Send email to TSC and Release mailing lists announcing release binaries location **(Release Engineering Team)**
-- Checkout autorelease and switch to release branch eg stable/boron
-  **(Release Engineering Team)**
+- Clone autorelease repository. **(Release Engineering Team)**
+
+  .. code-block:: bash
+
+      git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
+
+- Checkout autorelease and switch to release branch eg stable/carbon **(Release Engineering Team)**
+
+  .. code-block:: bash
+
+      git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,}
+      git submodule update --init
+      git submodule foreach git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,}
+
 - Make sure your git repo is setup to push (use git-review)
 
-    .. code-block:: bash
+  .. code-block:: bash
+
+      git review -s
+      git submodule foreach 'git review -s'
 
-        git review -s
+- Download patches (\*.bundle files and taglist.log.gz) from log server.
 
-- Download patches from Jenkins build page
+  .. code-block:: bash
 
-    .. code-block:: bash
+      mkdir /tmp/patches && cd /tmp/patches
+      wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${BRANCH,,}/${BUILDNUM}/archives/all-bundles.tar.gz
+      gunzip all-bundles.tar.gz
+      wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${BRANCH,,}/${BUILDNUM}/archives/patches/taglist.log.gz
+      gunzip taglist.log.gz
 
-        cd /tmp
-        wget https://jenkins.opendaylight.org/releng/view/autorelease/job/autorelease-release-boron/230/artifact/patches/*zip*/patches.zip
-        unzip patches.zip
+- Run the following commands for every project in the release, to apply patches to each project directory.
 
-- Run the following commands for every project in the release
+  .. code-block:: bash
 
-    .. code-block:: bash
+      pip install lftools
+      lftools version patch ${RELEASE}
+      git review -y -t ${RELEASE}
+      git push gerrit release/${RELEASE,,}
 
-        ../scripts/patch-odl-release.sh /tmp/patches Boron
-        git review -y -t Boron
-        git push gerrit release/boron
+- Merge all patches on gerrit in the order generated by merge-order.log
 
 - Tag autorelease too
 
-    .. code-block:: bash
+  .. code-block:: bash
 
-        git submodule foreach git checkout release/beryllium
-        git add [add each project individually to not pull in extra]
-        git commit -sm "Release Beryllium"
-        git tag -asm "OpenDaylight Beryllium release" release/beryllium
-        git review -y -t Beryllium
-        git push gerrit release/beryllium
+      git checkout `cat /tmp/patches/taglist.log | grep autorelease | awk '{print $2}'`
+      git submodule foreach git checkout release/${RELEASE,,}
+      git commit -asSm "Release ${RELEASE}"
+      git tag -asm "OpenDaylight ${RELEASE} release" release/${RELEASE,,}
+      git push gerrit release/${RELEASE,,}
+
+- Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit.
 
 - Generate release notes (???)
+
 - Send email to release/tsc/dev notifying tagging and version bump complete **(Release Engineering Team)**