Annotation of ircnowd/doc/HowToRelease.txt, Revision 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