Re: [imap5] Comments on draft-gulbrandsen-imap-move-01

Arnt Gulbrandsen <arnt@gulbrandsen.priv.no> Sat, 02 June 2012 15:07 UTC

Return-Path: <arnt@gulbrandsen.priv.no>
X-Original-To: imap5@ietfa.amsl.com
Delivered-To: imap5@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4996721F854E for <imap5@ietfa.amsl.com>; Sat, 2 Jun 2012 08:07:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.423
X-Spam-Level:
X-Spam-Status: No, score=-2.423 tagged_above=-999 required=5 tests=[AWL=0.176, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KpTHGDD9v0kd for <imap5@ietfa.amsl.com>; Sat, 2 Jun 2012 08:07:17 -0700 (PDT)
Received: from strange.aox.org (strange.aox.org [IPv6:2001:4d88:100c::1]) by ietfa.amsl.com (Postfix) with ESMTP id 4A8B921F8542 for <imap5@ietf.org>; Sat, 2 Jun 2012 08:07:17 -0700 (PDT)
Received: from fri.gulbrandsen.priv.no (unknown [127.0.0.1]) by strange.aox.org (Postfix) with ESMTP id 4C531F8CFE4; Sat, 2 Jun 2012 15:07:16 +0000 (UTC)
Received: from arnt@gulbrandsen.priv.no by fri.gulbrandsen.priv.no (Archiveopteryx 3.1.4) with esmtpsa id 1338649634-10044-10043/11/15; Sat, 2 Jun 2012 15:07:14 +0000
Message-Id: <4FCA2C20.20108@gulbrandsen.priv.no>
Date: Sat, 02 Jun 2012 17:07:12 +0200
From: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120430 Thunderbird/12.0.1
Mime-Version: 1.0
To: imap5@ietf.org
References: <7EF71BCD5999FCCF89A1E22D@caldav.corp.apple.com>
In-Reply-To: <7EF71BCD5999FCCF89A1E22D@caldav.corp.apple.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Cc: Barry Leiba <barryleiba@computer.org>
Subject: Re: [imap5] Comments on draft-gulbrandsen-imap-move-01
X-BeenThere: imap5@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion on drastically slimming-down IMAP." <imap5.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imap5>, <mailto:imap5-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imap5>
List-Post: <mailto:imap5@ietf.org>
List-Help: <mailto:imap5-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imap5>, <mailto:imap5-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jun 2012 15:07:18 -0000

Lovely review, thanks.

On 05/31/2012 04:20 PM, Cyrus Daboo wrote:
> - §2: what is the problem with sequence MOVE and EXPUNGE?

I wouldn't mind having MSN-based move. But if you look at the yearly 
move proposal disasters, MSNs were often mention just before the whole 
thing exploded.

So I thought, since I couldn't find any clients that both expose move in 
the UI and use COPY rather than UID COPY, why not skip the MSN variant 
in the -00 draft?

If you as client author would prefer MOVE to UID MOVE, and none of the 
server authors have a problem with implementing it, then I don't mind 
adding it to the draft.

> - §2: "atomically" - I would prefer not to use the term "atomic" given
> that we are allowing partial failures (i.e., some messages might not be
> moved, whilst others are). So in the first paragraph I suggest changing
> "atomically" to "using a single command".

The word atomic seems to be a trouble magnet. I've removed the word 
completely from the draft, and instead merely describe what's desired 
(each single message is either moved or left unchanged).

> - §3: This needs a 3501-like "formal" definition with Arguments:,
> Responses:, Results: etc. It should use the same text for describing
> preservation of flags (see note below) and internal date.

I disgree, but if you want I'll do it. For now I've only added an open 
issue to do it (time is short today and I'm still only halfway through 
your review).

> We need to
> decide whether the \Recent flag is set like COPY (probably should be).

I'm strongly in favour. Everything should be like copystoreexpunge, 
unless there is a specific and good reason to differ.

> Also, the [TRYCREATE] behavior from COPY should be re-used. Should
> probably note that this command is only valid in selected state (or
> include a comment to that effect in the formal syntax which 3501 does
> for the command-select syntax element).

It is reused already; MOVE is defined in terms of, etc. But I'll add a 
sentence like "which means that e.g. TRYCREATE blah".

> - §3, ¶2: "UID EXPUNGE" - need a reference to the UIDPLUS extension.

Added already. If I didn't misunderstand, Barry asked me to not post any 
update until the WG has been chartered.

> - §3, ¶4: states that \Deleted must not be set in the target mailbox.
> But what if the messages being moved already had \Deleted set prior to
> the move? Shouldn't we just state that the flag/keywords prior to the
> move must be set on the messages in the target mailbox?

I've had requests that it work both ways. I have no strong opinions myself.

> - §3: As already mentioned, EXPUNGE responses need to be present. Might
> be worth pointing out that there could be a * EXPUNGE for a message not
> being moved, but which got expunged in another session. Actually, more
> complicated is the case where a message being moved was expunged in
> another session - presumably that message is not moved? Yet it would get
> reported in a * EXPUNGE, but not be part of the COPYUID set.

Fixed.

> - §3: Might want to make it clear that * FETCH FLAGS is NOT sent if
> moved messages have \Deleted added as part of the "internal" server
> implementation of move.

I don't think that was at all clear, or even intended ;) But I think 
you're right, and I added it.

> - §3: Example: change "@S:" to "S:".

Fixed.

> - §3: COPYUID response in the argument is wrong - it should have three
> values: destination mailbox UIDVALIDITY, set of uids from source
> mailbox, set of uids in destination mailbox. Current example only shows
> one set of uids.

Fixed.

> - §4: whilst no one may implement it, there still ought to be a
> reference to the interaction with ANNOTATE. ANNOTATE §4.6 has detailed
> text on the interaction with COPY and something similar is needed for MOVE.

A few paragraphs up I added a sentence stating specifically that 
extensions that extend COPY, extend MOVE in the same way. Will that do?

> - §6: "command" is not the right syntax element to extend. I would
> suggest defining a uidmove element and then use that to extend the 3501
> uid element:
>
>     uidmove =  "UID MOVE" SP set SP mailbox
>     uid     =/ uidmove

I've changed since I posted the last update. I'll leave it as it is for 
now. Who knows whether we'll have an MSN-based move.

Barry: I understood you as saying that I should hold of on posting 
updates until the WG has been formed. Was that right, or can I post an 
update? Cyrus: If I post an update soon, it'll likely contain TBD for 
some of your issues.

Arnt