5 This page explains how the OpenDaylight release process works once the TSC has
12 At the first Release Candidate (RC) the ``Submit`` button is disabled on the
13 stable branch to prevent projects from merging non-blocking patches
16 #. Disable ``Submit`` for *Registered Users* and allow permission to the
17 *Release Engineering Team*
20 .. figure:: images/gerrit-update-committer-rights.png
24 **DO NOT** enable Code-Review+2 and Verified+1 to the
25 Release Engineering Team during code freeze.
29 Enable **Exclusive** checkbox for the submit button to override any
30 existing permissions. Code-Review and Verify permissions are only needed
31 during version bumping.
34 .. _simrel-preparations:
39 After release candidate is built GPG sign artifacts using the
40 :doc:`lftools sign <lftools:commands/sign>` command.
44 STAGING_REPO=autorelease-1903
45 STAGING_PROFILE_ID=abc123def456 # This Profile ID is listed in Nexus > Staging Profiles
46 lftools sign deploy-nexus https://nexus.opendaylight.org $STAGING_REPO $STAGING_PROFILE_ID
48 Verify the distribution-karaf file with the signature.
52 gpg2 --verify karaf-x.y.z-${RELEASE}.tar.gz.asc karaf-x.y.z-${RELEASE}.tar.gz
56 Projects such as OpFlex participate in the Simultaneous Release but are not
57 part of the autorelease build. Ping those projects and prep their staging
61 Releasing OpenDaylight
62 ======================
64 The following describes the Simultaneous Release process for shipping out the
65 binary and source code on release day.
67 Bulleted actions can be performed in parallel while numbered actions should be
70 - Release the Nexus Staging repository
73 #. Select both the artifacts and signature repository
74 (:ref:`created previously <simrel-preparations>`) and ``click Release``.
76 #. Enter ``Release OpenDaylight $RELEASE`` for the description and
79 *Perform this step for any additional projects that are participating in
80 the Simultaneous Release but are not part of the autorelease build.*
84 This task takes hours to run so kicking it off early is a good idea.
86 - Version bump for next dev cycle
87 **(Release Engineering Team)**
89 #. Run the autorelease-version-bump-${STREAM} job
93 This task takes hours to run so kicking it off early is a good idea.
95 #. Enable ``Code-Review+2`` and ``Verify+1`` voting permissions
96 for the ``Release Engineering Team``
99 .. figure:: images/gerrit-update-committer-rights.png
103 Enable **Exclusive** checkbox for the submit button to override any
104 existing permissions. Code-Review and Verify permissions are only needed
105 during version bumping. **DO NOT** enable it during code freeze.
107 #. Merge all patches generated by the job
109 #. Restore Gerrit permissions for *Registered Users* and disable elevated
110 *Release Engineering Team* permissions
114 **(Release Engineering Team)**
118 lftools contains the version bumping scripts we need to version bump
119 and tag the dev branches. We recommend using a virtualenv for this.
123 # Skip mkvirtualenv if you already have an lftools virtualenv
126 pip install --upgrade lftools
128 #. Pull latest autorelease repository
132 export RELEASE=Nitrogen-SR1
133 export STREAM=${RELEASE//-*}
134 export BRANCH=origin/stable/${STREAM,,}
136 # No need to clean if you have already done it.
137 git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
141 # Ensure we are on the right branch. Note that we are wiping out all
142 # modifications in the repo so backup unsaved changes before doing this.
144 git checkout ${BRANCH,,}
146 git submodule foreach git checkout -f
147 git submodule foreach git clean -xdff
148 git submodule update --init
150 # Ensure git review is setup
152 git submodule foreach 'git review -s'
154 #. Publish release tags
159 export OPENJDKVER="openjdk11"
160 export PATCH_URL="https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/autorelease-release-${STREAM,,}-mvn35-${OPENJDKVER}/${BUILD_NUM}/patches.tar.gz"
161 ./scripts/release-tags.sh "${RELEASE}" /tmp/patches "$PATCH_URL"
163 - Notify Community and Website teams
165 #. Update downloads page
167 Submit a patch to the ODL docs project to update the
168 `downloads <https://docs.opendaylight.org/en/latest/downloads.html>`_
169 page with the latest binaries and packages **(Release Engineering Team)**
171 #. Email dev/release/tsc mailing lists announcing release binaries location
172 **(Release Engineering Team)**
174 #. Email dev/release/tsc mailing lists to notify of tagging and version bump
176 **(Release Engineering Team)**
180 This step is performed after Version Bump and Tagging steps are
183 - Generate Service Release notes
187 If this is a major release (eg. |release|) as opposed to a Service Release
188 (eg. |release|-SR1). Skip this step.
190 For major releases the notes come from the projects themselves in the docs
191 repository via the `docs/releaset-notes/projects` directory.
193 For service releases (SRs) we need to generate service release notes. This
194 can be performed by running the autorelease-generate-release-notes-$STREAM
197 #. Run the autorelease-generate-release-notes-${STREAM} job
198 **(Release Engineering Team)**
200 Trigger this job by leaving a Gerrit comment
201 ``generate-release-notes Carbon-SR2``
203 Release notes can also be manually generated with the script:
207 git checkout stable/${BRANCH,,}
208 ./scripts/release-notes-generator.sh ${RELEASE}
210 A ``release-notes.rst`` will be generated in the working directory. Submit
211 this file as ``release-notes-sr1.rst`` (update the ``sr`` as necessary) to the