This file provides information for developers of `libbow'. 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.jprc.com. To use it, first obtain a login id from Andrew McCallum , then type at your shell: setenv CVSROOT :pserver:yourloginname@sandbox.jprc.com:/home/mccallum/lib/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 (in the bow directory) autoconf cd argp ; 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.