]> granicus.if.org Git - icinga2/blob - RELEASE.md
Release version 2.5.3
[icinga2] / RELEASE.md
1 # Release Workflow
2
3 Print this document.
4
5 ## Issues
6
7 Check the following issue filters:
8
9 * [Pending backports](https://dev.icinga.org/projects/i2/issues?query_id=41)
10 * [Invalid target version](https://dev.icinga.org/projects/i2/issues?query_id=55)
11
12 ## Backport Commits
13
14     $ git checkout master
15     $ ./pick.py -V 2.5.3
16
17 The script creates a new branch 'auto-merged-2.5.3' which is based on the
18 current support branch. It then merges all commits from the 'master' branch which
19 reference a ticket for the version that was specified.
20
21 If there are any merge commits you will need to manually fix them and continue the
22 rebase until no commits are left:
23
24     $ git rebase --continue
25
26 After finishing the rebase the branch needs to be merged into the support branch:
27
28     $ git checkout support/2.5
29     $ git merge --ff-only auto-merged-2.5.3
30
31 ## Authors
32
33 Update the [.mailmap](.mailmap) and [AUTHORS](AUTHORS) files:
34
35     $ git checkout master
36     $ git log --use-mailmap | grep ^Author: | cut -f2- -d' ' | sort | uniq > AUTHORS
37
38 ## Version
39
40 Update the version number in the following files:
41
42 * [icinga2.spec]: Version: (.*)
43 * [icinga2.nuspec]: <version>(.*)</version>
44 * [tools/chocolateyInstall.ps1]: Icinga2-v(.*)-{x86,x86_64}.msi
45
46 ## Changelog
47
48 Update the [ChangeLog](ChangeLog), [doc/1-about.md](doc/1-about.md) files using
49 the changelog.py script. Also generate HTML for the wordpress release announcement.
50
51 Changelog:
52
53     $ ./changelog.py -V 2.5.0
54
55 Docs:
56
57     $ ./changelog.py -V 2.5.0 -l
58
59 Wordpress:
60
61     $ ./changelog.py -V 2.5.0 -H -l
62
63 ## Git Tag
64
65 Commit these changes to the "master" branch:
66
67     $ git commit -v -a -m "Release version <VERSION>"
68
69 For minor releases: Cherry-pick this commit into the "support" branch.
70
71 Create a signed tag (tags/v<VERSION>) on the "master" branch (for major
72 releases) or the "support" branch (for minor releases).
73
74 GB:
75
76     $ git tag -u EE8E0720 -m "Version <VERSION>" v<VERSION>
77
78 MF:
79
80     $ git tag -u D14A1F16 -m "Version <VERSION>" v<VERSION>
81
82 Push the tag.
83
84     $ git push --tags
85
86 For major releases: Create a new "support" branch:
87
88     $ git checkout master
89     $ git checkout -b support/2.5
90     $ git push -u origin support/2.5
91
92 For minor releases: Push the support branch, cherry-pick the release commit
93 into master and merge the support branch:
94
95     $ git push -u origin support/2.5
96     $ git checkout master
97     $ git cherry-pick support/2.5
98     $ git merge --strategy=ours support/2.5
99     $ git push origin master
100
101 # External Dependencies
102
103 ## Build Server
104
105 * Update Git tags for the release jobs.
106 * Build the newly created Git tag for Debian/RHEL/SuSE.
107 * Build the newly created Git tag for Windows.
108
109 ## Release Tests
110
111 * Test DB IDO with MySQL and PostgreSQL.
112 * Provision the vagrant boxes and test the release packages.
113 * Test the [setup wizard](http://packages.icinga.org/windows/) inside a Windows VM.
114
115 * Start a new docker container and install/run icinga2.
116
117 Example for CentOS7:
118
119     $ docker run -ti centos:latest bash
120
121     # yum -y install http://packages.icinga.org/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
122     # yum -y install icinga2
123     # icinga2 daemon -C
124
125     # systemctl start icinga2
126     # tail -f /var/log/icinga2/icinga2.log
127
128 ## GitHub Release
129
130 Create a new release for the newly created Git tag.
131 https://github.com/Icinga/icinga2/releases
132
133 ## Chocolatey
134
135 Navigate to the git repository on your Windows box which
136 already has chocolatey installed. Pull/checkout the release.
137
138 Create the nupkg package:
139
140     cpack
141
142 Install the created icinga2 package locally:
143
144     choco install icinga2 -version 2.5.3 -fdv "%cd%" -source "'%cd%;https://chocolatey.org/api/v2/'"
145
146 Upload the package to [chocolatey](https://chocolatey.org/packages/upload).
147
148 ## Online Documentation
149
150 SSH into the web box, navigate into `icinga2-latest/module/icinga2`
151 and pull the current support branch.
152
153 ## Announcement
154
155 * Create a new blog post on www.icinga.org/blog
156 * Send announcement mail to icinga-announce@lists.icinga.org
157 * Social media: [Twitter](https://twitter.com/icinga), [Facebook](https://www.facebook.com/icinga), [G+](http://plus.google.com/+icinga), [Xing](https://www.xing.com/communities/groups/icinga-da4b-1060043), [LinkedIn](https://www.linkedin.com/groups/Icinga-1921830/about)
158 * Update IRC channel topic
159
160 # After the release
161
162 * Add new minor version
163 * Close the released version
164 * Update Redmine filters for the next major/minor version