On 08/02/2012 04:08, Greg Banks wrote:
G'day,

Sounds like you're having fun at FOSDEM :)

On Tue, Feb 7, 2012, at 02:27 PM, Bron Gondwana wrote:
(I'm copying this to the cyrus-devel list because it's of interest
  to Cyrus people too...)
I'm replying here on the same principle.
Likewise.

[...]
- Bugzilla - use it for everything.  If it doesn't have a bug number
where
   discussion took place, it doesn't get accepted.  This is a major
   workflow
   change, and is probably more of a challenge for me than anyone else.
Sounds good.

Another thing I'd like to see is a push hook on git.cyrusimap.org's master and 2.4 
branches, so that if a git commit has the text "Bug NNNN" in the subject then 
the commit message is copied to Bugzilla and the bug marked RESOLVED - FIXED.
That would be great.
 [...]
NSpam Reporting via IMAP:

- Alexey mentioned that there's talk of adding a command to IMAP to
report
   a message as spam/non-spam rather than setting flags.  This would be
   used
   to actually take action based on the report.
- Google and Yahoo are both involved in this effort.
An early draft on the topic:
<http://datatracker.ietf.org/doc/draft-ordogh-spam-reporting-using-imap/>

Note that it is very likely to change, I've sent lots of details comments to the editor already.

The document is currently being discussed on:

<http://www.ietf.org/mail-archive/web/apps-discuss/current/maillist.html>


Sounds interesting, any more information?

Mail Protocol - initial notes: (Timo&  Bron)
==============================
 [...]
- GUIDs for Folders as well, detect renames.  Dovecot and Cyrus both keep
   a GUID for each folder internally.
Yes!
Sounds sensible. This should be another spec.
- MSGNO/UID/Uidvalidity/etc?  What do we need to keep?  Ordering
properties
   are nice.
MSGNO is a completely useless historical artifact that should be buried in lye 
and forgotten.
No, it is actually very useful if one wants to implement an online client (as opposed to disconnected client).
We need a stable identifier for each message, preferably one which is truly 
stable, i.e. doesn't change on reconstruct or replication.
Yes.
UID+UIDVALIDITY is a sad approximation to this.  RFC822 Message-Id is a better 
approximation, except for Drafts and other Message-Id-less messages.
Except that Message-Id doesn't work for duplicated but not identical messages, etc. It is better do something like UID+UIDVALIDITY.
   Definitely 64 bit everything.
Yes!

- single modseq counter per user?  What about shared folders.  Need to
get
   some statistics.

WISHLIST:
- simple enough that what client authors "expect" just works.  If they
   get confused, it's our fault.
- UTF8 everything.
Yes!  And no quoting crud either.  All strings are non-synchronising literals 
in UTF-8, except raw message data and annotation data which is binary 
non-synchronising literals.
I have sympathy to this argument. Getting rid of quoted strings would be fine. I do however think that having some mechanism for a server to refuse to accept a literal before the whole thing is received (in case it is big) would be good. Dropping connection in such cases is not nice for clients.
* Batching / pipelines.  SEARCH + MARK FLAGGED + MOVE TO ANOTHER MAILBOX
   - basically, "lego blocks" vs "pre-defined"
   - leads on to;
OMG, it's NFSv4 all over again.  The horror.
Well, some simple cases are addressed with SEARCHRES and it works really well.
* Question: do we want full transactional semantics?
No.  Transaction boundaries are impossible to get completely right, and it's 
hard to implement and test and scale.
Agreed. This is very hard for servers to implement and I haven't seen requests from clients for this anyway.
Stateless Operation:
* Phones / poorly connected devices
* Power usage considerations.
Yes!

Notifications:
* Able to easily receive notifications about ALL changes of interest,
   emails / folders / whatever.
Bron's idea about globally unique modseqs sounds interesting. Otherwise use IMAP NOTIFY.
* Notifications still work if connection disconnected (see above)
* Compatible with out-of-band notification to do cheap resync (use OS
   remote notification system in case of phone, etc) - if present.  Even
   SMS.
Yes!  ...somehow.

A lot of these is the CISC vs RISC debate.  I believe it's better to
compose your messages from client to server and server to client out
of groups of small "lego bricks" each of which expresses one thing
succinctly rather than pre-formed "fighter wing" shapes.
Yeah sure, this seems like a good idea now, but further down this track you 
will end up sending little bytecode programs from the client to the server for 
every operation like NFSv4 does.  This actually makes both clients and servers 
harder to write test and debug.  And, like Lego, everything you want to do is 
not quite the right shape and doesn't hang together properly.
You have a point :-)

Best Regards,
Alexey

Reply via email to