[BACK]Return to HowToRelease.txt CVS log [TXT][DIR] Up to [local] / ircnowd / doc

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