******************** Simultaneous Release ******************** This page explains how the OpenDaylight release process works once the TSC has approved a release. Preparations ============ After release candidate is built gpg sign artifacts using odlsign-bulk script in **releng/builder/scripts**. .. code-block:: bash cd scripts/ ./odlsign-bulk # eg. autorelease-1367 Releasing OpenDaylight ====================== - Block submit permissions for registered users and elevate RE's committer rights on gerrit. .. figure:: images/gerrit-update-committer-rights.png - 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/carbon **(Release Engineering Team)** .. code-block:: bash git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,} git submodule update --init git submodule foreach git checkout stable/${BRANCH,,} origin/stable/${BRANCH,,} - Make sure your git repo is setup to push (use git-review) .. code-block:: bash git submodule foreach 'git review -s' - Download patches (*.bundle files and taglist.log.gz) from log server. .. 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 - Run the following commands for every project in the release, to apply patches to each project directory. .. code-block:: bash pip install lftools lftools version patch ${RELEASE} git review -y -t ${RELEASE} git push gerrit release/${RELEASE,,} - Merge all patches on gerrit in the order generated by merge-order.log - Tag autorelease too .. code-block:: bash 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)**