This repository has been archived by the owner on Dec 28, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakerelease.html
141 lines (128 loc) · 7 KB
/
makerelease.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
---
layout: default
title: Making a Licq Release
---
<h1>Making a Licq Release</h1>
<p>This page means to document all the steps needed for building an offical Licq package and releasing it.</p>
<h2>Prerequisites</h2>
<p>The following is needed to create a package</p>
<ul>
<li>GIT client and build environment for normal Licq development.</li>
<li>GnuPG installed and a default key created (this will be used to sign the package).</li>
</ul>
<p>The following is needed to create an offical release:</p>
<ul>
<li>GIT access with privileges to commit changes.</li>
<li>Access to Licq project on <a href="http://sourceforge.net/projects/licq/">SourceForge</a> with privileges to upload new packages.</li>
<li>Membership in <a href="mailinglists.html">Licq mailing lists</a> to post announcement in licq-announce, licq-dev and licq-users.</li>
</ul>
<h2>Preparations</h2>
<p>The following things should be ready before releasing a new version:</p>
<ul>
<li>Update the <tt>doc/CHANGELOG</tt> file.</li>
<li>Replace the development contents of the <tt>README</tt> with text relevant for the upcoming release.</li>
<li>Update the Licq version in the build files. Note that this must be done
for the daemon and for each plugin.<br/> For Licq this is done in the
file <tt>licq/cmake/LicqVersion.cmake</tt> and for plugins in the
file <tt><plugin>/version.cmake</tt>
(using <tt>scripts/set-version</tt> makes it easier).</li>
<li>Update the Licq version in <tt>licq/doc/README</tt> and <tt>licqweb/README</tt>.</li>
<li>Make sure the copyright year in <tt>licq/LICENSE</tt> includes the current year.</li>
</ul>
<h2>Building a Package</h2>
<p>To create a package, perform the following steps:</p>
<ol>
<li>Clone the Licq repository if you don't already have a source tree.</li>
<li>Create a git tag.</li>
<li>Create tarball from the git tag and sign it.</li>
<li>Push the tag.</li>
</ol>
<p>Full Example:</p>
<pre>
# git tag -a licq-1.5.1 1.5-stable
# ./scripts/create-licq-tarball -b -s -t licq-1.5.1
# git push --tags
</pre>
<h2>Distributing and Announcing</h2>
<p>An official release should be distributed and announced at the following locations:</p>
<ul>
<li>Upload packages and sign files to <a href="http://sourceforge.net/projects/licq/">SourceForge</a> or have someone else do if it you do not have access yourself.</li>
<li>Update <a href="download.html">the download page</a> with links to the new files.<!-- Also link to the public GnuPG key needed to verify the signed packages.--></li>
<li>Update <a href="index.html">the front page</a> with the latest version.</li>
<li>Create a <a href="news.html">news entry</a> for the start page announcing the new release.</li>
<li>Post an announcement to the <a href="mailinglists.html">Licq mailing lists</a> licq-announce, licq-dev and licq-users.</li>
<li>Create news entry on <a href="http://sourceforge.net/projects/licq/">SourceForge</a>.</li>
<li>Announce the new version on <a href="http://www.freshmeat.net/">FreshMeat</a>.</li>
</ul>
<!--
<h2>Release Plan</h2>
<p>First and most importantly, a release should only be performed when the release branch is stable and fully usable. Wait for ongoing changes to be completed rather then releasing in the middle of a high activity period.</p>
<p>Make a first release candidate (package with suffix <tt>-rc1</tt>) and release according to instructions above.</p>
<p>When a release candidate has been released a code freeze should be in place with the following exceptions:</p>
<ul>
<li>Bug fixes (Important corrections must be performed before the final release.)</li>
<li>Translations (Translation files can be updated without affecting the release and translators may need the extra time as well.)</li>
<li>Editorial changes (Comments and documentation files can be modified without affecting the release, however avoid changing translatable text strings as this might affect translations.)</li>
</ul>
<p>After two weeks has passed, either make a new release candidate (<tt>-rc2</tt>) or a final release.<br/>
A guideline for which to do is that if no bugfixes (or other code changes) has been made since the last release candidate then a final release can be made.<br/>
If any changes were needed, make a new release candidate instead. If for some reason the first release candidate had serious problems you might want to make the second release candidate sooner than the planned two weeks.</p>
<p>If release candidate two was needed, wait another week and check again if a final release can be made or if a third release candidate is needed.<br/>
It should be enough to wait two weeks only after the first release candidate. After the second release candidate wait one week between each release.</p>
-->
<h2>After Releasing</h2>
<p>After the release is complete, the following steps should also be performed.</p>
<ul>
<li>In the release branch, update the Licq version for next maintenance release (for example <tt>licq-1.6.4</tt> becomes <tt>licq-1.6.5-dev</tt>).</li>
<li>In the release branch, move the release specific <tt>licq/README</tt> to <tt>licq/doc/README-<version></tt> and restore the development text in <tt>licq/README</tt>.</li>
</ul>
<!--
<h2>Branching</h2>
<p>The following is an example of how to branch for a main release and which changes go where. (Top posted to match git log.)</p>
<pre>
... (Development as usual until next release)
| |
* | Merge 1.6-stable (Keep licq/doc/README-1.6.0, ignore the version changes)
|\|
| * Update licq version (from 1.6.0 to 1.6.1-dev)
| * Restore development README (also moves current to licq/doc/README-1.6.0)
| * (tag: licq-1.6.0) Update licq version (from 1.6.0-rc1 to 1.6.0)
| * If needed, merge translations again before releasing
| |
... (Fix whatever problems are found in 1.6-stable, development as usual in master)
| |
* | Merge 1.6-stable (Update version from 1.6.0-dev to 1.7.0-dev and keep licq/README development text)
|\|
| * (tag: licq-1.6.0-rc1) Update licq version (from 1.6.0-dev to 1.6.0-rc1)
| * Update licq/README
|/
* Update changelog (add anything that's missing, clean up text and merge 1.5.2 with 1.6.0)
* Clean merge all translations (licq, osd and qt4-gui)
|
...
</pre>
<p>The following is an example of a maintenance release.</p>
<pre>
... (Development as usual until next release)
| |
* | Merge 1.6-stable (Keep licq/doc/README-1.6.1, ignore the version changes)
|\|
| * Update licq version (from 1.6.1 to 1.6.2-dev)
| * Restore development README (also moves current to licq/doc/README-1.6.1)
| * (tag: licq-1.6.1) Update licq version (from 1.6.1-rc1 to 1.6.1)
| * If needed, merge translations again before releasing
| |
... (Fix whatever problems are found in 1.6-stable, development as usual in master)
| |
* | Merge 1.6-stable (changelog only, ignore the rest)
|\|
| * (tag: licq-1.6.1-rc1) Update licq version (from 1.6.1-dev to 1.6.1-rc1)
| * Update licq/README
| * Update changelog if needed (add anything that's missing and clean up text)
* | Merge 1.6-stable (just ignore changes from branch and merge translations again)
|\|
| * Merge all translations
| |
...
</pre>
-->