12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- ngIRCd - Next Generation IRC Server
- http://ngircd.barton.de/
- (c)2001-2020 Alexander Barton and Contributors.
- 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 you have working versions of GNU autoconf and GNU automake
- installed on the system you use for generating the release:
- as of May 2020 we are using GNU autoconf 2.69 and GNU automake 1.11.6
- which seem to work just fine.
- NOTE: new releases of GNU automake DO NOT work, as they lack support for
- the "ansi2knr" wrapper and "de-ANSI-fication" support!
- b) Make sure the source tree is in a releasable state ;-)
- - Are all branches & patches merged? Check GitHub issues, pull requests
- and milestones!
- - Run as many tests as you can!
- - Is the AUTHORS file up to date? This command may be helpful:
- "( grep '>$' AUTHORS; git shortlog -se | cut -c8- ) | grep -Ev \
- '(alex@barton.de|fw@strlen.de)' | LC_ALL=de_DE.UTF-8 sort -u"
- c) Update the files describing the new release:
- - ChangeLog
- - NEWS
- d) Update the version numbers in the following files:
- - contrib/de.barton.ngircd.metainfo.xml
- - 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" (and "make dist-tarZ dist-xz") to generate all of 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 (to the website, its mirrors, and GitHub).
- m) Update the ngIRCd website and its mirrors!
- n) Write an announcement to the mailing list, Twitter, ...
- o) Relax :-)
|