e78bc8e3b3781e5c5f2299ad0fc181b9541ff4ba
[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 rights on gerrit. **(Helpdesk)**
30
31   .. figure:: images/gerrit-update-committer-rights.png
32
33   .. note::
34
35      Enable Exclusive checkbox
36
37 - Export ${RELEASE} and ${BUILDNUM} with current release name and build number.
38
39   .. code-block:: bash
40
41      export RELEASE=Beryllium-SR4
42      export BRANCH=${RELEASE//-*}
43      export BUILDNUM=55
44
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)**
50
51   .. code-block:: bash
52
53       git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
54
55 - Checkout autorelease and switch to release branch eg stable/carbon **(Release Engineering Team)**
56
57   .. code-block:: bash
58
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,,}
62
63 - Make sure your git repo is setup to push (use git-review)
64
65   .. code-block:: bash
66
67       git review -s
68       git submodule foreach 'git review -s'
69
70 - Download patches (\*.bundle files and taglist.log.gz) from log server.
71
72   .. code-block:: bash
73
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
78       gunzip taglist.log.gz
79
80 - Run the following commands for every project in the release, to apply patches to each project directory.
81
82   .. code-block:: bash
83
84       pip install lftools
85       lftools version patch ${RELEASE}
86       git review -y -t ${RELEASE}
87       git push gerrit release/${RELEASE,,}
88
89 - Merge all patches on gerrit in the order generated by merge-order.log
90
91 - Tag autorelease too
92
93   .. code-block:: bash
94
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,,}
100
101 - Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit.
102
103 - Generate release notes (???)
104
105 - Send email to release/tsc/dev notifying tagging and version bump complete **(Release Engineering Team)**