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.61 and GNU automake 1.10.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 " 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 :-)