5 This page explains how the OpenDaylight release process works once the TSC has
11 After release candidate is built gpg sign artifacts using odlsign-bulk script in
12 **releng/builder/scripts**.
17 ./odlsign-bulk STAGING_REPO_ID # eg. autorelease-1367
19 Verify the distribution-karaf file with the signature.
23 gpg2 --verify distribution-karaf-x.y.z-${RELEASE}.tar.gz.asc distribution-karaf-x.y.z-${RELEASE}.tar.gz
26 Releasing OpenDaylight
27 ======================
29 - Block submit permissions for registered users and elevate RE's committer rights on gerrit. **(Helpdesk)**
31 .. figure:: images/gerrit-update-committer-rights.png
35 Enable Exclusive checkbox
37 - Export ${RELEASE} and ${BUILDNUM} with current release name and build number.
41 export RELEASE=Beryllium-SR4
42 export BRANCH=${RELEASE//-*}
45 - Nexus: click release for staging repo **(Helpdesk)**
46 - Nexus: click release for gpgsign repo (created above in Preparations) **(Helpdesk)**
47 - Send email to Helpdesk with binary URL to update website **(Helpdesk)**
48 - Send email to TSC and Release mailing lists announcing release binaries location **(Release Engineering Team)**
49 - Clone autorelease repository. **(Release Engineering Team)**
53 git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
55 - Checkout autorelease and switch to release branch eg stable/carbon **(Release Engineering Team)**
59 git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,}
60 git submodule update --init
61 git submodule foreach git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,}
63 - Make sure your git repo is setup to push (use git-review)
68 git submodule foreach 'git review -s'
70 - Download patches (\*.bundle files and taglist.log.gz) from log server.
74 mkdir /tmp/patches && cd /tmp/patches
75 wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${BRANCH,,}/${BUILDNUM}/archives/all-bundles.tar.gz
76 gunzip all-bundles.tar.gz
77 wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${BRANCH,,}/${BUILDNUM}/archives/patches/taglist.log.gz
80 - Run the following commands for every project in the release, to apply patches to each project directory.
85 lftools version patch ${RELEASE}
86 git review -y -t ${RELEASE}
87 git push gerrit release/${RELEASE,,}
89 - Merge all patches on gerrit in the order generated by merge-order.log
95 git checkout `cat /tmp/patches/taglist.log | grep autorelease | awk '{print $2}'`
96 git submodule foreach git checkout release/${RELEASE,,}
97 git commit -asSm "Release ${RELEASE}"
98 git tag -asm "OpenDaylight ${RELEASE} release" release/${RELEASE,,}
99 git push gerrit release/${RELEASE,,}
101 - Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit.
103 - Generate release notes (???)
105 - Send email to release/tsc/dev notifying tagging and version bump complete **(Release Engineering Team)**