mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-04 14:09:57 +00:00
90 lines
3.5 KiB
Plaintext
90 lines
3.5 KiB
Plaintext
|
|
ngIRCd - Next Generation IRC Server
|
|
http://ngircd.barton.de/
|
|
|
|
(c)2001-2024 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.md file up to date? This command may be helpful:
|
|
"( grep '>$' AUTHORS.md; git shortlog -se|cut -c8-|sed 's/^/- /' ) \
|
|
| 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 && make 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 :-)
|