TODO
changeset 2 b3afb9f1e801
parent 0 6f7a81934006
--- a/TODO	Sun Jan 20 00:12:17 2008 +0100
+++ b/TODO	Sun Jan 20 00:22:09 2008 +0100
@@ -1,80 +1,86 @@
 Here are the things that I have left to complete (roughly in order of
-personal preference).  The lines marked "RELEASE TARGET" are the point
-of development that I hope to reach before I make another release.  Some
-of the other items after the last "RELEASE TARGET" may make it into a
-release if I feel like it.  I want short and easy to define goals so I
-can keep the development periods shorter.
+personal preference).  I have seperated it into a series of release
+targets in order to have short quantitative goals for making new
+releases.
+-------------------------------------------------------------------------------
+FOR VERSION 0.97:
+
+- Revert vdomain::lookup back to the single-argument case, and yank the
+  dead code.
+
+- Add tests for:
+  - proper handling of creating paths with a trailing '/'
+  - authvmailmgr
+  - execution of presetuid and postsetuid hooks in authvmailmgr
+  - daemon "stat" command
+  - daemon adduser3 command
+  - vupgrade command
+  - exit 99 from vdeliver-predeliver causes delivery to be skipped
+
+- Add note to FAQ or HOWTO regarding the two web interfaces
+
+- Add more complete tests to verify correct operation of "vaddusers"
+  command.
+-------------------------------------------------------------------------------
+FOR VERSION 0.97.1:
+
+- Add a "vrenuser" tool.
+
+- Make vcheckquota and daemon stat handle folders.
+
+- Always "touch" $VUSER/cur on successful authentication, to provide for
+  a "last login time".
+
+- Expand the record format to include a "last modified" field, and to
+  change the flag values from binary 0/1 to ASCII.
 
 - Add note to FAQ regarding PHP error code 255 meaning the daemon is not
   running properly (once it's been confirmed).
 
-- Add tests for:
-  - authvmailmgr
-  - execution of presetuid and postsetuid hooks in authvmailmgr
+- Fix checkvpw to set MAILDIR before executing postsetuid somehow
 
-- Add note to FAQ or HOWTO regarding the two interfaces
+- Make quota check program check all directories.
 
-- Fix checkvpw to set MAILDIR before executing postsetuid somehow
+- Add Courier IMAP support to the bulletin facility
 
 - Convert existing TeXinfo documentation to SGML
 
-- Add a mailbox size daemon command
-
-- Expand the record format to include a "last modified" field, and to
-  change the flag values from binary 0/1 to ASCII.
-
-- Add the necessary code for NDBM, MySQL, and PostgreSQL password tables.
-
-- Add more complete tests to verify correct operation of "vaddusers"
-  command.
-
-- Add Courier IMAP support to the bulletin facility
+- Make vrehash take the bits and slices values as command-line
+  parameters.
+-------------------------------------------------------------------------------
+FOR VERSION 0.98:
 
-- Add support to the vpwtable template that allows writing a batch of
-  users in a more efficient manner
-  - start writing (locks the table for other writes, enter nosync mode)
-  - append record (check for prior existance of record, add it)
-  - stop writing (sync data and unlock the table)
-
-- Use the above to support a more efficient version of:
-  - vpasswd2db
-  - vrehash
-
-- Figure out how to make vdeliver write to both the output file and the
-  queue simultaneously, to avoid needing to do rewinds.
-
-RELEASE TARGET 0.97
+- Make the TCP daemon the default usage, and drop the unixserver
+  requirement.
 
 - Make the daemon commands stand-alone modules, using the revised daemon
   communication protocol.  The daemon then just forks, reads in the
   command name, validates it, and hands off to an authentication module.
 
 - The authentication module checks for a custom authentication type
-  based on the command name, does authentication, does setuid,chdir,
+  based on the command name, does authentication, does setuid, chdir,
   and executes the actual command.
-
-RELEASE TARGET 1.00
+-------------------------------------------------------------------------------
+FOR VERSION 1.00:
 
-- Set up the necessary structures to completely seperate the virtual
-  domain information and the real user information, such that each user
-  can have a list of virtual domains assigned to it.  This structure
-  will specify:
-  - a domain prefix
-  - a directory
-  In this way, the virtualdomains will contain:
-    domain.org:username-prefix
-  And the domain listing with list
-    prefix:subdirectory
-  Each domain will have a completely independant user directory and
-  password table.
-
-RELEASE TARGET 1.XX
+- Make vdeliver write to both the output file and the queue
+  simultaneously, to avoid needing to do rewinds:
+  - make pipe
+  - open tmp maildir file
+  - fork (child exec's qmail-queue)
+  - read data from stdin
+  - write data to file and pipe
+  - if write to pipe fails, delete maildir tmp file and fail
+  - if write to file fails, close pipe and fail
+  - write envelope to qmail-queue
+  - catch exit from qmail-queue
+  - close & sync maildir tmp file
+-------------------------------------------------------------------------------
+AFTER VERSION 1.00:
 
 - Bug fixes and clean-ups, and documentation improvements
 
-RELEASE TARGET 2.00
-
-- Investigate making all virtual users have a directory
+- Add the necessary code for *DBM, MySQL, and PostgreSQL password tables.
 
 - add a "vadddomain" command that:
   - adds a new user to /etc/passwd
@@ -122,8 +128,8 @@
   ? add support for PAM for non-virtual users (this may be difficult,
     requiring a change in the authentication model)
 
-- documentation
-  - write a "getting started" guide
+- Develop support for HMAC passcodes, in order to support CRAM-MD5
+  authentication, as per RFCs 2195 and 2104.
 
 - miscelaneous
   - code clean-ups, including internal documentation