]> granicus.if.org Git - icinga2/blob - RELEASE.md
Replace http:// links with https:// links where a secure website exists
[icinga2] / RELEASE.md
1 # Release Workflow
2
3 Print this document.
4
5 Specify the release version.
6
7     VERSION=2.6.3
8
9 ## Issues
10
11 Check issues at https://github.com/Icinga/icinga2
12
13 ## Backport Commits
14
15 For minor versions you need to manually backports any and all commits from the
16 master branch which should be part of this release.
17
18 ## Authors
19
20 Update the [.mailmap](.mailmap) and [AUTHORS](AUTHORS) files:
21
22     $ git checkout master
23     $ git log --use-mailmap | grep ^Author: | cut -f2- -d' ' | sort | uniq > AUTHORS
24
25 ## Version
26
27 Update the version number in the following file:
28
29 * [icinga2.spec]: Version: (.*)
30
31 Example:
32
33     gsed -i "s/Version: .*/Version: $VERSION/g" icinga2.spec
34
35 ## Changelog
36
37 Update the [ChangeLog](ChangeLog), [doc/1-about.md](doc/1-about.md) files. Also generate HTML
38 for the wordpress release announcement.
39
40 ## Git Tag
41
42 Commit these changes to the "master" branch:
43
44     $ git commit -v -a -m "Release version $VERSION"
45
46 For minor releases: Cherry-pick this commit into the "support" branch.
47
48 Create a signed tag (tags/v<VERSION>) on the "master" branch (for major
49 releases) or the "support" branch (for minor releases).
50
51 GB:
52
53     $ git tag -u EE8E0720 -m "Version $VERSION" v$VERSION
54
55 MF:
56
57     $ git tag -u D14A1F16 -m "Version $VERSION" v$VERSION
58
59 Push the tag.
60
61     $ git push --tags
62
63 For major releases: Create a new "support" branch:
64
65     $ git checkout master
66     $ git checkout -b support/2.6
67     $ git push -u origin support/2.6
68
69 For minor releases: Push the support branch, cherry-pick the release commit
70 into master and merge the support branch:
71
72     $ git push -u origin support/2.6
73     $ git checkout master
74     $ git cherry-pick support/2.6
75     $ git merge --strategy=ours support/2.6
76     $ git push origin master
77
78 # External Dependencies
79
80 ## Build Server
81
82 * Verify package build changes for this version.
83 * Test the snapshot packages for all distributions beforehand.
84 * Build the newly created Git tag for Debian/RHEL/SuSE.
85 * Build the newly created Git tag for Windows.
86
87 ## Release Tests
88
89 * Test DB IDO with MySQL and PostgreSQL.
90 * Provision the vagrant boxes and test the release packages.
91 * Test the [setup wizard](https://packages.icinga.com/windows/) inside a Windows VM.
92
93 * Start a new docker container and install/run icinga2.
94
95 Example for CentOS7:
96
97     $ docker run -ti centos:latest bash
98
99     # yum -y install https://packages.icinga.com/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
100     # yum -y install icinga2
101     # icinga2 daemon -C
102
103     # systemctl start icinga2
104     # tail -f /var/log/icinga2/icinga2.log
105
106 ## GitHub Release
107
108 Create a new release for the newly created Git tag.
109 https://github.com/Icinga/icinga2/releases
110
111 ## Chocolatey
112
113 Navigate to the git repository on your Windows box which
114 already has chocolatey installed. Pull/checkout the release.
115
116 Create the nupkg package:
117
118     cpack
119
120 Install the created icinga2 package locally:
121
122     choco install icinga2 -version 2.6.3 -fdv "%cd%" -source "'%cd%;https://chocolatey.org/api/v2/'"
123
124 Upload the package to [chocolatey](https://chocolatey.org/packages/upload).
125
126 ## Online Documentation
127
128 SSH into the web box, navigate into `icinga2-latest/module/icinga2`
129 and pull the current support branch.
130
131 ## Announcement
132
133 * Create a new blog post on www.icinga.com/blog
134 * Send announcement mail to icinga-announce@lists.icinga.org
135 * Social media: [Twitter](https://twitter.com/icinga), [Facebook](https://www.facebook.com/icinga), [G+](https://plus.google.com/+icinga), [Xing](https://www.xing.com/communities/groups/icinga-da4b-1060043), [LinkedIn](https://www.linkedin.com/groups/Icinga-1921830/about)
136 * Update IRC channel topic
137
138 # After the release
139
140 * Add new minor version
141 * Close the released version
142 * Update Redmine filters for the next major/minor version