Annotation of ircnowd/doc/HowToRelease.txt, Revision 1.1.1.1
1.1 tomglok 1:
2: ngIRCd - Next Generation IRC Server
3: http://ngircd.barton.de/
4:
5: (c)2001-2021 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 you have working versions of GNU autoconf and GNU automake
39: installed on the system you use for generating the release:
40: as of May 2020 we are using GNU autoconf 2.69 and GNU automake 1.11.6
41: which seem to work just fine.
42: NOTE: new releases of GNU automake DO NOT work, as they lack support for
43: the "ansi2knr" wrapper and "de-ANSI-fication" support!
44:
45: b) Make sure the source tree is in a releasable state ;-)
46: - Are all branches & patches merged? Check GitHub issues, pull requests
47: and milestones!
48: - Run as many tests as you can!
49: - Is the AUTHORS file up to date? This command may be helpful:
50: "( grep '>$' AUTHORS; git shortlog -se | cut -c8- ) | grep -Ev \
51: '(alex@barton.de|fw@strlen.de)' | LC_ALL=de_DE.UTF-8 sort -u"
52:
53: c) Update the files describing the new release:
54: - ChangeLog
55: - NEWS
56:
57: d) Update the version numbers in the following files:
58: - contrib/de.barton.ngircd.metainfo.xml
59: - contrib/ngircd.spec
60:
61: e) Generate a new Debian change log entry in the following file, e.g. using
62: the Debian "dch" tool of the "devscripts" package:
63: - contrib/Debian/changelog
64:
65: f) Commit the above changes to GIT: "git add", "git commit"
66:
67: g) Create a new signed GIT tag for the new release: "git tag -s".
68: Please note that we don't use the tilde ("~") here, instead use a simple
69: hyphen ("-") as delimiter: e.g. "rel-16" "rel-17-rc1", "rel-18-pre2", ...
70:
71: h) Run "./autogen.sh" to update the ./configure script with the correct
72: release number (autogenerated using "git describe", see above).
73:
74: i) Run "./configure" to rebuild all generated Makefiles.
75:
76: j) Run "make distcheck" (and "make dist-tarZ dist-xz") to generate all of the
77: distribution archives.
78:
79: k) Sign the distribution archive(s) using GnuPG: "gpg -b <archivefile>"
80:
81: l) Upload and distribute the newly generated ngIRCd release archive(s)
82: and GnuPG signatures (to the website, its mirrors, and GitHub).
83:
84: m) Update the ngIRCd website and its mirrors!
85:
86: n) Write an announcement to the mailing list, Twitter, ...
87:
88: o) Relax :-)
CVSweb