Merge "ODL BGP LS PCEP release notes"
[docs.git] / docs / release-process / simultaneous-release.rst
1 ********************
2 Simultaneous Release
3 ********************
4
5 This page explains how the OpenDaylight release process works once the TSC has
6 approved a release.
7
8 Preparations
9 ============
10
11 After release candidate is built gpg sign artifacts using odlsign-bulk script in
12 **releng/builder/scripts**.
13
14 .. code-block:: bash
15
16     cd scripts/
17     ./odlsign-bulk STAGING_REPO_ID  # eg. autorelease-1367
18
19 Verify the distribution-karaf file with the signature.
20
21 .. code-block:: bash
22
23     gpg2 --verify distribution-karaf-x.y.z-${RELEASE}.tar.gz.asc distribution-karaf-x.y.z-${RELEASE}.tar.gz
24
25
26 Releasing OpenDaylight
27 ======================
28
29 - Block submit permissions for registered users and elevate RE's committer
30   rights on Gerrit.
31   **(Helpdesk)**
32
33   .. figure:: images/gerrit-update-committer-rights.png
34
35   .. note::
36
37      Enable **Exclusive** checkbox for the submit button to override any
38      existing persmissions. Code-Review and Verify permissions are only needed
39      during version bumping. DO NOT enable it during code freeze.
40
41 - Nexus: click release for staging repo
42   **(Helpdesk)**
43
44 - Nexus: click release for gpgsign repo (created above in Preparations)
45   **(Helpdesk)**
46
47 - Pull latest autorelease repository
48   **(Release Engineering Team)**
49
50   .. note:: If you already cloned autorelease the clone line can be skipped below.
51
52   .. code-block:: bash
53
54       git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
55       cd autorelease
56       git submodule update --init
57       git review -s
58       git submodule foreach 'git review -s'
59
60 - Make sure the latest lftools is installed
61   **(Release Engineering Team)**
62
63   .. note:: If you already created an lftools virtualenv you can skip the mkvirtualenv step below.
64
65   .. code-block:: bash
66
67       mkvirtualenv lftools
68       workon lftools
69       pip install --upgrade lftools
70
71 - Publish release tags
72   **(Release Engineering Team)**
73
74   .. code-block:: bash
75
76       export RELEASE=Beryllium-SR4
77       export STREAM=${RELEASE//-*}
78       export BUILD_NUM=55
79       export PATCH_URL="https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${STREAM,,}/${BUILD_NUM}/archives/patches.tar.gz"
80       ./scripts/release-tags.sh "${RELEASE}" /tmp/patches "$PATCH_URL"
81
82 - Run autorelease-version-bump-${STREAM} job
83   **(Release Engineering Team)**
84
85 - Send email to Helpdesk with binary URL to update website
86   **(Helpdesk)**
87
88 - Send email to TSC and Release mailing lists announcing release binaries location
89   **(Release Engineering Team)**
90
91 - Merge all patches generated by the job
92   **(Release Engineering Team)**
93
94 - Re-enable submit permissions for registered users and disable elevated RE
95   committer rights on gerrit
96   **(Helpdesk)**
97
98 - Send email to release/tsc/dev notifying tagging and version bump complete
99   **(Release Engineering Team)**
100
101 - Run autorelease-generate-release-notes-${STREAM} job
102   **(Release Engineering Team)**
103
104   This job is run a the end of every autorelease build can be used only for
105   service releases (SR). The release notes file (release_notes.rst) is available
106   under archives. For major releases (Nitrogen, Carbon) the docs repository has
107   to branched and published which is only done after release reviews are
108   completed.
109
110   Release notes can also be manually generated with the script.
111
112   .. code-block:: bash
113
114       git checkout stable/${BRANCH,,}
115       cd scripts/release_notes_management/ && ./build.sh
116
117   The output file (release_notes.rst) generated by the build script is available
118   under autorelease/scripts/release_notes_management/projects/.