Current activities:

* 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).

Next (in order of descending priority/precedence):

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

* Finish body extension:
	- Implement proper :content "multipart" behavior
	- Implement proper :content "message/rfc822" behavior
	- Build test cases for decoding MIME encodings to UTF-8
* Unfinished new extensions:
	- Finish the ereject extension
* Build a sieve tool to filter an entire existing mailbox through a Sieve 
  script:
	- Add commandline options to fully customize execution
	- Write manual page
* Update include extension to latest draft:
	- Implement required ManageSieve behavior
* Vacation extension improvements:
    - Implement configurable sender exclusion list.
    - Implement mechanism for implicitly including an account's aliases in the
      vacation command's :addresses list.
* Improve error handling. 
	- Detect permission errors when writing global script binaries and advise the 
	  administrator on using sievec to precompile the scripts.
	- Avoid reporting user-caused errors to the master log.
	- Implement dropping errors in the user's mailbox as a mail message.
* Fix remaining RFC deviations:
	- Fix issues listed in doc/rfc/RFC-questions.txt based on answers
	- Allow for the existence of dynamic comparators (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)
	- Improve handling of invalid addresses in headers (requires Dovecot changes)
* Add normalize() method to comparators to normalize the string before matching
  (for efficiency).
* 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.
	- Implement comparator-i;unicode-casemap.
* 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 conditions
	  are tested at least once.
* Fix ManageSieve proxy to recognize response codes from the backend and forward
  them to the user if appropriate/safe.
* Implement proper support for ManageSieve SASL ANONYMOUS login.
* Enforce ManageSieve protocol syntax better with some of the commands. Some 
  commands still allow spurious extra arguments.
* 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.)

* ## MAKE A THIRD RELEASE (0.3.x) ##

* Implement abstract string list and make matching interface more generic. Use
  this to:
	- Simplify matching API
	- Implement index extension
	- Implement extlists extension
* 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.
* Make the sieve storage a base class with (possibly) various implementations, 
  just like mail-storage. This aims to provide support for alternate types
  of script storage like LDAP or SQL database.
* Add support for stream matching for handling large values, e.g. from the body
  extension.
* Implement message modification and extraction API in order to:
	- Implement editheader extension
	- Implement replace, enclose, foreverypart, mime and extracttext extensions 
* 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)
* 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)
* Variables extension: implement compile time evaluation of constant values
* 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. 
* Implement SIP notify mechanism.