]> granicus.if.org Git - icinga2/blob - RELEASE.md
Update RELEASE.md
[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 * [Valid target version](https://dev.icinga.org/projects/i2/issues?query_id=55)
11
12 ## Authors
13
14 Update the [.mailmap](.mailmap) and [AUTHORS](AUTHORS) files:
15
16     $ git log --use-mailmap | grep ^Author: | cut -f2- -d' ' | sort | uniq > AUTHORS
17
18 ## Version
19
20 Update the version number in the following files:
21
22 * [icinga2.spec]: Version: (.*)
23 * [icinga2.nuspec]: <version>(.*)</version>
24 * [tools/chocolateyInstall.ps1]: Icinga2-v(.*).exe
25
26 ## Changelog
27
28 Update the [ChangeLog](ChangeLog), [doc/1-about.md](doc/1-about.md) files using
29 the changelog.py script. Also generate HTML for the wordpress release announcement.
30
31 Changelog:
32
33     $ ./changelog.py --version 2.4.0 --project i2
34
35 Docs:
36
37     $ ./changelog.py --version 2.4.0 --project i2 --links
38
39 Wordpress:
40
41     $ ./changelog.py --version 2.4.0 --project i2 --html --links
42
43 ## Git Tag
44
45 Commit these changes to the "master" branch:
46
47     $ git commit -v -a -m "Release version <VERSION>"
48
49 For minor releases: Cherry-pick this commit into the "support" branch.
50
51 Create a signed tag (tags/v<VERSION>) on the "master" branch (for major
52 releases) or the "support" branch (for minor releases).
53
54 GB:
55
56     $ git tag -u EE8E0720 -m "Version <VERSION>" v<VERSION>
57
58 MF:
59
60     $ git tag -u D14A1F16 -m "Version <VERSION>" v<VERSION>
61
62 Push the tag.
63
64     $ git push --tags
65
66 For major releases: Create a new "support" branch:
67
68     $ git checkout master
69     $ git checkout -b support/2.4
70     $ git push -u origin support/2.4
71
72 For minor releases: Push the support branch, cherry-pick the release commit
73 into master and merge the support branch:
74
75     $ git push -u origin support/2.4
76     $ git checkout master
77     $ git cherry-pick support/2.4
78     $ git merge --strategy=ours support/2.4
79     $ git push origin master
80
81 # External Dependencies
82
83 ## Build Server
84
85 * Update Git tags for the release jobs.
86
87 ### Linux
88
89 * Build the newly created Git tag for Debian/RHEL/SuSE.
90 * Provision the vagrant boxes and test the release packages.
91 * Start a new docker container and install/run icinga2
92
93 Example for CentOS7:
94
95     $ sudo docker run -ti centos:latest bash
96
97     # yum -y install http://packages.icinga.org/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
98     # yum -y install icinga2
99     # icinga2 daemon -C
100
101     # systemctl start icinga2
102     # tail -f /var/log/icinga2/icinga2.log
103
104 ### Windows
105
106 * Build the newly created Git tag for Windows.
107 * Test the [setup wizard](http://packages.icinga.org/windows/) inside a Windows VM.
108
109 ## GitHub Release
110
111 Create a new release for the newly created Git tag.
112 https://github.com/Icinga/icinga2/releases
113
114 ## Online Documentation
115
116 SSH into the web box, navigate into `icinga2-latest/module/icinga2`
117 and pull the current icinga2 revision to update what's new".
118
119 ## Announcement
120
121 * Create a new blog post on www.icinga.org/blog
122 * Send announcement mail to icinga-announce@lists.icinga.org
123 * 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)
124 * Update IRC channel topic
125
126 # After the release
127
128 * Add new minor version
129 * Update Redmine filters for the next major/minor version