summaryrefslogtreecommitdiffstats
path: root/pigeonhole/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole/TODO')
-rw-r--r--pigeonhole/TODO97
1 files changed, 97 insertions, 0 deletions
diff --git a/pigeonhole/TODO b/pigeonhole/TODO
new file mode 100644
index 0000000..39420b5
--- /dev/null
+++ b/pigeonhole/TODO
@@ -0,0 +1,97 @@
+Current activities:
+
+* Rework string matching:
+ - Give Sieve its own runtime string type, rather than (ab)using string_t.
+ - Add support for stream matching for handling large values, e.g. from the
+ body extension.
+ - Improve efficiency of :matches and :contains match types.
+* Build proper comparator support:
+ - Add normalize() method to comparators to normalize the string before
+ matching (for efficiency).
+ - Allow for the existence of dynamic comparators (i.e. specified by
+ variables).
+ - Implement comparator-i;unicode-casemap.
+
+Parallel plugin-based efforts (on hold at the moment):
+
+* Implement enotify xmpp method as a plugin.
+
+Next (mostly in order of descending priority/precedence):
+
+* Implement message modification and extraction API in order to:
+ - Properly implement the interaction between editheader and foreverypart/mime.
+ - Implement replace, enclose extensions.
+* Properly implement Sieve internationalization support (utf-8 handling),
+ currently it is not complete:
+ - Make this implementation fully conform section 2.7.2 of RFC5228 (Comparisons
+ Across Character Sets).
+ - Verify validity of utf8 where necessary.
+* Further develop regex extension and update it to the latest draft:
+ - Implement the :quoteregex set modifier
+ - Investigate the use of the TRE regexp library to gain UTF-8 capability
+ (posix regexes actually do support utf8, but only when locale is set
+ accordingly)
+* Finish LDAP Sieve script storage for read-only access.
+ - Consolidate LDAP connections when more than a single Sieve script must be
+ loaded from different storages linked to the same LDAP server.
+ - Adjust Sieve script API to support asynchronous script retrieval to
+ retrieve scripts in parallel when possible.
+* Improve error handling.
+ - Implement dropping errors in the user's mailbox as a mail message.
+* Finish body extension:
+ - Build test cases for decoding MIME encodings to UTF-8
+* Cleanup the test suite
+ - Restructure test scripts
+ - Add more comment on purpose of tests
+* Finish the ereject extension
+* Vacation extension improvements:
+ - Implement configurable sender exclusion list.
+ - Implement mechanism for implicitly including an account's aliases in the
+ vacation command's :addresses list.
+* Fix remaining RFC deviations:
+ - Fix issues listed in doc/rfc/RFC-questions.txt based on answers
+ - Verify outgoing mail addresses at runtime when necessary
+ (e.g. after variables substitution)
+ - Improve handling of invalid addresses in headers (requires Dovecot changes)
+* Improve sieve_extprograms plugin:
+ - Redesign (forcible) local script termination. It should use SIGCHLD and
+ a ioloop-based timeout.
+ - Add facility to trigger a temporary failure condition when a program
+ fails rather than an implicit keep.
+ - Add a method to implicitly pass environment variables such as SENDER and
+ RECIPIENT through the script socket service.
+* Make testsuite much more exhaustive:
+ - Add support for testing the content of result actions
+ - Test as many error/warning/info conditions as possible.
+ - Review the specification documents and check whether the given requirements
+ are tested at least once.
+* Fix ManageSieve proxy to recognize response codes from the backend and forward
+ them to the user if appropriate/safe. Probably means implementing a proper
+ ManageSieve client library.
+* Test ManageSieve behavior thoroughly:
+ - Test pipelined behavior
+ - Test proxy authentication
+* Code cleanup:
+ - Make address handling more uniform.
+ - Review all FIXMEs
+
+* Build a server with test mail accounts that processes lots and lots of mail
+ (e.g. spam, mailing lists etc.)
+
+Low priority items:
+
+* Implement extlists extension as a plugin
+* Enotify extension: detect use of variable values extracted from the message
+ that are used in the method argument. RFC reports this as a security issue.
+* Provide a solution for mail_get_headers_utf8 reparsing the whole message each
+ time it is called (header and address test; Timo might provide solution from
+ within Dovecot)
+* Warn during compile if using non-existent folders.
+
+* Variables extension: implement compile time evaluation of constant values
+ - Detect assignment of too large constant values to variables at compile
+ time.
+* Add development documentation, i.e. comment on library functions and document
+ the binary and byte-code format.
+* Implement sip-message notify mechanism.
+