HowToRelease.txt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ngIRCd - Next Generation IRC Server
  2. (c)2001-2010 Alexander Barton,
  3. alex@barton.de, http://www.barton.de/
  4. ngIRCd is free software and published under the
  5. terms of the GNU General Public License.
  6. -- HowToRelease.txt --
  7. I. Introduction
  8. ~~~~~~~~~~~~~~~
  9. Creating a new ngIRCd release requires a few steps to follow: the source
  10. tree must be in a releasable state (be up to date, include all required
  11. patches, be tested on as many platforms as possible), a name for the new
  12. release must be chosen, and all the files describing the release must be
  13. updated accordingly.
  14. Since ngIRCd release 13 (2009-12-25) we use "simple" release numbers for
  15. major releases (e.g. "13", "17", "42", ...) introducing new features and
  16. sub-releases for bug fixes only (e.g. "14.1", "22.3", ...).
  17. When creating pre-releases or release candidates, please use the tilde ("~")
  18. character to separate the "postfix" in the release number (e.g. "17~rc2"
  19. or "123.4~rc6").
  20. The release/version number of a build is automatically generated using the
  21. GIT "describe" command, see git-describe(1). Therefore it is required that
  22. a new release is tagged in the GIT tree and that the configure script is
  23. up-to-date (e.g. using ./autogen.sh) before generating the archives!
  24. II. How to prepare a new ngIRCd release?
  25. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  26. a) Make sure the source tree is in a releasable state ;-)
  27. b) Make sure you have working versions of GNU autoconf and GNU automake
  28. installed on the system you use for generating the release:
  29. as of October 2010 we are using GNU autoconf 2.67 and GNU automake 1.11.1
  30. which seem to work just fine.
  31. c) Update the files describing the new release:
  32. - ChangeLog
  33. - NEWS
  34. d) Update the version numbers in the following files:
  35. - contrib/ngircd.spec
  36. e) Generate a new Debian change log entry in the following file, e.g. using
  37. the Debian "dch" tool of the "devscripts" package:
  38. - contrib/Debian/changelog
  39. f) Commit the above changes to GIT: "git add", "git commit"
  40. g) Create a new signed GIT tag for the new release: "git tag -s".
  41. Please note that we don't use the tilde ("~") here, instead use a simple
  42. hyphen ("-") as delimiter: e.g. "rel-16" "rel-17-rc1", "rel-18-pre2", ...
  43. h) Run "./autogen.sh" to update the ./configure script with the correct
  44. release number (autogenerated using "git describe", see above).
  45. i) Run "./configure" to rebuild all generated Makefiles.
  46. j) Run "make distcheck" to generate the distribution archives.
  47. k) Sign the distribution archive(s) using GnuPG: "gpg -b <archivefile>"
  48. l) Upload and distribute the newly generated ngIRCd release archive(s)
  49. and GnuPG signatures.
  50. m) Write an announcement to the mailing list, freshmeat, Twitter, ...
  51. n) Relax :-)