Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt

Aaron Stone <aaron@serendipity.cx> Sat, 16 June 2012 02:22 UTC

Return-Path: <aaron@serendipity.cx>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2356211E8072 for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 19:22:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.043
X-Spam-Level:
X-Spam-Status: No, score=-101.043 tagged_above=-999 required=5 tests=[AWL=0.600, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, USER_IN_WHITELIST=-100]
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 6Gw1ka+cmBSN for <sieve@ietfa.amsl.com>; Fri, 15 Jun 2012 19:22:43 -0700 (PDT)
Received: from slice.serendipity.cx (slice.serendipity.cx [67.23.2.90]) by ietfa.amsl.com (Postfix) with ESMTP id 7010D21F845A for <sieve@ietf.org>; Fri, 15 Jun 2012 19:22:43 -0700 (PDT)
Received: from mail-gg0-f172.google.com (mail-gg0-f172.google.com [209.85.161.172]) by slice.serendipity.cx (Postfix) with ESMTPSA id 617F294002 for <sieve@ietf.org>; Fri, 15 Jun 2012 19:21:11 -0700 (PDT)
Received: by ggnc4 with SMTP id c4so3125368ggn.31 for <sieve@ietf.org>; Fri, 15 Jun 2012 19:22:30 -0700 (PDT)
Received: by 10.236.181.229 with SMTP id l65mr10234950yhm.116.1339813350580; Fri, 15 Jun 2012 19:22:30 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.147.113.19 with HTTP; Fri, 15 Jun 2012 19:22:10 -0700 (PDT)
In-Reply-To: <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com>
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com> <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com> <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com>
From: Aaron Stone <aaron@serendipity.cx>
Date: Fri, 15 Jun 2012 19:22:10 -0700
Message-ID: <CAEdAYKUn=JCP-EsTFRp+Qx84_yu2U1tF2ie1JgAA6Qg7cddesg@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: sieve@ietf.org
Subject: Re: [sieve] WGLC: draft-ietf-sieve-imap-sieve-04.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jun 2012 02:22:44 -0000

Thanks! No sweat on the comments not taken :)

On Fri, Jun 15, 2012 at 6:50 PM, Barry Leiba <barryleiba@computer.org> wrote:
> Thanks, Aaron, for the review.
>
>> RFC 5464 says:
>>   All entries MUST have either "/shared" or "/private" as a prefix.
>>   Entry names are case-insensitive.
>>
>> I think that means our metadata key should be
>> "/shared/imapsieve/script".
>
> Well, it doesn't mean that it couldn't be, say,
> "/shared/IMAPSieve/Script".  It says it's insensitive, so I can put it
> in any case I like.  But as long as I have to change it to add the
> prefix (the text was written when there was no prefix and "value.xxx"
> was used), I also changed it to be all lower case.  Why not?
>
>> Section 2.1: feels like there should be a MUST in here somewhere?
>>
>> OLD
>>   The corresponding Sieve implementation uses the Sieve capability
>>   string "imapsieve", and Sieve scripts that depend upon the IMAP
>>   events MUST include that string in their "required" lists.
>> NEW
>>   The corresponding Sieve implementation MUST provide the "imapsieve"
>>   capability string (see [RFC5228] Section 6.1), and Sieve scripts that depend
>>   upon IMAP events MUST include that string in their "required" lists.
>
> Absolutely not: that would make this the only Sieve extension to say
> that.  All the extensions I've looked at (Vacation, Notify,
> Editheader, Ihave, MIME-loop, Reject) do NOT use 2119 language when
> they talk about the capability string.

OK.

>> Section 2.2: Add a MUST regarding individual script execution, because
>> I missed this requirement the first two times I read through it:
>> OLD
>>   If more than one message is affected at the same time, each message
>>   triggers the execution of a Sieve script separately.  The scripts MAY
>>   be run in parallel.
>> NEW
>>   If more than one message is affected at the same time, each message
>>   MUST trigger execution of the Sieve script separately.  The scripts MAY
>>   be run in parallel.
>
> No.  If you're only taking text to be normative if it has a 2119
> keyword in it, you need to read documents differently.  "This is how
> the protocol works" statements don't need to have "MUST" all over
> them, and I see no need for a MUST here.

OK.

>> Section 2.3.1: Convert from prose to list, and rephrase to include a
>> lot of MUSTs
>> OLD
>>   When an applicable event occurs on an IMAP mailbox, if there is an
>>   IMAP metadata entry named "/IMAPSieve/Script" for the mailbox, that
>>   entry is used.  If there is not, but there is an IMAP metadata entry
>>   named "/IMAPSieve/Script" for the server, that entry is used
>>   (providing a way to define a global script for all mailboxes on a
>>   server).  If neither entry exists, then no script will be invoked.
>> NEW
>>   When an applicable event occurs, the IMAP server MUST inspect
>>   the following metadata entries, in order, to determine which Sieve
>>   script to invoke:
>>   o "/IMAPSieve/Script" for the target mailbox,
>>   o "/IMAPSieve/Script" for the server.
>>   If neither entry exists, then no script will be invoked.
>
> Same as above.  The original text is fine.  I dislike the list format
> here, and see no reason for a MUST.

OK.

>> MINOR: I just realized that there might be confusion over an "empty"
>> script name. I propose that a global server script, and a mailbox
>> script with no value, means "run this script for every mailbox, except
>> this one". If that's OK with you, I propose this text immediately
>> following the text above:
>> NEW
>>    If the script name is an empty string, the server MUST NOT
>>    inspect any further metadata entries (this allows a user to specify
>>    a global server script, but disable it for specific mailboxes).
>
> No reason to tell it not to inspect further, because we've already
> said that if it finds a mailbox entry, it has what it needs.  But I
> like the idea of saying that an empty entry value means that no script
> is run, so I'll add that.  New paragraph 3:
>
>                If a "/shared/imapsieve/script" metadata entry was selected
>                above, its value is used as the name of the Sieve script
>                that will be invoked in response to the IMAP event.
>                If the value is empty, then no script is run.

I dig your subtle style.

> I'll post a new version after I send this.
>
> Barry