This file provides information for developers of BOW.

Source code revision control
============================

   The BOW software package is revision-control-maintained as a CVS
   repository, with CVS version 1.9.

   CVS is available at ftp://prep.ai.mit.edu.  Documentation is
   available in texinfo format.

   The repository is on sandbox.learning.cs.cmu.edu.  To use it,
   first obtain a login id from Andrew McCallum <mccallum@cs.cmu.edu>,
   then type at your shell:

      setenv CVSROOT :pserver:yourloginname@sandbox:/usr/local/cvsroot
      cvs login

   Answer its password prompt, then check out the source and `cd' into
   the source directory by typing

      cvs co bow
      cd bow

   In order to compile libbow, you'll have to create `./configure' from
   `./configure.in' by typing

      autoconf

   You must have the autoconf program installed on your system.  It is
   available from ftp://prep.ai.mit.edu/pub/gnu or its mirrors.


Coding standards
================

    BOW coding follows the GNU coding standards.  The standards are
    described in a text file at 
    ftp://prep.ai.mit.edu/pub/gnu/standards.text

    Please follow these standards in your code additions to BOW.


CVS and ChangeLog and emacs
===========================

   BOW uses a GNU-style ChangeLog to document source code changes.
   Please read the section of the GNU Coding Standards that describes
   appropriate kinds of entries.

   Please, please, please make a ChangeLog entry and CVS Commit Log
   Message for every change you commit.

   This process is highly facilitated by the use of emacs' cvs-mode,
   and following emacs-lisp code:

     (add-hook 'vc-checkin-hook 'vc-checkin-add-log)
     ;;; Insert the file's new log entries in ChangeLog.
     (defun vc-checkin-add-log ()
       (let ((log (find-change-log)))
         (and log
     	 (y-or-n-p (format "Update %s for %s changes? "
     			   (file-relative-name log)
     			   (file-relative-name buffer-file-name)))
     	 (vc-comment-to-change-log nil log))))
     (defadvice vc-checkin (around guess-defun compile activate)
       "Insert a guessed defun name from `add-log-current-defun'."
       (let ((defun-guess (and (not (ad-get-arg 2))
     			  (equal (abbreviate-file-name
     				  (file-truename (ad-get-arg 0)))
     				 buffer-file-truename)
     			  (add-log-current-defun))))
         (prog1 ad-do-it
           (if defun-guess
     	  (insert "(" defun-guess "): ")))))
     (setq vc-make-backup-files t)
     (setq vc-initial-comment t)
     
   Read the information about emacs' interface to CVS in the emacs
   texinfo documentation.  The above code adds extra functionality to
   this interface---it offers to automatically create a ChangeLog
   entry from the CVS commit message you type in the `*VC-Log*'
   buffer.
