[cvslog] (2005-11-15 05:14:38 UTC) Module eggdev-docs: Change committed!

cvslog cvs at tsss.org
Mon Nov 14 23:14:38 CST 2005


CVSROOT    : /usr/local/cvsroot
Module     : eggdev-docs
Commit time: 2005-11-15 05:14:38 UTC
Commited by: Will Buckner <wcc at techmonkeys.org>

Added files:
     doc/RELEASE-HOWTO tools/eggcheck

Removed files:
     RELEASE-HOWTO

Log message:

* A bit of modification to the directory structure.
* Added my little 'eggcheck' script to tools/. This is by no means anything
  complete, but it does find a few common errors that keep happening. Maybe
  something that we could improve and run from cron or at least before
  releases.

---------------------- diff included ----------------------
Index: eggdev-docs/RELEASE-HOWTO
diff -u eggdev-docs/RELEASE-HOWTO:1.2 eggdev-docs/RELEASE-HOWTO:removed
--- eggdev-docs/RELEASE-HOWTO:1.2	Sat Oct 15 18:56:50 2005
+++ eggdev-docs/RELEASE-HOWTO	Mon Nov 14 23:14:38 2005
@@ -1,125 +0,0 @@
-$Id: RELEASE-HOWTO,v 1.2 2005/10/15 23:56:50 wcc Exp $
-
-Developer Documentation: Release HOWTO
-Last revised: October 15, 2005
-    _____________________________________________________________________
-
-                                Release HOWTO
-
-
-  1. Test compile (on a couple of different machines if possible) to make
-     sure everything is in order.
-
-  2. Add the release date to doc/UPDATES1.6 and commit.
-
-  3. Run the 'misc/releaseprep' script from the root directory. If this is an
-     RC release, run it as 'misc/releaseprep --rc 1', where 1 is the Release
-     Candidate number.
-
-     This does the following:
-
-       * Changes the default make from "debug" to "eggdrop".
-
-       * Removes patches from patch.h (or, if this is an RC release,
-          it will modify patch.h to indicate a Release Candidate).
-
-       * Removes 'CVS' directories and '.cvsignore' files.
-
-       * Remove the empty doc/web_docs and doc/html/chat directories.
-
-       * Runs 'make distclean'.
-
-       * Creates a default Makefile which instructs the user to run
-         ./configure before typing 'make'.
-
-       * Prints out the current patch. If this is an RC release, it
-         should say "RC1", "RC2", etc. If this is a final release, this
-         should say "(could not detect)".
-
-     NOTE: After running this script, you will not be able to commit, as the
-     'CVS' directories have been removed.
-
-  4. 'cd ..' and then rename the 'eggdrop1.6' CVS directory to 'eggdrop1.6.x'
-     (for example, eggdrop1.6.18).
-
-  5. Download and extract a copy of the previous release. If this is an RC1
-     release, this should be the previous final release of Eggdrop. If this
-     is RC2 or later, you should download both the previous Release Candidate
-     and the previous final release.
-
-  6. Create a diff from the previous version to the version about to be
-     released. For 1.6.18, this would be:
-
-       diff -urN eggdrop1.6.17/ eggdrop1.6.18/ > eggdrop1.6.17-1.6.18.diff
-
-     For 1.6.18RC1, this would be:
-
-       diff -urN eggdrop1.6.17/ eggdrop1.6.18/ > eggdrop1.6.17-1.6.18RC1.diff
-
-    For 1.6.18RC2, this would be:
-
-       diff -urN eggdrop1.6.17/ eggdrop1.6.18/ > eggdrop1.6.17-1.6.18RC2.diff
-       diff -urN eggdrop1.6.18RC1/ eggdrop1.6.18/ > eggdrop1.6.18RC1-1.6.18RC2.diff
-
-  7. Create the archives. You need to create a tar/gzip -9 and a tar/bzip2 -9
-     archive of the eggdrop1.6.##/ directory and a gzip -9 of the diff(s). To
-     speed things up, create the bzip2 archive first, using bzip2 -9 -k, and
-     THEN create the gzip archive. The bzip2 -k option makes bzip2 keep the
-     input file, instead of deleting it.
-
-  8. If you are not the one who will be releasing Eggdrop to the Eggheads FTP
-     mirrors:
-
-       * Move the archive files into a directory of their own (such as
-         "eggrelease/"), and then do a "md5sum *".
-       * Send the archives, along with a copy of the MD5sums, to the person
-         who will be releasing to the mirrors.
-
-  9. Before releasing Eggdrop to the Eggheads FTP mirrors, the MD5sums for all
-     of the files should be verified. After verifing the MD5sums, it's time
-     to sign the archives. Each file needs to have a matching .sig (or .asc).
-     After signing, do an md5sum of all the release files (including the
-     .sig's). This will be needed for the release e-mail.
-
-  10. Extract one of the tarballs and give it a final test-compile.
-
-  11. Now it's time to release Eggdrop to the FTP Mirrors.
-
-  12. Write a release e-mail. It should include:
-
-        * A download link.
-        * A summery of major changes between this release and the last one.
-        * MD5 sums.
-        * A link to the public key which can be used to verify the sigs.
-        * Any notes that you feel should be added.
-
-  13. Send the e-mail to eggdev at eggheads.org.
-
-  14. Announce the release on http://www.eggheads.org/, and then send the release
-      e-mail to eggheads at eggheads.org, as well as alt.irc.bots.eggdrop, and
-      #eggdrop on Undernet.
-
-  15. If this is a final release, the following need to be updated:
-
-        * http://www.eggheads.org/downloads/
-        * www.geteggdrop.com
-        * SourceForge
-        * FreshMeat
-        * Web Docs
-        * Bugzilla (change "1.6.XX CVS" to "1.6.XX")
-
-  16. Celebrate! =P
-
-  17. When starting the next version in CVS:
-
-        * Update bugzilla. Add the new CVS version to products, and close any
-          resolved bugs from the past version.
-
-        * Run the 'misc/newversion' script. This will update all of the
-          version numbers throughout the tree to start a new version. Check the
-          CVS diff to verify, and then commit. Then run 'misc/runautotools' to
-          regenerate the configure scripts, and commit again.
-
-    _____________________________________________________________________
-
-  Copyright (C) 2004 - 2005 Eggheads Development Team
Index: eggdev-docs/doc/RELEASE-HOWTO
diff -u /dev/null eggdev-docs/doc/RELEASE-HOWTO:1.1
--- /dev/null	Mon Nov 14 23:14:38 2005
+++ eggdev-docs/doc/RELEASE-HOWTO	Mon Nov 14 23:14:27 2005
@@ -0,0 +1,125 @@
+$Id: RELEASE-HOWTO,v 1.1 2005/11/15 05:14:27 wcc Exp $
+
+Developer Documentation: Release HOWTO
+Last revised: October 15, 2005
+    _____________________________________________________________________
+
+                                Release HOWTO
+
+
+  1. Test compile (on a couple of different machines if possible) to make
+     sure everything is in order.
+
+  2. Add the release date to doc/UPDATES1.6 and commit.
+
+  3. Run the 'misc/releaseprep' script from the root directory. If this is an
+     RC release, run it as 'misc/releaseprep --rc 1', where 1 is the Release
+     Candidate number.
+
+     This does the following:
+
+       * Changes the default make from "debug" to "eggdrop".
+
+       * Removes patches from patch.h (or, if this is an RC release,
+          it will modify patch.h to indicate a Release Candidate).
+
+       * Removes 'CVS' directories and '.cvsignore' files.
+
+       * Remove the empty doc/web_docs and doc/html/chat directories.
+
+       * Runs 'make distclean'.
+
+       * Creates a default Makefile which instructs the user to run
+         ./configure before typing 'make'.
+
+       * Prints out the current patch. If this is an RC release, it
+         should say "RC1", "RC2", etc. If this is a final release, this
+         should say "(could not detect)".
+
+     NOTE: After running this script, you will not be able to commit, as the
+     'CVS' directories have been removed.
+
+  4. 'cd ..' and then rename the 'eggdrop1.6' CVS directory to 'eggdrop1.6.x'
+     (for example, eggdrop1.6.18).
+
+  5. Download and extract a copy of the previous release. If this is an RC1
+     release, this should be the previous final release of Eggdrop. If this
+     is RC2 or later, you should download both the previous Release Candidate
+     and the previous final release.
+
+  6. Create a diff from the previous version to the version about to be
+     released. For 1.6.18, this would be:
+
+       diff -urN eggdrop1.6.17/ eggdrop1.6.18/ > eggdrop1.6.17-1.6.18.diff
+
+     For 1.6.18RC1, this would be:
+
+       diff -urN eggdrop1.6.17/ eggdrop1.6.18/ > eggdrop1.6.17-1.6.18RC1.diff
+
+    For 1.6.18RC2, this would be:
+
+       diff -urN eggdrop1.6.17/ eggdrop1.6.18/ > eggdrop1.6.17-1.6.18RC2.diff
+       diff -urN eggdrop1.6.18RC1/ eggdrop1.6.18/ > eggdrop1.6.18RC1-1.6.18RC2.diff
+
+  7. Create the archives. You need to create a tar/gzip -9 and a tar/bzip2 -9
+     archive of the eggdrop1.6.##/ directory and a gzip -9 of the diff(s). To
+     speed things up, create the bzip2 archive first, using bzip2 -9 -k, and
+     THEN create the gzip archive. The bzip2 -k option makes bzip2 keep the
+     input file, instead of deleting it.
+
+  8. If you are not the one who will be releasing Eggdrop to the Eggheads FTP
+     mirrors:
+
+       * Move the archive files into a directory of their own (such as
+         "eggrelease/"), and then do a "md5sum *".
+       * Send the archives, along with a copy of the MD5sums, to the person
+         who will be releasing to the mirrors.
+
+  9. Before releasing Eggdrop to the Eggheads FTP mirrors, the MD5sums for all
+     of the files should be verified. After verifing the MD5sums, it's time
+     to sign the archives. Each file needs to have a matching .sig (or .asc).
+     After signing, do an md5sum of all the release files (including the
+     .sig's). This will be needed for the release e-mail.
+
+  10. Extract one of the tarballs and give it a final test-compile.
+
+  11. Now it's time to release Eggdrop to the FTP Mirrors.
+
+  12. Write a release e-mail. It should include:
+
+        * A download link.
+        * A summery of major changes between this release and the last one.
+        * MD5 sums.
+        * A link to the public key which can be used to verify the sigs.
+        * Any notes that you feel should be added.
+
+  13. Send the e-mail to eggdev at eggheads.org.
+
+  14. Announce the release on http://www.eggheads.org/, and then send the release
+      e-mail to eggheads at eggheads.org, as well as alt.irc.bots.eggdrop, and
+      #eggdrop on Undernet.
+
+  15. If this is a final release, the following need to be updated:
+
+        * http://www.eggheads.org/downloads/
+        * www.geteggdrop.com
+        * SourceForge
+        * FreshMeat
+        * Web Docs
+        * Bugzilla (change "1.6.XX CVS" to "1.6.XX")
+
+  16. Celebrate! =P
+
+  17. When starting the next version in CVS:
+
+        * Update bugzilla. Add the new CVS version to products, and close any
+          resolved bugs from the past version.
+
+        * Run the 'misc/newversion' script. This will update all of the
+          version numbers throughout the tree to start a new version. Check the
+          CVS diff to verify, and then commit. Then run 'misc/runautotools' to
+          regenerate the configure scripts, and commit again.
+
+    _____________________________________________________________________
+
+  Copyright (C) 2004 - 2005 Eggheads Development Team
Index: eggdev-docs/tools/eggcheck
diff -u /dev/null eggdev-docs/tools/eggcheck:1.1
--- /dev/null	Mon Nov 14 23:14:38 2005
+++ eggdev-docs/tools/eggcheck	Mon Nov 14 23:14:27 2005
@@ -0,0 +1,132 @@
+#! /bin/bash
+#
+# eggcheck - checks for common errors in the tree.
+#
+# Copyright (C) 2004 - 2005 Eggheads Development Team
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# $Id: eggcheck,v 1.1 2005/11/15 05:14:27 wcc Exp $
+
+show_usage() {
+	echo "Usage: `basename $0` [-h|-c]"
+	echo "  -h - Print this help and exit."
+	echo "  -d - Check docs only."
+	echo "  -c - Colorize output."
+	echo ""
+}
+
+if ! test -f src/patch.h; then
+	echo "You must be in the Eggdrop root directory to run this script." >&2
+	exit 1
+fi
+
+do_color=0
+doc_only=0
+RED=""
+NOCOLOR=""
+GREEN=""
+BLUE=""
+
+while getopts cdh opt; do
+	case $opt in
+		c)
+			do_color=1
+			RED=$'\e[31;01m'
+			GREEN=$'\e[32;01m'
+			BLUE=$'\e[34;01m'
+			NOCOLOR=$'\e[0;0m'
+		;;
+		d)
+			doc_only=1
+		;;
+		h)
+			show_usage
+			exit 0
+		;;
+		*)
+			show_usage
+			exit 1
+		;;
+	esac
+done
+
+errorpipe () {
+	sed "s/^/${RED}Error: ${NOCOLOR}/"
+}
+
+greppipe () {
+	if test $do_color -eq 1; then
+		xargs grep --color=always $@
+	else
+		xargs grep $@
+	fi
+}
+
+find_bad_function() {
+	if test "x${2}" = "x"; then
+		echo -e "${GREEN}Checking for ${1}() usage...${NOCOLOR}"
+	else
+		echo -e "${GREEN}Checking for ${1}() usage instead of ${2}()...${NOCOLOR}"
+	fi
+	find src/ -name '*.[ch]' -print | grep -v 'src/compat' | greppipe -n '[^A-Za-z_]'${1}'(' | errorpipe
+}
+
+# Docs
+echo -e "\n${BLUE}Checking for common doc errors...${NOCOLOR}"
+echo -e "${GREEN}Checking for ' instead of &#39; in HTML docs...${NOCOLOR}"
+find doc/html/ -name '*.html' -print | greppipe -n \' | errorpipe
+echo -e "${GREEN}Checking for <b> instead of <strong> in HTML docs...${NOCOLOR}"
+find doc/html/ -name '*.html' -print | greppipe -n '<[bB]>' | errorpipe
+echo -e "${GREEN}Checking for <i> instead of <em> in HTML docs...${NOCOLOR}"
+find doc/html/ -name '*.html' -print | greppipe -n '<[iI]>' | errorpipe
+echo -e "${GREEN}Checking for use of '©' instead of (C) or &copy;...${NOCOLOR}"
+if test $do_color -eq 1; then
+	grep --color=auto -HIrn '©' * | errorpipe
+else
+	grep -HIrn '©' * | errorpipe
+fi
+
+if test $doc_only = 1; then
+	echo -e "\n${BLUE}Done.${NOCOLOR}\n"
+	exit 0
+fi
+
+# Portability
+echo -e "\n${BLUE}Checking for common portability problems...${NOCOLOR}"
+find_bad_function snprintf egg_snprintf
+find_bad_function memcpy egg_memcpy
+find_bad_function memset egg_memset
+find_bad_function bzero egg_bzero
+find_bad_function strftime egg_strftime
+find_bad_function inet_aton egg_inet_aton
+find_bad_function strncasecmp egg_strncasecmp
+find_bad_function strcasecmp egg_strcasecmp
+
+# Autotools
+echo -e "\n${BLUE}Checking for common autotools problems...${NOCOLOR}"
+echo -e "${GREEN}Checking if configure and configure.ac revisions match...${NOCOLOR}"
+CONFVERSION_AC="x`cat configure.ac | grep AC_REVISION | awk '{print $2}'`"
+CONFVERSION="x`cat configure | grep 'configure.ac Revision:' | awk '{print $5}'`"
+if ! test "${CONFVERSION_AC}" = "${CONFVERSION}"; then
+	echo "${RED}Error: configure is from configure.ac revision ${CONFVERSION} instead of ${CONFVERSION_AC}.${NOCOLOR}"
+fi
+
+echo -e "\n${BLUE}Done.${NOCOLOR}\n"
----------------------- End of diff -----------------------



More information about the Changes mailing list