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