<!-- Automagically generated by the ToDo program on Sun Mar  6 13:44:29 2005 -->
<todo version="0.1.18">
    <title>
        GNATS General TODO List
    </title>
    <note priority="veryhigh" time="1086968214" done="1099516767">
        Release 4.1: Code cleanups, bug fixes, documentation updates
        <comment>
            About to add the finishing touches.
        </comment>
        <note priority="veryhigh" time="1086970118" done="1086980843">
            Prepend $(DESTDIR) to Makefile.in installation targets (Chad)
            <comment>
                Committed to CVS.
            </comment>
        </note>
        <note priority="high" time="1086970317" done="1099440870">
            Add missing manpages -- one manpage for each application (Chad)
            <comment>
                getclose added. install-sid added.
            </comment>
        </note>
        <note priority="high" time="1099462738" done="1099516738">
            Update the NEWS file.
            <comment>
                Finished.  Talked about CAN report.
            </comment>
        </note>
        <note priority="medium" time="1086970157" done="1099462638">
            Kill install-sid script and update documentation (Chad)
            <comment>
                Repurposed instead of killing it.
            </comment>
        </note>
        <note priority="medium" time="1099440901" done="1099516752">
            Roll in changes to ./debian
            <comment>
                Finished.
            </comment>
        </note>
    </note>
    <note priority="high" time="1086968222">
        Release 4.2: New Features
        <note priority="high" time="1110138201">
            Cleanup build infrastructure w/automake and autoconf
        </note>
        <note priority="medium" time="1086983304">
            Mail handling enhancements
            <note priority="medium" time="1086983351">
                Mail-based manipulation of GNATS database (Mel)
            </note>
            <note priority="medium" time="1086983368">
                Trigger-based mail format replies (Mel)
            </note>
            <note priority="medium" time="1086983380">
                Add "To:" header parsing for PR# (prnumber@host.domain.tld) in queue-pr
            </note>
        </note>
    </note>
    <note priority="medium" time="1086968227">
        Release 5.0: New Features, Major Changes to DB Layer, RDBMS
        <note priority="high" time="1086983637">
            Database Enhancements
            <note priority="high" time="1086983547">
                DB Abstraction Layer (Mel)
                <comment>
                    Finished but not rolled into GNATS CVS 5.0 branch
                </comment>
            </note>
            <note priority="high" time="1086983559">
                Oracle RDBMS Backend (Mel)
                <comment>
                    Finished but not rolled in to GNATS CVS 5.0 branch
                </comment>
            </note>
            <note priority="medium" time="1087589056">
                PostgreSQL RDBMS Backend (Mel)
            </note>
        </note>
        <note priority="medium" time="1086983789">
            Account enhancements
            <note priority="high" time="1086983805">
                PAM Authentication (Pankaj)
                <comment>
                    Patch submitted 2004-06-20.
                </comment>
            </note>
        </note>
    </note>
    <note priority="low" time="1087833468">
        Release 5.x: New Features
        <note priority="high" time="1087853361">
            Security Enhancements
            <note priority="high" time="1087853388">
                TLS integration via gnutls
            </note>
        </note>
        <note priority="medium" time="1086983710">
            Mail handling enhancements
            <note priority="medium" time="1086983449">
                MIME Handling
                <note priority="high" time="1086983508">
                    Detach files appropriately for GNATS DB format
                </note>
                <note priority="medium" time="1086983475">
                    Convert HTML to TXT?
                </note>
            </note>
        </note>
        <note priority="medium" time="1087834854">
            Database Enhancements
            <note priority="low" time="1087834920">
                mbox Backend
                <note priority="medium" time="1086983727">
                    Maintain mbox archive of all emails
                </note>
                <note priority="medium" time="1086983741">
                    Fake Audit trail entries as emails and append to mbox archive
                </note>
                <note priority="medium" time="1086983758">
                    Continue to use existing PR datafile for logging events, keywords, and metadata
                </note>
            </note>
        </note>
    </note>
    <note priority="verylow" time="1086979851">
        Unassigned
        <note priority="high" time="1086982952">
            Add squirrels, to make pst happy.
        </note>
        <note priority="medium" time="1086980181">
            Add conditional formats
        </note>
        <note priority="medium" time="1086980258">
            Add script hooks, probably for edit formats and such.  Need to think about how to integrate in changes to the PR done by the script
            <comment>
                after all, that's really the whole point
            </comment>
        </note>
        <note priority="medium" time="1086980297">
            Allow fields to not exist; add a "field-always-present" option to the field description
        </note>
        <note priority="medium" time="1086980368">
            Add virtual fields.
            <comment>
                The output format can use the existing format mechanism. This would necessitate having a "no-display" field flag, so that some fields don't show up in a "full" query (adding all the fields to full" is a rather obnoxious requirement).  There should also be a "raw" query that dumps all the real fields as raw contents, for editing purposes (and perhaps for other things).
            </comment>
        </note>
        <note priority="medium" time="1086982752">
            Revise access control mechanisms.
        </note>
        <note priority="medium" time="1086982767">
            Should PRs have a "&gt;Database-Name:" header?  Probably, and probably immutable.  Can be used when editing a PR, or submitting an initial one.
        </note>
        <note priority="medium" time="1086982805">
            Append-only fields.  Need to revise access control first.
        </note>
        <note priority="medium" time="1086982870">
            Document functions.  Many of them are undocumented (even newly-added ones, shame).
        </note>
        <note priority="medium" time="1086982923">
            See how much farther we can go with removing knowledge of particular fields from the gnats code.
        </note>
        <note priority="medium" time="1086982979">
            Make it possible to include adm field contents in the configuration file, instead of always using an external config file.
        </note>
        <note priority="medium" time="1086983035">
            The client state is not clean.  The API is horrid; clients should not know or care if they're communicating via the network or locally.  The original solution was to just allow network access, but that's not really fixing the problem.  (We'll know we're there when gnatsd can act as a relay.)
        </note>
        <note priority="medium" time="1086983072">
            The client connection to the server should also be encapsulated in a struct as well. That is, something to describe the client (its hostname, username, password, access level).  Could eventually allow for a single server process that handles multiple connections.
        </note>
        <note priority="low" time="1086981886">
            Change edit-pr to include the "Changed-Why:" header in the initial PR template instead of a separate prompt.  Maybe.
        </note>
        <note priority="low" time="1086981950">
            Should all the fields listed in the input section be required? Configurable? How about rejecting initial erroneous PRs (PRs with bad fields) instead of fixing them up? It sucks that pr-edit --submit &lt; /dev/null could quite presumably create a valid PR.
        </note>
        <note priority="low" time="1086982698">
            The initial PR filing stuff is way too complicated.  In particular, the various field checks should be configured in dbconfig.  That would let us remove more builtin fields.
        </note>
        <note priority="low" time="1086982710">
            Decide if the "exec gnatsd locally" option is a security hole.  (Probably.) Make it #if TESTING only?
        </note>
        <note priority="low" time="1086982895">
            Come up with a better name for the lexer source file.
        </note>
    </note>
</todo>
