主题: [Dovecot] v1.1.rc9 released

http://dovecot.org/releases/1.1/rc/dovecot-1.1.rc9.tar.gz
http://dovecot.org/releases/1.1/rc/dovecot-1.1.rc9.tar.gz.sig

Not many bug reports these last few days, so maybe this release will be
a good one.

    + Maildir: When hardlink-copying a file, copy the W=<vsize> in the
      filename if it exists in the original filename.
    - mbox: With rc8 empty lines were inserted in the middle of saved
      mails' headers.
    - maildir: Fixed problems with opening newly saved messages which we
      saw in index file but couldn't see in dovecot-uidlist. Happened only
      when messages weren't saved via Dovecot (deliver or IMAP).
    - Several bugfixes to handling sort indexes
    - deliver: Boolean settings that were supposed to default to "yes" were
      set to "no" unless explicitly defined in dovecot.conf:
      dotlock_use_excl, maildir_copy_with_hardlinks, mbox_dirty_syncs,
      mbox_lazy_writes.

回复: [Dovecot] v1.1.rc9 released

I merged all the new features and latest v1.1 changes under one tree:

http://hg.dovecot.org/dovecot-1.2/

The changeset order is kind of weird though. The timestamps jump all
around. Wonder if there's a way to reorder them so that it looks more
sane..

The status of the new features:

1. CONDSTORE extension is probably the largest change. It adds new
"modification sequences" for messages that increase whenever the
message's metadata changes.

I'll probably have to reimplement the way modseqs are calculated,
because modseqs will be very useful when implementing replication and
the current way just doesn't work with it. If modseq-supporting clients
see the current modseqs and later the server gets upgraded to new
modseqs, the clients will most likely break. So this change should be
done for v1.2.

2. QRESYNC, ESEARCH, SEARCHRES and WITHIN extensions are fully
implemented. QRESYNC might need some cleanups and optimizations though.

3. CONTEXT=SEARCH extension is fully implemented, but could use a few
optimizations (caching PARTIAL and CONTEXT searches, maybe others too).

4. Virtual mailboxes should work fast after mailbox is opened. The
initial opening could use several optimizations though. It could
probably share some code with QRESYNC to avoid the full initial search
(storing each backend's modseq to index header). Also if search
parameters don't contain any dynamically changing data, there's no point
in searching the old messages.

The current design doesn't allow changing the search parameters or list
of mailboxes, otherwise it breaks more or less badly. I guess I could
add code to check if the dovecot-virtual file's mtime has changed and if
so make it do a full resync. This anyway means that there's no way to
support wildcard mailbox names (e.g. "all mailboxes"). But does anyone
really want that (yet)? It'll anyway be faster/easier to implement once
mailbox list indexes are implemented.

I'll still have to add a new X-MAILBOX search parameter which can be
used to test what the backend mailbox name is. This will be especially
useful with INTHREAD extension. I guess it wouldn't hurt to have FETCH
X-MAILBOX if someone wants it.

5. Thread indexes should work, but some optimizations missing and there
are some small bugs left. X-REFERENCES2 thread algorithm works.

6. INTHREAD extension isn't started yet, but I'll start it soon.
Hopefully won't be too tricky to get it working with virtual mailboxes
and CONTEXT=SEARCH..