Re: [Extra] Benjamin Kaduk's No Objection on draft-ietf-extra-sieve-fcc-08: (with COMMENT)

Ned Freed <> Thu, 10 January 2019 08:15 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B5E0B13118B; Thu, 10 Jan 2019 00:15:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.207
X-Spam-Status: No, score=-1.207 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RDNS_NONE=0.793, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id dpv-1eX9vXDW; Thu, 10 Jan 2019 00:15:12 -0800 (PST)
Received: from (unknown []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6D58B13118A; Thu, 10 Jan 2019 00:15:12 -0800 (PST)
Received: from by (PMDF V6.1-1 #35243) id <>; Thu, 10 Jan 2019 00:10:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=201712; t=1547107807; bh=wLtIZLbFBkkT+qHa4aPV+KK0JI6ZU8nN6xK9IqQ7LUo=; h=Cc:Date:From:Subject:In-reply-to:References:To:From; b=ZUYSYszTJgc1na//8FgGYGQ39vDzKtX+nHw7ykGwjHY8GE8hCC7of3cdfOIj2FJe9 mFFhIJo2klmGhdTSrg9q2eAW5fQBF8EU/WKeQvxVVaKUzx6soEPkAuKAmHXrdtPiss +ZNq7DFxvIodJj29ZqvhXV2Z4CLeeCmEKDgKfmyU=
MIME-version: 1.0
Content-transfer-encoding: 7BIT
Content-type: TEXT/PLAIN; CHARSET=us-ascii
Received: from by (PMDF V6.1-1 #35243) id <>; Thu, 10 Jan 2019 00:10:03 -0800 (PST)
Cc: The IESG <>,,,,
Message-id: <>
Date: Wed, 09 Jan 2019 23:42:01 -0800 (PST)
From: Ned Freed <>
In-reply-to: "Your message dated Wed, 09 Jan 2019 16:04:18 -0800" <>
References: <>
To: Benjamin Kaduk <>
Archived-At: <>
Subject: Re: [Extra] Benjamin Kaduk's No Objection on draft-ietf-extra-sieve-fcc-08: (with COMMENT)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 10 Jan 2019 08:15:15 -0000

> Benjamin Kaduk has entered the following ballot position for
> draft-ietf-extra-sieve-fcc-08: No Objection

> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)

> Please refer to
> for more information about IESG DISCUSS and COMMENT positions.

> The document, along with other ballot positions, can be found here:

> ----------------------------------------------------------------------
> ----------------------------------------------------------------------

> I support Ben's Discuss.  I also have some other comments.

> Section 1

>    Each action that generates additional messages will need to specify
>    how it interfacts with :fcc.  [...]

> Do we need to Update: 5228 so that authors of such future actions are aware
> of this requirement?

Unfortunately Sieve extensions have a tendency to create new requirements
that subsequent extensions have to address. For example, the relational
extension specified in RFC 5231 adds additional match types that
subsequent extensions that specify new tests have to deal with. 

While I realize this is not ideal, I don't think it's reasonable to have to
update the base specification every time this happens.

Specking as an implementor the great thing about Sieve is that the syntax never
changes so you never have to tweak your parser. This is a huge win.

The less great thing is that any time something like this is added have to
check every place the semantic comes up and make sure you've handled all the
cases, meaning it's an O(N*M) sort of deal. The fact that N and M are small and
will remain so is what makes it manageable.

>                          The syntax and semantics of the mailbox
>    argument MUST match those of the mailbox argument to the "fileinto"
>    action specified in Section 4.1 of [RFC5228].  If the specified
>    mailbox doesn't exist, the implementation MUST file the message into
>    the user's main mailbox (e.g.  IMAP "INBOX").

> It's unclear that the "syntax and semantics MUST match" needs the 2119
> MUST; it could just be "are defined to match".  (Except they don't, since
> we add on the extra condition that a nonexistant mailbox name be delivered
> to the no-longer-implementation-defined INBOX folder instead of the other
> MAY options for fileinto.)

A previous response of mine mentioned a similar issue in the special use
extension. On consideration, I think the use of compliance language here is
incorrect in regards to syntax since the Sieve implementation has no control
over what people put in their scripts, and until a script is evaluated there's
no way to be sure the syntactic requirements of the underlying store (which may
or may not be an IMAP store) are met.

Semantics of a syntactically valid mailbox name are another matter. They really
do need to match whatever it is that fileinto does or we have a mess on our
hands. (FWIW, in our implementation there's no way it could work any other way
since the use of :fcc results 

> Section 3.1

>                   Tagged arguments in future extensions to the
>    "fileinto" action should describe their interaction with ":fcc", if
>    any.

> This is not a very strong statement.  What would an implementor be expected
> to do upon encountering such future extensions that do not describe
> interaction with :fcc?

Maybe "need to" rather than "should"? This isn't really a place where
compliance language should be used either since we're talking about
something future extension specifications need to do.

>  (This requirement may also be a candidate for an
> Updates: relationship with 5228.)

We didn't do that with RFC 5231. I'm not sure this is the time to start.

> Section 3.1.2

> Perhaps note that implementations are permitted but not required to create
> the mailbox (if needed) without this extension.

As previously discussed in the EKR comment thread, this definitely needs to be
sorted out.

> Section 3.1.3

> It's a bit odd to update the behavior of another document that's still an
> I-D (vs. specifying the behavior in question in that document).

But the same could be said about that document updating the behavior of this

> Section 5

>    Usage:   vacation [FCC]
>                      [":days" number | ":seconds" number]
>                      [":subject" string]
>                      [":from" string]
>                      [":addresses" string-list]
>                      [":mime"]
>                      [":handle" string]
>                      <reason: string>

> This is presumably just my having skimmed RFC 5228 too quickly, but why is
> this [FCC] instead of [":fcc" string]" or similar?
> (Same for the notify action in Section 6.)

FCC is defined in section 3.2.

> Section 7

> Do we want to have a list of currently defined actions that are not
> compatible with the "fcc" extension, to avoid any confusion by future
> readers as to what was defined at the time of this writing?

As noted previously, we had it and took it out based on review comments. I
don't especially care if we do or not, but we need to pick an approach and
stick to it.