Merge "Note that nested formatting isn't supported"
[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 Releasing OpenDaylight
20 ======================
21
22 - Block submit permissions for registered users and elevate RE's committer rights on gerrit.
23
24     .. figure:: images/gerrit-update-committer-rights.png
25
26 - Nexus: click release for staging repo **(Helpdesk)**
27 - Nexus: click release for gpgsign repo (created above in Preparations) **(Helpdesk)**
28 - Send email to Helpdesk with binary URL to update website **(Helpdesk)**
29 - Send email to TSC and Release mailing lists announcing release binaries location **(Release Engineering Team)**
30 - Checkout autorelease and switch to release branch eg stable/carbon
31   **(Release Engineering Team)**
32
33   .. code-block:: bash
34
35         git checkout -b stable/carbon origin/stable/carbon
36         git submodules update
37         git submodule foreach 'git checkout -b stable/carbon origin/stable/carbon || true'
38
39
40 - Make sure your git repo is setup to push (use git-review)
41
42     .. code-block:: bash
43
44         git submodule foreach 'git review -s'
45
46 - Download patches (*.bundle files and taglist.log.gz) from Jenkins build page.
47
48     .. code-block:: bash
49
50         mkdir /tmp/patches && cd /tmp/patches
51         wget -r -A .bundle --accept-regex ".*\.bundle" https://logs.opendaylight.org/releng/jenkins092/autorelease-release-carbon/252/archives/patches/
52         wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-carbon/252/archives/patches/taglist.log.gz
53         gunzip taglist.log.gz
54
55 - Run the following commands for every project in the release, to apply patches to each project directory.
56
57     .. code-block:: bash
58
59         ../scripts/patch-odl-release.sh /tmp/patches Carbon
60         git review -y -t Carbon
61         git push gerrit release/carbon
62
63 - Merge all patches on gerrit in the order generated by merge-order.log
64
65 - Tag autorelease too
66
67     .. code-block:: bash
68
69         git checkout `cat /tmp/patches/taglist.log | grep autorelease | awk '{print $2}'`
70         git submodule foreach git checkout release/carbon
71         git add [add each project individually to not pull in extra]
72         git commit -asSm "Release carbon"
73         git tag -asm "OpenDaylight Carbon release" release/carbon
74         git review -y -t Carbon
75         git push gerrit release/carbon
76
77 - Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit.
78
79 - Generate release notes (???)
80 - Send email to release/tsc/dev notifying tagging and version bump complete **(Release Engineering Team)**