Most important for the GNATS 4.0 release:
  * the docs need to be updated, on all fronts.  This includes the
    installation docs, which are wrong about gnats-bin, the lib/gnats directory
    as home for queue-pr, and architecture-independent files going from
    ${prefix}/lib to ${prefix}/share.

Random things to do before the release:
* Important: the 1529 port is taken by another application ... a new
  port has to be selected for the server and clients to use.  
* include all of the various wwwgnats interfaces in contrib
* document the change in the elisp code to pass `-s' to pr-addr, since it
  creates an incompatibility for earlier-installed versions of pr-addr.

Documentation issues (among many other things):
* figure out a way to document the GNATS_RELEASE_BASED options/features
* document the GNATS_ROOT env var
* create gnatsd.man
* create pr-mail.man
* create pr-age.man
* create pr-addr.man
* create pr-edit.man and npr-edit.man

Emacs problems:
* Support for configurable classes is still not done.
* GNATS pr-addr is not network or multi-database aware, and gnats.el uses it.
* Changes don't seem to get added to the Audit-Trail.
* send-pr isn't multiple database aware (gnats:::types).
* send-pr gnats:get-config isn't network aware. It should be rewritten
  to execute [n]query-pr --list-config.
* generally, gnats.el needs to remove all direct access to gnats files
  and go through [n]query-pr, even for things like --list-categories, etc.

* emacs19 bug in which process-send-region will have the sub-process get a
  SIGTSTP and cause an i/o error if the buffer being sent has a ^Z in it 
* emacs 19.3x bug where gnats:run-in-background makes the character typed after
  committing an edited PR (C-c C-c) get swallowed into the wrong buffer.
  This is something about the way finish-filing does mail-PR-changed and
  gnats:unlock-buffer.
* Some we may like to use the default gnats address GNATS_ADDR when sending prs to
  the default site, GNATS_SITE, using the emacs interface. If the site is given
  by the user to the send-pr script, GNATS_ADDR is reassigned to be alias named
  "$USER_GNATS_SITE-gnats" (~line 188). This assumption is not stated in the
  documentation. This assumption becomes a bug when using the default site in
  emacs as send-pr.el always calls send-pr with a site argument (~line 235),
  which then always reassigns GNATS_ADDR.
* edit-pr and send-pr should cycle thru field values, instead of doing
  completion
* do percentages like nntp.el for the reading of the PR
* add `C-c C-q' to send-pr mode
* gnats/55: emacs send-pr doesn't use the config's GNATS_ADDR for To:, or
  cuts it short

Network problems:
* npr-edit doesn't do the same level of checking as pr-edit ... it should!
  More to the point, it should be possible to do this sort of thing with the
  server (let the server do the work). 
* GNATS pr-addr is not network or multi-database aware, and npr-edit uses it.
* gnatsd shouldn't automatically unlock a PR after it's edited---rather, the
  client should do a separate UNLK command.  To do this properly we must:
	* change GNATS_edit to not run unlock_pr
	* clean up gnats::finish-filing to handle it correctly
  In addition, all existing gnats.el{,c} files *must* be updated at the same
  time as the server update, to make sure people with old versions don't
  assume a PR got unlocked for them.
* replace `^.' with `..', and decode it in the client
* fix host unreachable case to not say "error reading from server", since
  emacs thinks that means it's locked by someone else (somehow)
* fix tests for -lsocket; unixware has a shared one and a non-shared, but it
  only has a shared version of libnsl.  Thus, using just -lsocket ends up with
  unresolved references.
* make the gnatsd.conf note hosts allowed to get the submitters list
* check setting of DORET vs use of RET, and force use of it (e.g., reg* fns
  don't use it, among many others)
* fix timeout
* failed connection ends up calling safe_exit, which doesn't do the right
  thing cuz there's no connection (Broken pipe)
* client.c -- make it say `invalid submitter blah'

PR Field problems:
* A query-pr not built --with-release-based can't list a PR that has the
  release-based keywords.  The --full option produces output that stops at the
  ">Date-Required:" field, but it is followed by the text from the
  "Unformatted" field.  
* deal with responsible field w/ multiple comma'd entries
* right now files.c (get_responsible_address) will let any arbitrary string
  be accepted in the field, cuz we can't guarantee a particular name given for
  the field will appear in the passwd file, or in the responsibles list.  We
  need a better way to sanity-check the value of this field.
* using `duplicate' in the >Class: field used to be followed (if desired) with
  the duplicate PR number in parenthesis.  Now that we enforce field layout,
  this gets taken off.

Processing problems:
* no return after blank Cc: line in the copy of the mail that was sent beneath
  doing append_report
* GNATS needs to be adjusted to deal with MIME-encoded messages properly

Miscellaneous problems:
* fix gnats/Makefile.in to either run whoami, or run id like in acgeneral.m4:
       (whoami || id|sed "$ac_sedcmd") 2>/dev/null|tr -d '\012'
  to avoid problems on sites that may also have `who am i' (use that?)
* pr-addr doesn't work for something that's a valid address, but not mentioned
  in the responsible file or passwd file
* queue-pr sets the Arrival-Date: field to the default timezone, rather than
  using the value of the TZ environment variable.  One solution that was
  suggested by Dave Plonka <dev_dp@mfa.com> was to put TZ into the
  queue-pr SAFE_ENV.  The question is how to safely implement this.
* When `queue-pr -r' sends a message to the person responsible for a category,
  informing him of a newly submitted PR , the "From" line of the message
  contains the address of the submitter, rather than the address of the GNATS
  server.  One possible solution is to put the GNATS server in a "CC" line.
  You can prevent sendmail from parsing the address and deciding to send the
  message to those addresses by using /usr/lib/sendmail -oi instead of
  /usr/lib/sendmail -oi -t, and listing the delivery addresses on the
  sendmail command line.
* add checks for the wait stuff (like make 3.74 does) for queue-pr.c
* fix it so it doesn't do strdup (""); fix it to accept null values (?)
* write a "sanity" program to check everything installed, to find anything
  that may cause problems later (index, responsibles file, et al.) 
* verify DIFFOPT setting
* fix pr.c:read_pr to not reset a field if we've already seen it
* reading the index, and dying on a line, doesn't free any previously
  allocated fields
* use of strchr before checking if the RESPONSIBLE field (or others) are null
* --summary cuts a submitter-id short (e.g., ascom-timeplex)
* Provide a method to configure TIMELY REMINDER to continuously send out
  reminders till the state changes rather than sending only *** ONE ***
  reminder beyond the allocated time.
* make it possible to find the things that don't match the given regexp, like
  the PRs that aren't from a given customer
* ability to NOT send mail to the submitter of a PR? (see gnats/21 and 22)
* make sub-type give the full name
* disallow `.' in a submitter name

Fundamental design problems:
* lock_gnats should do more than just exit, we never close the lock file
  that was opened in file-pr
* come up with a way for one category to be an *alias* of another
* make headers.c (lookup_header) return Header_Name, not short

Future directions:
* user-defined fields?
* handle an enum field with its value on the next line (long-term)

