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