]> arthur.barton.de Git - ngircd-alex.git/blob - doc/HowToRelease.txt
Fix compiler warning in Option_String()
[ngircd-alex.git] / doc / HowToRelease.txt
1
2                      ngIRCd - Next Generation IRC Server
3                            http://ngircd.barton.de/
4
5                (c)2001-2017 Alexander Barton and Contributors.
6                ngIRCd is free software and published under the
7                    terms of the GNU General Public License.
8
9                             -- HowToRelease.txt --
10
11
12 I. Introduction
13 ~~~~~~~~~~~~~~~
14
15 Creating a new ngIRCd release requires a few steps to follow: the source
16 tree must be in a releasable state (be up to date, include all required
17 patches, be tested on as many platforms as possible), a name for the new
18 release must be chosen, and all the files describing the release must be
19 updated accordingly.
20
21 Since ngIRCd release 13 (2009-12-25) we use "simple" release numbers for
22 major releases (e.g. "13", "17", "42", ...) introducing new features and
23 sub-releases for bug fixes only (e.g. "14.1", "22.3", ...).
24
25 When creating pre-releases or release candidates, please use the tilde ("~")
26 character to separate the "postfix" in the release number (e.g. "17~rc2"
27 or "123.4~rc6").
28
29 The release/version number of a build is automatically generated using the
30 GIT "describe" command, see git-describe(1). Therefore it is required that
31 a new release is tagged in the GIT tree and that the configure script is
32 up-to-date (e.g. using ./autogen.sh) before generating the archives!
33
34
35 II. How to prepare a new ngIRCd release?
36 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
38 a) Make sure the source tree is in a releasable state ;-)
39     - is the AUTHORS file up to date?
40
41 b) Make sure you have working versions of GNU autoconf and GNU automake
42    installed on the system you use for generating the release:
43    as of October 2010 we are using GNU autoconf 2.67 and GNU automake 1.11.1
44    which seem to work just fine.
45
46 c) Update the files describing the new release:
47     - ChangeLog
48     - NEWS
49
50 d) Update the version numbers in the following files:
51     - contrib/ngircd.spec
52
53 e) Generate a new Debian change log entry in the following file, e.g. using
54    the Debian "dch" tool of the "devscripts" package:
55     - contrib/Debian/changelog
56
57 f) Commit the above changes to GIT: "git add", "git commit"
58
59 g) Create a new signed GIT tag for the new release: "git tag -s".
60    Please note that we don't use the tilde ("~") here, instead use a simple
61    hyphen ("-") as delimiter: e.g. "rel-16" "rel-17-rc1", "rel-18-pre2", ...
62
63 h) Run "./autogen.sh" to update the ./configure script with the correct
64    release number (autogenerated using "git describe", see above).
65
66 i) Run "./configure" to rebuild all generated Makefiles.
67
68 j) Run "make distcheck" to generate the distribution archives.
69
70 k) Sign the distribution archive(s) using GnuPG: "gpg -b <archivefile>"
71
72 l) Upload and distribute the newly generated ngIRCd release archive(s)
73    and GnuPG signatures.
74
75 m) Write an announcement to the mailing list, Twitter, ...
76
77 n) Relax :-)