Roadmap

v1.2 will be the next release after v1.1. v2.0 will provide a rewritten master process and config handling framework, which makes it a lot easier to implement several other features. Many people also want to use configuration that currently isn't possible, but will be easy to support using v2.0 (e.g. different auth lookups or SSL certs based on local/remote IP or protocol).

Below is a list of some of the largest features, their dependencies, priorities and current status.

The priority levels mean:

If you have comments or questions about these features, the Dovecot mailing list would be the correct place to post.

Description

Depends

Priority

Status

Finish v1.1 release.

-

high

Getting near

Mailbox list indexes. Improves performance mainly when doing STATUS for many mailboxes. Also improves LIST performance for non-Maildir++ directory layout.

-

high

Bug fixing needed. Missing support for non-Maildir++ layout.

THREAD REFERENCES indexes which are updated incrementally.

-

high

Bug fixing needed

THREAD X-REFERENCES2 algorithm where threads are sorted by their latest message instead of the thread root message

THREAD REFERENCES indexes

high

Almost done

Virtual mailboxes.

Mailbox list indexes

medium

Somewhat working, needs optimizations

Test suite that can be run before making any releases to make sure everything works as it should. This could be implemented in many different ways, and probably it also requires different implementations for different tests. For example race conditions are almost impossible to detect without long and heavy stress testing. Testing for syscall error and blocking input handling also requires something special. imaptest tool can probably be used for many tests.

-

medium

imaptest supports many tests already, but more needed

Unit tests for all functions where they can reasonably be implemented. At least everything in liblib.

-

low

Started, help needed

Shared mailboxes and IMAP ACL extension.

-

low

Designed

Replace Cyrus Sieve code with a rewritten Sieve implementation. This is being implemented by Stephan Bosch.

-

?

Done around Feb 2008?

Finish v2.0 master/config rewrite.

-

low

Started

Managesieve support. Convert the current managesieve patch to instead work as an external package using v2.0 framework.

v2.0

low

-

dbox: Finish support for storing multiple messages in a file

-

low

Started

dbox: Support for single instance attachment storage.

-

low

Needs design

dbox: Global dbox storage so copying messages from mailbox to another involves only small metadata updates. This requires adding support for global message UIDs and also some kind of interaction with mailbox list indexes.

Mailbox list indexes

low

Needs design

Index file optimizations that break backwards compatibility. Should probably be implemented for v2.0.

-

low

Half-designed

LMTP server.

v2.0

low

Half-designed

Access remote mailboxes with smart proxying.

-

low

Needs design

Replication: async and sync, master-slave and multi-master.

v2.0, proxying (and LMTP server)

low

Half-designed

METADATA (and ANNOTATE) extension using lib-dict as backend. Add a simple filesystem based lib-dict backend.

-

low

Needs design

LEMONADE: NOTIFY extension

Mailbox list indexes

low

Needs design

LEMONADE: CATENATE, COMPRESS, WITHIN, CONVERT extensions.

-

low

Needs design

LEMONADE: URLAUTH extension.

METADATA

low

Needs design

LEMONADE: CONDSTORE extension. Requires adding a new non-backwards compatible transaction record type to log files.

v2.0?

low

Almost done: STORE UNCHANGEDSINCE isn't atomic

LEMONADE: QRESYNC extension.

CONDSTORE

low

Pretty much done

BINARY extension.

-

low

Needs design

Roadmap (last edited 2008-04-28 23:29:24 by TimoSirainen)