Re: [Extra] AD review of draft-ietf-extra-sieve-fcc-06.txt

Alexey Melnikov <alexey.melnikov@isode.com> Fri, 16 November 2018 18:26 UTC

Return-Path: <alexey.melnikov@isode.com>
X-Original-To: extra@ietfa.amsl.com
Delivered-To: extra@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C7D761292AD for <extra@ietfa.amsl.com>; Fri, 16 Nov 2018 10:26:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=isode.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HcJApjvyca3r for <extra@ietfa.amsl.com>; Fri, 16 Nov 2018 10:26:22 -0800 (PST)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id 90CC3126BED for <extra@ietf.org>; Fri, 16 Nov 2018 10:26:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1542392781; d=isode.com; s=june2016; i=@isode.com; bh=mtEmjBcuqZNZ0GivJMo9r6CjHFJNkk4jNyJFfcq6t8w=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=AMbbkFrbjYTFANzOKhpa4lub17ecuKnGWxxkJWw84GpoHguLDzt0onKDbTmXAq8PnSuP3L 5BPfBbpO1wBsUG4f85s48w5QIyMxQbZPB/AjfRQpvFtcTiqQgPNdI2OMKKkbbQkNImxvr8 JPhIAkWukVVnLGLAs2q5s+ZMjyeOz/8=;
Received: from [172.20.1.215] (dhcp-215.isode.net [172.20.1.215]) by waldorf.isode.com (submission channel) via TCP with ESMTPSA id <W-8LzQArG0mL@waldorf.isode.com>; Fri, 16 Nov 2018 18:26:21 +0000
To: Ken Murchison <murch@fastmail.com>, extra <extra@ietf.org>
References: <2a2f0f33-b056-1a04-aa11-8b8d0a448a4c@isode.com> <fb5a5946-3c09-fa42-7f9e-fc0344e134da@fastmail.com>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <f9d1254e-2d26-50a1-8cc0-d5d47276958f@isode.com>
Date: Fri, 16 Nov 2018 18:25:52 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.0
In-Reply-To: <fb5a5946-3c09-fa42-7f9e-fc0344e134da@fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-GB
Content-transfer-encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/2xWMrsUzhAsXxj0dlx5jQXP7FX0>
Subject: Re: [Extra] AD review of draft-ietf-extra-sieve-fcc-06.txt
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <extra.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/extra>, <mailto:extra-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/extra/>
List-Post: <mailto:extra@ietf.org>
List-Help: <mailto:extra-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/extra>, <mailto:extra-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Nov 2018 18:26:25 -0000

Hi Ken,

On 09/11/2018 16:54, Ken Murchison wrote:
>
> On 10/16/18 12:35 PM, Alexey Melnikov wrote:
>> Hi,
>>
>> The document is generally fine and contains enough details to 
>> implement, but I found a few minor issues:
>>
>>
>> 3.  Tagged Argument ":fcc"
>>
>>    For convenience, the "FCC" syntax element is defined here using ABNF
>>    [RFC5234] so that it can be augmented by other extensions.
>>
>> Actually, you are not using ABNF, you are using Sieve syntax.
>>
>>    FCC = ":fcc" <mailbox: string>
>
> Hmm.  I'd like to use a syntax which can be extended to include 
> compatible fileinto arguments as part of FCC (related to your point 
> below about use of =/

I think you either need to change the comment that starts with "For 
convenience" to reference Sieve RFC syntax or you change FCC to be 
proper ABNF. I think doing the former would be easier.

>
>>
>> Later in the same section:
>>
>>    If the specified mailbox doesn't exist, the
>>    implementation MAY treat it as an error, create the mailbox, or file
>>    the message into an implementation-defined mailbox.
>>
>> Allowing for either an error or filing into different mailboxes is going
>> to make scripts non portable, considering that there is no way to test
>> in a Sieve script which exact behaviour is supported.
>>
>> Also, why is it Ok to have all these different choices, which will 
>> potentially
>>
>> confuse users? I would like to either have a way to test for 
>> different behaviour
>>
>> or have some explanation in the document why all of the choices are 
>> acceptable.
>
> I think some of this text was borrowed from special-use.  Would be be 
> acceptable to do what fileinto does, which is if the target mailbox 
> doesn't exist, then the message ends up in INBOX?  I'm also fine 
> treating it as an error.
That would be fine with me.

>> In 3.1:
>>
>>    o  Subject: The Subject header field is OPTIONAL and MAY be generated
>>       as follows: The subject is set to the characters "Fcc: " followed
>>       by the subject of the message being processed by the Sieve
>>       interpreter.
>>
>> Please make it clear that subject encodings used by RFC 2231 are Ok 
>> to be used,
>> so if an implementation does prefix matching, this is done after 
>> decoding.
>>
>> In 3.2:
>>
>>    Vacation auto-reply messages are MIME-compliant and MAY
>>
>> This is not an implementation choice and is not a compliance statement,
>> so use of RFC 2119 MAY is not appropriate here. So please use either
>> "may" or "can" here.
> I will use "can".
>
>>
>> There is similar text in Section 3.3.
>>
>>    be filed into
>>    the target mailbox without modification.
>>
>> In 3.3.1:
>>
>>    Example:
>>
>>    require ["enotify", "fcc"];
>>
>>    if notify_method_capability "xmpp:" "Fcc" "yes" {
>>
>>
>> Is "fcc" case insensitive? (I didn't check).
>
> The default comparator used by notify_method_capability is 
> i;acsii-casemap.  In fact, the example in RFC5435 is quite similar.


Ok. Maybe it is worth pointing this out.

>
>>
>>        notify :fcc "INBOX.Sent"
>>               :message "You got mail"
>>               "xmpp:ken@example.com?message;subject=SIEVE";
>>    } else {
>>        notify :fcc "INBOX.Sent"
>>               :message "You got mail!"
>>               "mailto:ken@example.com";
>>    }
>>
>> In 3.5:
>>
>> 3.5.  Interaction with Fileinto Extensions
>>
>>    The "fcc" extension can be used with some tagged arguments defined in
>>    extensions to the "fileinto" action.
>>
>> This got me initially very confused and I was confused till section 
>> 3.5.4,
>> until I saw the example. I thought you were defining use of :fcc with 
>> "fileinto",
>> but you are actually allowing use of some "fileinto" tagged arguments 
>> together
>> with ":fcc" in other actions. So maybe rephrase this like this:
>>
>>    This document defines how some tagged arguments defined in
>>    extensions to the "fileinto" action can be used together with ":fcc"
>>    used in other actions.
>>
>> Or something like that.
>
> Agreed.  Your text is clearer.
>
>
>>
>>    The sections below describe its
>>    interaction with currently defined extensions.  Tagged arguments in
>>    future extensions to the "fileinto" command should describe their
>>    interaction with ":fcc", if any.
>>
>> In 3.5.1:
>>
>>    FCC =/ [":flags" <list-of-flags: string-list>]
>>
>> I think use of "=/" is wrong here. You are not defining another 
>> alternative to
>> ":fcc", you are allowing some tags to be used together with it.
>>
>> I suggest you either define a separate production from FCC or you 
>> just use
>> Sieve syntax:
>
> See above.  I'm open to suggestions on how to handle the grammar.

I would something like this instead:


FCC_EXTRA = [":flags" <list-of-flags: string-list>]


And explain that FCC_EXTRA can be used any time FCC is included.

It is probably ok to use "=/" for FCC_EXTRA, but you might want to 
define this in prose. Something along the lines of using =/ similar to 
the way that ABNF defines it, although you are not using exact ABNF syntax.

>
>>
>>    ":flags" <list-of-flags: string-list>
>>
>>  and describe the rest in text.
>>
>> (Similar issue in 3.5.2 and 3.5.3)
>>
>> Best Regards,
>>
>> Alexey