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

Aaron Stone <aaron@serendipity.cx> Mon, 18 June 2012 17:26 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 375C821F85DA for <sieve@ietfa.amsl.com>; Mon, 18 Jun 2012 10:26:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.343
X-Spam-Level:
X-Spam-Status: No, score=-101.343 tagged_above=-999 required=5 tests=[AWL=0.300, 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 qH0kGxLNZPTy for <sieve@ietfa.amsl.com>; Mon, 18 Jun 2012 10:26:22 -0700 (PDT)
Received: from slice.serendipity.cx (slice.serendipity.cx [67.23.2.90]) by ietfa.amsl.com (Postfix) with ESMTP id 91C2F21F859A for <sieve@ietf.org>; Mon, 18 Jun 2012 10:26:22 -0700 (PDT)
Received: from mail-gh0-f172.google.com (mail-gh0-f172.google.com [209.85.160.172]) by slice.serendipity.cx (Postfix) with ESMTPSA id D0742334F5 for <sieve@ietf.org>; Mon, 18 Jun 2012 10:24:45 -0700 (PDT)
Received: by ghbg16 with SMTP id g16so4277244ghb.31 for <sieve@ietf.org>; Mon, 18 Jun 2012 10:26:08 -0700 (PDT)
Received: by 10.101.166.2 with SMTP id t2mr5956285ano.70.1340040368846; Mon, 18 Jun 2012 10:26:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.147.113.19 with HTTP; Mon, 18 Jun 2012 10:25:48 -0700 (PDT)
In-Reply-To: <CAEdAYKUn=JCP-EsTFRp+Qx84_yu2U1tF2ie1JgAA6Qg7cddesg@mail.gmail.com>
References: <B5057302A66EA30CEE78BCB9@caldav.corp.apple.com> <CAEdAYKX5LUC00ztFvOaM05cMXTQ0xr5bDuejHdoVL1CXZXoc=w@mail.gmail.com> <CALaySJKjjn2ZghvsNFuqnhsp_89HcBgFKfWThoRz7SJE2_jLVw@mail.gmail.com> <CAEdAYKUn=JCP-EsTFRp+Qx84_yu2U1tF2ie1JgAA6Qg7cddesg@mail.gmail.com>
From: Aaron Stone <aaron@serendipity.cx>
Date: Mon, 18 Jun 2012 10:25:48 -0700
Message-ID: <CAEdAYKWGvrZ+RrrmvtbnSmU7RtzEZ6jMpyQy2COZaiVU3nzb6g@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: Mon, 18 Jun 2012 17:26:23 -0000

I have reviewed the changes in -05, and recommend this document for publication.

Cheers,
Aaron

On Fri, Jun 15, 2012 at 7:22 PM, Aaron Stone <aaron@serendipity.cx> wrote:
> 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