Current:

* Test new multiscript support extensively. 
* Build a sieve tool to filter an entire existing mailbox through a Sieve 
  script.

Next (in order of descending priority/precedence):

* Improve error handling. Now it is not very consistent, especially for the Sieve
  command line tools and multiscript. 
* Improve debugging support in the sieve-test tool:
	- Improve trace debugging towards something more intuitively readable.
	- Give trace debugging multiple levels of verbosity (e.g. to include more messy
	  output like value matching).
* Implement dropping errors in the user's mailbox as a mail message.
* Implement a better way to encode source line numbers into a binary for reporting 
  errors at runtime. Currently, this is done explicitly for each command that adds 
  actions to the result. However, some tests, match types etc. will also need this 
  when the variables extension is active. Many of the RFC deviations listed below 
  depend on this. Also trace debugging will benefit.
* Fix remaining RFC deviations:
	- Fix issues listed in doc/rfc/RFC-questions.txt based on answers
	- Allow for the existance of dynamic comparators (i.e. specified by 
	  variables). 
	- Allow for dynamic includes (i.e. specified by variables).
	- Allow for :regex matching with variable key.
	- Detect assignment of too large constant values to variables at compile
	  time.
	- Verify outgoing mail addresses at runtime when necessary
	  (e.g. after variables substitution)
	- Vacation: the ":subject" parameter specifies a subject line to attach to 
	  any vacation response that is generated. UTF-8 characters can be used in
	  the string argument; implementations MUST convert the string to [RFC2047]
 	  encoded words if and only if non-ASCII characters are present.
	- Body: contains various issues that need to be resolved for standards
	  compliance. Body test support currently matches but barely exceeds the
	  original CMU Sieve implentation in terms of standards compliance.
	- Improve handling of invalid addresses in headers (requires Dovecot changes)
* Implement environment extension
* Add normalize() method to comparators to normalize the string before matching
  (for efficiency).
* Implement mechanism for implicitly including an account's aliases in the vacation
  command's :addresses list.
* Properly implement Sieve internationalization support (utf-8 handling), currently
  it is not complete:
	- Make this implementation conform section 2.7.2 of RFC5228 (Comparisons 
	  Across Character Sets). 
	- Verify validity of utf8 where necessary.
	- Implement comparator-i;unicode-casemap.
* Make testsuite much more exhaustive:
	- add support for testing delivered messages by looping these back as the 
	  tested mail message
	- 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 conditions
	  are tested at least once.
* Code cleanup:
	- Make address handling more uniform. 

* Build a server with test mail accounts that processes lots and lots of mail 
  (e.g. spam, mailing lists etc.)

* ## MAKE A SECOND RELEASE (0.2.x) ##

* 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)
* Implement date and index extensions
* Optimize code containing true/false tests to omit explicit JMP opcodes
  (i.e. optimize the test away and any code that negatively depends on it)
* Use lib/str-find.h for :contains and :matches match types 
* Warn during compile if using non-existent folders.

* Implement IMAP plugin for IMAPSieve support:
	- This may include support for manually running a script on a set of messages
	  through IMAP (no specification for something like this is available; we will 
	  have to provide our own)
* Implement editheader extension
* Implement mimeloop extension
* Variables extension: implement compile time evaluation of constant values
* 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.
* Import ManageSieve into this package and provide support for alternate types
  of script storage like LDAP or SQL database.
* Make the engine and its extensions much more configurable. Possibly this can 
  be merged with Dovecot's new master config implementation.
* Add development documentation, i.e. comment on library functions and document
  the binary and byte-code format. 
* Give the byte code format some more thought, it is currently quite rough and
  to the point. 
* Try to implement proposed notify mechanisms other than mailto. Currently: xmpp
  and sip
* Implement namespace support for variables extension 
  (possibly needed by test suite; in that case priority is much higher)