added some documentation about what's need to be done for a release and a bash-releas...
authorArun Persaud <arun@nubati.net>
Sun, 4 Mar 2012 22:52:34 +0000 (14:52 -0800)
committerArun Persaud <arun@nubati.net>
Sun, 4 Mar 2012 23:05:35 +0000 (15:05 -0800)
doc-maint/coding-standards.org [new file with mode: 0644]
doc-maint/gendocs.sh [new file with mode: 0755]
doc-maint/make-xboard-release [new file with mode: 0644]
doc-maint/release.org [new file with mode: 0644]
doc-maint/web-pages.org [new file with mode: 0644]

diff --git a/doc-maint/coding-standards.org b/doc-maint/coding-standards.org
new file mode 100644 (file)
index 0000000..b78d40b
--- /dev/null
@@ -0,0 +1,6 @@
+We try to follow
+
+http://www.gnu.org/prep/standards/standards.html#Formatting
+
+lots of code cleanup is needed though (2012-03-04)
+
diff --git a/doc-maint/gendocs.sh b/doc-maint/gendocs.sh
new file mode 100755 (executable)
index 0000000..a1ed4b4
--- /dev/null
@@ -0,0 +1,361 @@
+#!/bin/sh
+# gendocs.sh -- generate a GNU manual in many formats.  This script is
+#   mentioned in maintain.texi.  See the help message below for usage details.
+
+scriptversion=2009-04-08.09
+
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
+#
+# This program 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 3 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, see <http://www.gnu.org/licenses/>.
+#
+# Original author: Mohit Agarwal.
+# Send bug reports and any other correspondence to bug-texinfo@gnu.org.
+
+prog=`basename "$0"`
+srcdir=`pwd`
+
+scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
+templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
+
+: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
+: ${MAKEINFO="makeinfo"}
+: ${TEXI2DVI="texi2dvi -t @finalout"}
+: ${DVIPS="dvips"}
+: ${DOCBOOK2HTML="docbook2html"}
+: ${DOCBOOK2PDF="docbook2pdf"}
+: ${DOCBOOK2PS="docbook2ps"}
+: ${DOCBOOK2TXT="docbook2txt"}
+: ${GENDOCS_TEMPLATE_DIR="."}
+: ${TEXI2HTML="texi2html"}
+unset CDPATH
+unset use_texi2html
+
+version="gendocs.sh $scriptversion
+
+Copyright 2009 Free Software Foundation, Inc.
+There is NO warranty.  You may redistribute this software
+under the terms of the GNU General Public License.
+For more information about these matters, see the files named COPYING."
+
+usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
+
+Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source.
+See the GNU Maintainers document for a more extensive discussion:
+  http://www.gnu.org/prep/maintain_toc.html
+
+Options:
+  -o OUTDIR   write files into OUTDIR, instead of manual/.
+  --email ADR use ADR as contact in generated web pages.
+  --docbook   convert to DocBook too (xml, txt, html, pdf and ps).
+  --html ARG  pass indicated ARG to makeinfo or texi2html for HTML targets.
+  --texi2html use texi2html to generate HTML targets.
+  --help      display this help and exit successfully.
+  --version   display version information and exit successfully.
+
+Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
+
+Typical sequence:
+  cd PACKAGESOURCE/doc
+  wget \"$scripturl\"
+  wget \"$templateurl\"
+  $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
+
+Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR
+to override).  Move all the new files into your web CVS tree, as
+explained in the Web Pages node of maintain.texi.
+
+Please use the --email ADDRESS option to specify your bug-reporting
+address in the generated HTML pages.
+
+MANUAL-TITLE is included as part of the HTML <title> of the overall
+manual/index.html file.  It should include the name of the package being
+documented.  manual/index.html is created by substitution from the file
+$GENDOCS_TEMPLATE_DIR/gendocs_template.  (Feel free to modify the
+generic template for your own purposes.)
+
+If you have several manuals, you'll need to run this script several
+times with different MANUAL values, specifying a different output
+directory with -o each time.  Then write (by hand) an overall index.html
+with links to them all.
+
+If a manual's Texinfo sources are spread across several directories,
+first copy or symlink all Texinfo sources into a single directory.
+(Part of the script's work is to make a tar.gz of the sources.)
+
+You can set the environment variables MAKEINFO, TEXI2DVI, and DVIPS to
+control the programs that get executed, and GENDOCS_TEMPLATE_DIR to
+control where the gendocs_template file is looked for.  (With --docbook,
+the environment variables DOCBOOK2HTML, DOCBOOK2PDF, DOCBOOK2PS, and
+DOCBOOK2TXT are also respected.)
+
+By default, makeinfo is run in the default (English) locale, since
+that's the language of most Texinfo manuals.  If you happen to have a
+non-English manual and non-English web site, see the SETLANG setting
+in the source.
+
+Email bug reports or enhancement requests to bug-texinfo@gnu.org.
+"
+
+calcsize()
+{
+  size=`ls -ksl $1 | awk '{print $1}'`
+  echo $size
+}
+
+MANUAL_TITLE=
+PACKAGE=
+EMAIL=webmasters@gnu.org  # please override with --email
+htmlarg=
+outdir=manual
+
+while test $# -gt 0; do
+  case $1 in
+    --email) shift; EMAIL=$1;;
+    --help) echo "$usage"; exit 0;;
+    --version) echo "$version"; exit 0;;
+    -o) shift; outdir=$1;;
+    --docbook) docbook=yes;;
+    --html) shift; htmlarg=$1;;
+    --texi2html) use_texi2html=1;;
+    -*)
+      echo "$0: Unknown option \`$1'." >&2
+      echo "$0: Try \`--help' for more information." >&2
+      exit 1;;
+    *)
+      if test -z "$PACKAGE"; then
+        PACKAGE=$1
+      elif test -z "$MANUAL_TITLE"; then
+        MANUAL_TITLE=$1
+      else
+        echo "$0: extra non-option argument \`$1'." >&2
+        exit 1
+      fi;;
+  esac
+  shift
+done
+
+if test -s "$srcdir/$PACKAGE.texinfo"; then
+  srcfile=$srcdir/$PACKAGE.texinfo
+elif test -s "$srcdir/$PACKAGE.texi"; then
+  srcfile=$srcdir/$PACKAGE.texi
+elif test -s "$srcdir/$PACKAGE.txi"; then
+  srcfile=$srcdir/$PACKAGE.txi
+else
+  echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
+  exit 1
+fi
+
+if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
+  echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
+  echo "$0: it is available from $templateurl." >&2
+  exit 1
+fi
+
+case $outdir in
+  /*) dotdot_outdir="$outdir";;
+  *) dotdot_outdir="../$outdir";;
+esac
+
+echo Generating output formats for $srcfile
+
+cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\""
+echo "Generating info files... ($cmd)"
+eval "$cmd"
+mkdir -p $outdir/
+tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info*
+info_tgz_size=`calcsize $outdir/$PACKAGE.info.tar.gz`
+# do not mv the info files, there's no point in having them available
+# separately on the web.
+
+cmd="${TEXI2DVI} \"$srcfile\""
+echo "Generating dvi ... ($cmd)"
+eval "$cmd"
+
+# now, before we compress dvi:
+echo Generating postscript...
+${DVIPS} $PACKAGE -o
+gzip -f -9 $PACKAGE.ps
+ps_gz_size=`calcsize $PACKAGE.ps.gz`
+mv $PACKAGE.ps.gz $outdir/
+
+# compress/finish dvi:
+gzip -f -9 $PACKAGE.dvi
+dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
+mv $PACKAGE.dvi.gz $outdir/
+
+cmd="${TEXI2DVI} --pdf \"$srcfile\""
+echo "Generating pdf ... ($cmd)"
+eval "$cmd"
+pdf_size=`calcsize $PACKAGE.pdf`
+mv $PACKAGE.pdf $outdir/
+
+cmd="$SETLANG $MAKEINFO -o $PACKAGE.txt --no-split --no-headers \"$srcfile\""
+echo "Generating ASCII... ($cmd)"
+eval "$cmd"
+ascii_size=`calcsize $PACKAGE.txt`
+gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz
+ascii_gz_size=`calcsize $outdir/$PACKAGE.txt.gz`
+mv $PACKAGE.txt $outdir/
+
+html_split()
+{
+  opt="--split=$1 $htmlarg --node-files"
+  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
+  echo "Generating html by $1... ($cmd)"
+  eval "$cmd"
+  split_html_dir=$PACKAGE.html
+  (
+    cd ${split_html_dir} || exit 1
+    ln -sf ${PACKAGE}.html index.html
+    tar -czf $dotdot_outdir/${PACKAGE}.html_$1.tar.gz -- *.html
+  )
+  eval html_$1_tgz_size=`calcsize $outdir/${PACKAGE}.html_$1.tar.gz`
+  rm -f $outdir/html_$1/*.html
+  mkdir -p $outdir/html_$1/
+  mv ${split_html_dir}/*.html $outdir/html_$1/
+  rmdir ${split_html_dir}
+}
+
+if test -z "$use_texi2html"; then
+  opt="--no-split --html -o $PACKAGE.html $htmlarg"
+  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
+  echo "Generating monolithic html... ($cmd)"
+  rm -rf $PACKAGE.html  # in case a directory is left over
+  eval "$cmd"
+  html_mono_size=`calcsize $PACKAGE.html`
+  gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
+  html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
+  mv $PACKAGE.html $outdir/
+
+  cmd="$SETLANG $MAKEINFO --html -o $PACKAGE.html $htmlarg \"$srcfile\""
+  echo "Generating html by node... ($cmd)"
+  eval "$cmd"
+  split_html_dir=$PACKAGE.html
+  (
+   cd ${split_html_dir} || exit 1
+   tar -czf $dotdot_outdir/${PACKAGE}.html_node.tar.gz -- *.html
+  )
+  html_node_tgz_size=`calcsize $outdir/${PACKAGE}.html_node.tar.gz`
+  rm -f $outdir/html_node/*.html
+  mkdir -p $outdir/html_node/
+  mv ${split_html_dir}/*.html $outdir/html_node/
+  rmdir ${split_html_dir}
+else
+  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $htmlarg \"$srcfile\""
+  echo "Generating monolithic html... ($cmd)"
+  rm -rf $PACKAGE.html  # in case a directory is left over
+  eval "$cmd"
+  html_mono_size=`calcsize $PACKAGE.html`
+  gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
+  html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
+  mv $PACKAGE.html $outdir/
+
+  html_split node
+  html_split chapter
+  html_split section
+fi
+
+echo Making .tar.gz for sources...
+srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null`
+tar cvzfh $outdir/$PACKAGE.texi.tar.gz $srcfiles
+texi_tgz_size=`calcsize $outdir/$PACKAGE.texi.tar.gz`
+
+if test -n "$docbook"; then
+  cmd="$SETLANG $MAKEINFO -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml"
+  echo "Generating docbook XML... $(cmd)"
+  eval "$cmd"
+  docbook_xml_size=`calcsize $PACKAGE-db.xml`
+  gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz
+  docbook_xml_gz_size=`calcsize $outdir/$PACKAGE-db.xml.gz`
+  mv $PACKAGE-db.xml $outdir/
+
+  cmd="${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml"
+  echo "Generating docbook HTML... ($cmd)"
+  eval "$cmd"
+  split_html_db_dir=html_node_db
+  (
+    cd ${split_html_db_dir} || exit 1
+    tar -czf $dotdot_outdir/${PACKAGE}.html_node_db.tar.gz -- *.html
+  )
+  html_node_db_tgz_size=`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz`
+  rm -f $outdir/html_node_db/*.html
+  mkdir -p $outdir/html_node_db
+  mv ${split_html_db_dir}/*.html $outdir/html_node_db/
+  rmdir ${split_html_db_dir}
+
+  cmd="${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml"
+  echo "Generating docbook ASCII... ($cmd)"
+  eval "$cmd"
+  docbook_ascii_size=`calcsize $PACKAGE-db.txt`
+  mv $PACKAGE-db.txt $outdir/
+
+  cmd="${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml"
+  echo "Generating docbook PS... $(cmd)"
+  eval "$cmd"
+  gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz
+  docbook_ps_gz_size=`calcsize $outdir/$PACKAGE-db.ps.gz`
+  mv $PACKAGE-db.ps $outdir/
+
+  cmd="${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml"
+  echo "Generating docbook PDF... ($cmd)"
+  eval "$cmd"
+  docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
+  mv $PACKAGE-db.pdf $outdir/
+fi
+
+echo "Writing index file..."
+if test -z "$use_texi2html"; then
+   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
+          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
+else
+   CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
+fi
+curdate=`$SETLANG date '+%B %d, %Y'`
+sed \
+   -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
+   -e "s!%%EMAIL%%!$EMAIL!g" \
+   -e "s!%%PACKAGE%%!$PACKAGE!g" \
+   -e "s!%%DATE%%!$curdate!g" \
+   -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
+   -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
+   -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
+   -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
+   -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
+   -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
+   -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
+   -e "s!%%PDF_SIZE%%!$pdf_size!g" \
+   -e "s!%%PS_GZ_SIZE%%!$ps_gz_size!g" \
+   -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
+   -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
+   -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
+   -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
+   -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
+   -e "s!%%DOCBOOK_PS_GZ_SIZE%%!$docbook_ps_gz_size!g" \
+   -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
+   -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
+   -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
+   -e "s,%%SCRIPTURL%%,$scripturl,g" \
+   -e "s!%%SCRIPTNAME%%!$prog!g" \
+   -e "$CONDS" \
+$GENDOCS_TEMPLATE_DIR/gendocs_template >$outdir/index.html
+
+echo "Done, see $outdir/ subdirectory for new files."
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/doc-maint/make-xboard-release b/doc-maint/make-xboard-release
new file mode 100644 (file)
index 0000000..c7acee6
--- /dev/null
@@ -0,0 +1,186 @@
+#!/bin/bash
+
+# the script will check out the correct branch, run "make distcheck",
+# tag git, and upload the files to the GNU server.
+
+# you need to have your GPG key registered with the GNU people for the upload to work!
+
+# the script includes some minimal error checking and tries to automate the following:
+#  * check if the commit is already tagged
+#  * if version number includes a date like 20120304 (to be exact *20??????), 
+#    it will create a developer release otherwise a normal release
+#  * if you have local tags that you don't want to upload, you need to add them further down to git tag -d ...
+
+# you need to set the following to reasonable value for the script to work
+
+# the script at the moment also only works for master and branches called v4*, easy to change in the script though
+GITDIR=/home/arun/src/Prog/xboard
+UPLOADDIR=/home/arun/tmp/xboard-upload
+GPGKEYID="F51BC536"
+
+# default: make a release from master
+BRANCH="master"
+
+function usage () {
+    echo >&2 "usage: $0 [-b branch]"
+    }
+
+# check if we want to make a release from another branch
+while getopts b: opt
+do
+    case "$opt" in
+      b)  BRANCH="$OPTARG";;
+      \?) # unknown flag
+         usage 
+         exit 1;;
+    esac
+done
+shift `expr $OPTIND - 1`
+
+if [ $# -gt 0 ] ; then
+    usage
+    exit 1
+fi
+
+# output information to the user and ask for confirmation
+echo " Tagging and uploading new xboard release to GNU"
+echo "   branch: $BRANCH"
+echo ""
+
+# go into a tmp directory, clone xboard, check out branch
+
+cd $GITDIR
+
+TEX=tex
+
+git checkout $BRANCH
+
+read -n 1 -p "Should be on correct branch now. Continue?" REPLY
+
+# get version information
+
+VERSION=`grep AC_INIT configure.ac | sed -e 's/^.*\[.*\],\[\(.*\)\],.*$/\1/' `
+
+#make sure we don't do things too often
+RESULT=`git tag | grep "^$VERSION\$"`
+if [ "$RESULT" != "" ] ; then
+    echo "this version is already tagged... exiting."
+    exit 1
+fi
+
+#################
+
+# output some summary information and have user confirm it
+
+if [[ $BRANCH == v4* ]] ; then
+    TAGNAME=v$VERSION
+else
+    TAGNAME=$VERSION
+fi
+
+FTPSERVER="ftp-upload.gnu.org"
+if [[ $VERSION == *20?????? ]] ; then
+    TAGMESSAGE="new developer release"
+    FTPDIR="incoming/alpha"
+else
+    TAGMESSAGE="new release of version $VERSION"
+    FTPDIR="incoming/ftp"
+fi
+
+# ask for confirmation from user
+echo " make sure that you are on the right commit (should be the one that changes the version number)!"
+echo "  version will be tagged as:  $TAGNAME"
+echo "  tar ball will be named:   xboard-${VERSION}.tar.gz "
+echo "  tag message: $TAGMESSAGE"
+echo ""
+read -n 1 -p "Continue (y/N)?" REPLY
+echo ""
+
+if [ "x$REPLY" != "xy" ];  then 
+    echo " exiting now!"
+    exit 2
+fi
+
+echo "cleaning up tags"
+# git tag -d <add tag name here, for more than one, add more lines like this one>
+
+
+echo "tagging commit"
+git tag -u $GPGKEYID -m "$TAGMESSAGE" $TAGNAME
+
+echo "create tar ball"
+./autogen.sh
+./configure
+TEX=tex make distcheck
+
+if [ -s xboard-${VERSION}.tar.gz ] ; then
+    echo ""
+    echo " make distcheck seems to be ok"
+    echo ""
+else
+    echo ""
+    echo " problem with make distcheck"
+    echo ""
+    exit 3
+fi
+
+echo "move tar ball to upload directory"
+mv xboard-${VERSION}.tar.gz $UPLOADDIR
+
+echo "cd into upload directory"
+cd $UPLOADDIR 
+
+# create files necessary for upload to GNU
+echo "creating directive"
+echo "version: 1.1
+directory: xboard
+filename: xboard-${VERSION}.tar.gz
+comment: $TAGMESSAGE " > xboard-${VERSION}.tar.gz.directive
+
+echo "signing packages"
+gpg -b xboard-${VERSION}.tar.gz
+gpg --clearsign xboard-${VERSION}.tar.gz.directive
+
+echo "uploading..."
+
+echo "
+The files can be found in $UPLOADDIR. Go and test them :)
+
+Will do the following in a second followed by a git push
+
+ftp -n -v $FTPSERVER <<EOT
+user anonymous
+cd $FTPDIR
+put xboard-${VERSION}.tar.gz
+put xboard-${VERSION}.tar.gz.sig
+put xboard-${VERSION}.tar.gz.directive.asc
+EOT
+"
+
+read -n 1 -p "Will upload and push tags now. Continue? (y/N)" REPLY
+
+if [ "x$REPLY" != "xy" ];  then 
+    echo " exiting now!"
+    exit 3
+fi
+
+# upload to GNU
+ftp -n -v $FTPSERVER <<EOT
+user anonymous
+cd $FTPDIR
+put xboard-${VERSION}.tar.gz
+put xboard-${VERSION}.tar.gz.sig
+put xboard-${VERSION}.tar.gz.directive.asc
+EOT
+
+# push tags
+cd $GITDIR
+echo "pushing tags and commits"
+git push
+git push --tags 
+
+#possible to add other git repos here too
+#git push github
+#git push --tags github
+
+echo "done...have a nice day!"
diff --git a/doc-maint/release.org b/doc-maint/release.org
new file mode 100644 (file)
index 0000000..f1d25c5
--- /dev/null
@@ -0,0 +1,71 @@
+* Release documentation
+** Pre-release checklist
+ - update AUTHORS, NEWS, check other files
+ - update version in configure.ac and other places
+ - run "make distcheck" and then create tar-ball via "make dist"
+ - unpack tar-ball, check that it builds OK
+ - tag with signature
+ - check openSUSE build
+ - update git@savannah, github
+ - update po/pot files via "cd po; make update-po". This should happen
+   after the version number has been updated, so that the po-files
+   automatically get the correct version number.
+ - send pot-file to translationproject
+
+** Release
+
+See script make-xboard-release that can handle GNU-upload and tagging in git.
+
+- update webpage, manuals
+- upload on gnu
+- update enginge-intf.html
+- create savannah news item
+- email lists; add short discription of xboard to news item
+  1) email gnu (check admin page for gnu) http://www.gnu.org/prep/maintain/html_node/Announcements.html#Announcements
+  2) email chess servers (ICS, FICS) and other web directories
+  3) email linux distributions/update opensuse (Arun can handle OpenSUSE)
+  4) email info-gnu-chess 
+- update freshmeat.net (Tim can do this, email him)
+- newsgroups add short discription of xboard to news item
+  1)  gnu.chess, info-gnu-chess
+  2)  rec.games.chess.computer
+  3)  comp.os.linux.announce
+  4)  WinBoard forum web page (HGM does this one) 
+- update git to the next pre-release 
+
+** Template for emails
+
+fill in the <...>
+
+Subject: release of XBoard version <...>
+
+Hello, 
+
+A new version of XBoard is available. Here are some details:
+
+Short description:
+
+XBoard is a graphical user interface for chess in all its major forms, 
+including international chess, xiangqi (Chinese chess), shogi Japanese chess) 
+and Makruk. Many variations of chess are also supported.
+
+Web page:
+
+http://www.gnu.org/software/xboard/
+
+Download at:
+
+http://ftp.gnu.org/gnu/xboard/
+
+Windows binaries will be available at:
+
+http://www.open-aurec.com/wbforum/viewforum.php?f=19 
+
+Development at:
+
+https://savannah.gnu.org/projects/xboard/
+
+News: 
+
+<list of most important new features>
+See the NEWS file in the distribution or git for more details.
diff --git a/doc-maint/web-pages.org b/doc-maint/web-pages.org
new file mode 100644 (file)
index 0000000..cc71f14
--- /dev/null
@@ -0,0 +1,40 @@
+The home page for XBoard are kept in CVS. This is a unfortunate, since
+we keep the code in git and hopefully will change in the
+future. Luckily there is a cvsexport/import command for git that can help.
+
+Possible setup:
+
+cvs web page in /home/user/xboard-cvs
+git in          /home/user/xboard-git
+
+Add the following entries in /home/user/xboard-git/.git/config:
+
+[cvsimport]
+        module = xboard
+        d = :ext:<savannah user name>@cvs.sv.gnu.org:/webcvs/xboard
+[cvsexportcommit]
+        cvsdir = /home/user/xboard-cvs
+
+It's probably best to have a tracking branch for the cvs tree, one
+that branch you should be able to use:
+
+git cvsimport -a
+
+to import all cvs-commits into the git tree. You can merge that branch
+with the www-branch in git.
+
+To push a git-commit (from branch www) into cvs, you can use:
+
+git cvsexportcommit -v -c <sha1>
+
+This can only be done one commit at a time AFAIK. In case of conflicts
+cvsexportcommit will leave a .msg and patchfile (something like
+.cvscommitpatch) in the CVS directory that you can apply by hand and
+then fix the merge conflicts and apply the commit by hand via "cvs
+commit" (use "cvs add <file>" if you need to add new files).
+
+GNU also provides a script to update the online manual from the texi
+file. It's called gendocs.sh (see same directory as this file). There
+might be newer version around, so it could be worth checking for them
+every now and then.
+