File: HowToRelease.txt

package info (click to toggle)
ngircd 22-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,716 kB
  • ctags: 1,505
  • sloc: ansic: 18,850; sh: 4,829; makefile: 633; xml: 220
file content (77 lines) | stat: -rw-r--r-- 2,869 bytes parent folder | download
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

                     ngIRCd - Next Generation IRC Server

                        (c)2001-2010 Alexander Barton,
                    alex@barton.de, http://www.barton.de/

               ngIRCd is free software and published under the
                   terms of the GNU General Public License.

                            -- HowToRelease.txt --


I. Introduction
~~~~~~~~~~~~~~~

Creating a new ngIRCd release requires a few steps to follow: the source
tree must be in a releasable state (be up to date, include all required
patches, be tested on as many platforms as possible), a name for the new
release must be chosen, and all the files describing the release must be
updated accordingly.

Since ngIRCd release 13 (2009-12-25) we use "simple" release numbers for
major releases (e.g. "13", "17", "42", ...) introducing new features and
sub-releases for bug fixes only (e.g. "14.1", "22.3", ...).

When creating pre-releases or release candidates, please use the tilde ("~")
character to separate the "postfix" in the release number (e.g. "17~rc2"
or "123.4~rc6").

The release/version number of a build is automatically generated using the
GIT "describe" command, see git-describe(1). Therefore it is required that
a new release is tagged in the GIT tree and that the configure script is
up-to-date (e.g. using ./autogen.sh) before generating the archives!


II. How to prepare a new ngIRCd release?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

a) Make sure the source tree is in a releasable state ;-)

b) Make sure you have working versions of GNU autoconf and GNU automake
   installed on the system you use for generating the release:
   as of October 2010 we are using GNU autoconf 2.67 and GNU automake 1.11.1
   which seem to work just fine.

c) Update the files describing the new release:
    - ChangeLog
    - NEWS

d) Update the version numbers in the following files:
    - contrib/ngircd.spec

e) Generate a new Debian change log entry in the following file, e.g. using
   the Debian "dch" tool of the "devscripts" package:
    - contrib/Debian/changelog

f) Commit the above changes to GIT: "git add", "git commit"

g) Create a new signed GIT tag for the new release: "git tag -s".
   Please note that we don't use the tilde ("~") here, instead use a simple
   hyphen ("-") as delimiter: e.g. "rel-16" "rel-17-rc1", "rel-18-pre2", ...

h) Run "./autogen.sh" to update the ./configure script with the correct
   release number (autogenerated using "git describe", see above).

i) Run "./configure" to rebuild all generated Makefiles.

j) Run "make distcheck" to generate the distribution archives.

k) Sign the distribution archive(s) using GnuPG: "gpg -b <archivefile>"

l) Upload and distribute the newly generated ngIRCd release archive(s)
   and GnuPG signatures.

m) Write an announcement to the mailing list, freshmeat, Twitter, ...

n) Relax :-)