[Extra] Barry Leiba's Discuss on draft-ietf-extra-imap-fetch-preview-03: (with DISCUSS and COMMENT)
Barry Leiba via Datatracker <noreply@ietf.org> Mon, 08 April 2019 03:25 UTC
Return-Path: <noreply@ietf.org>
X-Original-To: extra@ietf.org
Delivered-To: extra@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D1A5A1202C3; Sun, 7 Apr 2019 20:25:30 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Barry Leiba via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-extra-imap-fetch-preview@ietf.org, Bron Gondwana <brong@fastmailteam.com>, extra@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Barry Leiba <barryleiba@computer.org>
Message-ID: <155469393077.18315.15660535375707491655.idtracker@ietfa.amsl.com>
Date: Sun, 07 Apr 2019 20:25:30 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/H0bDkbz0_KFGY7vWRf1reuASLPo>
Subject: [Extra] Barry Leiba's Discuss on draft-ietf-extra-imap-fetch-preview-03: (with DISCUSS and COMMENT)
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 08 Apr 2019 03:25:31 -0000
Barry Leiba has entered the following ballot position for draft-ietf-extra-imap-fetch-preview-03: Discuss 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 https://www.ietf.org/iesg/statement/discuss-criteria.html for more information about IESG DISCUSS and COMMENT positions. The document, along with other ballot positions, can be found here: https://datatracker.ietf.org/doc/draft-ietf-extra-imap-fetch-preview/ ---------------------------------------------------------------------- DISCUSS: ---------------------------------------------------------------------- — Section 3.1 — I don’t understand “the client’s priority decision”: what decision is that? And what’s the point of giving the server a list of algorithms here, given that they all have to be ones that are supported by the server? Won’t the server always have to use the first one in the list? If not, please add some text explaining what the server does. — Section 3.2 — If the preview is not available, the server MUST return NIL as the PREVIEW response. A NIL response indicates to the client that preview information MAY become available in a future PREVIEW FETCH request. Note that this is semantically different than returning a zero-length string, which indicates an empty preview. I think the MUST here is hard to follow, because the text doesn’t make a clear enough distinction between “preview is not available” and “an empty preview”. Can you expand the text a bit to explain the distinction more clearly, as this is a protocol requirement? Also, as I noted in response to Meral’s Gen-ART review it would be good to be clear how encrypted messages should be handled in this regard. — Section 4.1 — The preview text MUST be treated as text/plain MIME data by the client. I think this requires a normative reference to RFC 2046. — Section 5.1 — The way you have LAZY working isn’t really consistent with the IMAP protocol model. In that model, the client would not have to ask for the preview twice, one with LAZY and one without. Instead, with LAZY, the server would return FETCH PREVIEW responses when it could — perhaps some in the first set of FETCH responses, and some, where the PREVIEW part was missing before, in unsolicited FETCH responses when the preview became available. That way, the server has the responsibility of setting off a separate task to generate the previews, and to send them to the client when it has them (at which point it either saves the for future FETCHes or doesn’t). As it’s written here, the client has to open a separate IMAP session with the server and ask a second time for the previews it’s missing — a separate session to avoid blocking other action on the main session. And if the server has spun off a task to preemptively generate them because the client asked once (a good practice, given the description here) it has to retain them for some indefinite period waiting for the client to ask again. Why was this not done with the first mechanism? — Section 7 — As was mentioned in Ben’s review, either the ABNF for “capability” is in error (it should not include “preview-mod-ext”) or the description needs to be significantly beefed up. I’m guessing that the intent is that PREVIEW= capabilities include both algorithms and modifiers, that PREVIEW=FUZZY is required, that the presence of any preview algorithm implies PREVIEW=LAZY such that the latter not only need not be specified, but is not permitted to be. So we might have “PREVIEW=FUZZY PREVIEW=FURRY PREVIEW=SLEEPY”, which would mean we support the algorithms FUZZY and FURRY, and the modifiers LAZY and SLEEPY. Is that correct? That seems somewhat obtuse to me, overloading the PREVIEW= capability and inviting confusion. — Section 8 — It seems like a bad idea to have to keep the IMAP Capabilities registry in sync with the two new registries: as it stands, when you add a new algorithm you have to add it to the Preview Algorithms registry, and also add a corresponding entry in the Capabilities registry... and similarly for a modifier, if I have that right above. Why not follow the model of AUTH= and RIGHTS=, and just reserve the PREVIEW= capability in the registry, allowing it to apply to entries from the two new registries? That avoids inconsistencies in registrations if we later add algorithms or modifiers. ---------------------------------------------------------------------- COMMENT: ---------------------------------------------------------------------- — Section 3.1 — Nit: Please change “alternately” to “alternatively”. These algorithms MUST be one of the algorithms identified as supported in the PREVIEW capability responses. There’s a number-agreement problem here. NEW All algorithms in the list MUST have been included in the list of algorithms identified as supported in the PREVIEW capability responses. END — Section 3.2 — This relaxed requirement permits a server to offer previews as an option without requiring potentially burdensome storage and/or processing requirements to guarantee immutability for a use case that does not require this strictness. That’s sensible, but can you include some text giving an example of a situation where the preview might change? Given that the messages themselves are immutable, why would applying the same algorithm to the same text give different results? — Section 4.1 — The server SHOULD limit the length of the preview text to 200 preview characters. This length should provide sufficient data to generally support both various languages (and their different average word lengths) and different client display size requirements. The server MUST NOT output preview text longer than 256 preview characters. The text here should make it clear, because many implementers do not understand the difference, that these refer to *characters*, not *bytes*, and that 200 or 256 characters can possibly be much longer than 256 bytes. I worry that an implementer might allocate a buffer of 256 bytes, thinking that’s enough, and have it overflowed. The server SHOULD remove any formatting markup that exists in the original text. This is OK as it is, but perhaps a bit more specific than necessary. I think the sense is that the server is meant to do its best to render the preview as plain text, because that’s what the client will treat it as. As such, I would fold this into the earlier paragraph that talks about no transfer encoding, and maybe say it something like this: The generated string will be treated by the client as plain text, so the server should do its best to provide a meaningful plain text string. The generated string MUST NOT be content transfer encoded and MUST be encoded in UTF-8 [RFC3629]. For purposes of this section, a "preview character" is defined as a single UCS character encoded in UTF-8. The server SHOULD also remove any formatting markup, and do what other processing might be useful in rendering the preview as plain text.
- [Extra] Barry Leiba's Discuss on draft-ietf-extra… Barry Leiba via Datatracker
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Chris Newman
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Chris Newman
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Barry Leiba
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Alexey Melnikov
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Michael Slusarz
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Barry Leiba
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Michael Slusarz
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Barry Leiba
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Arnt Gulbrandsen
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Neil Jenkins
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Barry Leiba
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Michael Slusarz
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Michael Slusarz
- Re: [Extra] Barry Leiba's Discuss on draft-ietf-e… Neil Jenkins