Wrap all close() calls in "ensure" blocks and simplify DB connection-making.
[mailshears.git] / doc / TODO
index 8482260c44851ba77b34342752902c5dd3d02df6..bd750c9caa4658b02848d082a08443afe115eeef 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,29 +1,27 @@
-* Error reporting sucks, and when a domain or user doesn't exist we
-  should be able to say so. The describe_domain/user functions
-  should also work better. For plugins that don't implement domains,
-  we can return a (count of?) list of users, or fall back to the
-  user deletion descriptions.
+* There is essentially no error handling. We report errors, but we
+  don't fail when we see one. The main reason for this is that we
+  don't know when each plugin will be run. If the first plugin
+  encounters an error, we could quit right there. But what if the
+  third one fails after the first two succeed? We would need some kind
+  of rollback mechanism.
 
-* Error reporting is inconsistent. We know what goes wrong, and then
-  errors bubble up, but where do they get reported? Are they fatal or
-  informational? Do we want later plugins to run of earlier ones
-  failed?
+  For "mv", a rollback is conceivable. But with "rm", there's no going
+  back. Maybe relying on the user to interpret the output and go
+  fix stuff himself is the best we can do?
 
-* Implement "mv".
+* Add OpenDKIM support.
 
-  Design:
+* Write a man page.
 
-  This should only work from a domain that exists in postfixadmin to a
-  domain that already exists in postfixadmin. If the target domain
-  does not exist, we should error out as soon as possible.
+* Update the README.
 
-  Once we're sure that the target domain does exist, we can hand off
-  the "mv" operation to the plugins. Some of them might have nothing
-  to do -- that's fine.
+* Make a release.
 
-  MAKE SURE WE DON'T OVERWRITE AN EXISTING USER!
+* Test deletion of a user "bar" who lies in the middle of a
+  goto="foo,bar,baz" alias.
 
-* Add convenience methods (e.g. user_exists, domain_exists) that we
-  can use in the tests to check results.
+* Make sure removing a domain updates the aliases table correctly.
 
-* Potentially add OpenDKIM support.
+* Factor out all of the msg-building in e.g. MvRunner.
+
+* Implement moving of domains.