Re: [calsify] Roman Danyliw's No Objection on draft-ietf-calext-jscalendar-30: (with COMMENT)

Neil Jenkins <neilj@fastmailteam.com> Wed, 30 September 2020 03:41 UTC

Return-Path: <neilj@fastmailteam.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7ADC43A0C4C; Tue, 29 Sep 2020 20:41:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=5CcLQZ9a; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Jn3PiyIC
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 XWwrkT03AGFK; Tue, 29 Sep 2020 20:41:06 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EAC9A3A0C50; Tue, 29 Sep 2020 20:41:05 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id AAFB75C01A7; Tue, 29 Sep 2020 23:35:59 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute3.internal (MEProxy); Tue, 29 Sep 2020 23:35:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:cc:subject:content-type; s=fm3; bh=TG09 03JJyZ1RvWOTPS9AafAUP/p/6lwFe/SsOmqNzUw=; b=5CcLQZ9a3hXfaUxsvFzC JDPBrkGGMbnyAYqbAVYXuZlGKa2aASqYB4tr3cqsz/FHymoKN+dovlyGVsfIGRqP WUtuJwFUiUMe5FeSBNwTS4eWlW2KkwpuARP511gZTyqhBUv9mCS0RzrSkZLU9/lu VhqjIZnoFFOxcUussnZ9W3xdmRBZ3PWaIixpqAsGW0MsJgyBMw+tb7SUEQoCo2Qa SVj7Nm++no2NN+gClXEuYNexeWSTr5Hdh6MnVINJwkMwhUD4X6KRFzBQiSq4va01 iMlKLx3P1jfq+GCX8yfOvzU+9TpP2TnIiy8q8QNFucOZpvNMctuE9C9A1sSHJDU5 rA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=TG0903 JJyZ1RvWOTPS9AafAUP/p/6lwFe/SsOmqNzUw=; b=Jn3PiyICD5siqQuTDkTqes cIaqLYXyCgeXcNlsYZkxSsU2274P2JjPM/Fbp7LigOkMOL4DgvS+GaE26qoLzxD1 upu+sLa+zoMhVgo81ayho/BAjUq/cJ2XoFQxM5VXLTtlGKq5RRxh4umeWJrxHSxJ VMQXJkEe1LjGroTo04wN45aFO+MHtZUUIk1vpUNCpAfdyaCRYVMc5RF9jxVsxrtL vpMLo4Ylgy5cwJNZtHaCZDGnxO9lSMbH5ozCaXSqrqck+tK78xOdx7ZMYA+2Mi0b WDhhwQUlpQEDteE2RpPTio7Q7QjVO8dOAMyPs/GgumSwfB7CFGpv3GvVxqmczxpA ==
X-ME-Sender: <xms:H_1zX9RvRQee_8sqlqjsH_YtNU5-VuBp7MUy0AJ0h-iuOnmx8sOXwA> <xme:H_1zX2wxb7JmbIWO4mWLi9s_xCwswXGCbK9Y0RqJu4lJR_a5lNUtfRMFYQtJMszMt MWh6SL7Wv85Jw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrfedtgdejtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtsegrtderreerreejnecuhfhrohhmpedfpfgvihhl ucflvghnkhhinhhsfdcuoehnvghilhhjsehfrghsthhmrghilhhtvggrmhdrtghomheqne cuggftrfgrthhtvghrnhepffeukeejkeefheehfeekfeekieelkeffvddufeetgfeihfej veelieeuveetuefhnecuffhomhgrihhnpehivghtfhdrohhrghenucevlhhushhtvghruf hiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehnvghilhhjsehfrghsthhmrghi lhhtvggrmhdrtghomh
X-ME-Proxy: <xmx:H_1zXy1rrw7LJmt901lulwsNCBA4lX9I0afE5by4wYFD1mE9iYiKMw> <xmx:H_1zX1B8WvMhYP7U3JzMxm0QskBMonKSc7zgPvzpqwpWXQWmSgpOxg> <xmx:H_1zX2iSOh-E_9sPTdQ8XX0dJAEpZnoScHYGpqD3aK2QvkjfLgsurA> <xmx:H_1zX-eCgnhOTKoiNhFgu9l_tBHL6QajpIZQuTgg5jXdrhdvOJNSvQ>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 40621180132; Tue, 29 Sep 2020 23:35:59 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-382-ge235179-fm-20200928.002-ge2351794
Mime-Version: 1.0
Message-Id: <b3b41ebd-d1bd-457d-89c1-cc072bf6d7b0@dogfood.fastmail.com>
In-Reply-To: <160080105671.3444.4003800897861337098@ietfa.amsl.com>
References: <160080105671.3444.4003800897861337098@ietfa.amsl.com>
Date: Wed, 30 Sep 2020 13:35:58 +1000
From: Neil Jenkins <neilj@fastmailteam.com>
To: Roman Danyliw <rdd@cert.org>, iesg <iesg@ietf.org>
Cc: draft-ietf-calext-jscalendar@ietf.org, calext-chairs@ietf.org, calsify@ietf.org, Daniel Migault <daniel.migault@ericsson.com>, daniel.migaultf@ericsson.com
Content-Type: multipart/alternative; boundary="c803af8afe444f3b9aec2a7b1b35082f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/pWDDhX-OAgukNUg2iCKzY_2X86A>
Subject: Re: [calsify] Roman Danyliw's No Objection on draft-ietf-calext-jscalendar-30: (with COMMENT)
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Sep 2020 03:41:10 -0000

Hi Roman,

Many thanks for your review.

> ** Section 1.
> The data model should be compatible with the iCalendar data format
>       [RFC5545] [RFC7986] and extensions, but the specification should
>       add new attributes where the iCalendar format currently lacks
>       expressivity, and drop seldom-used, obsolete, or redundant
>       properties.  This means translation with no loss of semantics
>       should be easy with most common iCalendar files.
> 
> Some of these goals seem to conflict.  If JSCalender drops support for things
> in the iCalender format how can it be compatible?  Is it possible to easily
> enumerate what JSCalender no longer supports that iCalendar did?

It's easily translatable without fidelity loss with the vast majority of common usage. However, iCalendar allows some things like arbitrary parameters on properties. To maintain the ability to fully translate these you basically end up having to do just a different syntactical representation of iCalendar – that's what jCal is, and it's horrible to use because it's unlike any regular JSON API and makes simple things complicated.

Redundant properties refers to things like the ability to specify either a "duration" or an "end". This in turn leads to confusion over things like how recurrences work (because even if your master event specifies an "end", the recurrences actually inherit the "duration" in iCalendar – this is not explicitly mentioned anywhere in the spec!) We have fixed things like this (in JSCalendar you can only use duration, not end, and it's explict how this is inherited). You can easily change an "end" into a "duration" when translating from iCalendar. 

> ** Section 1.4.4.  What is the “associated property” from which the time zone
> should come?

I have clarified this. It now reads:

*The time zone to associate with the LocalDateTime comes from the "timeZone" property of the JSCalendar object (see Section 4.7.1).*

> ** Section 1.4.4.   Per “When converting local date-times that fall in the
> discontinuity to UTC, the offset before the transition is used”, would
> normative language be appropriate here – “… the offset before the transition
> MUST be used.”?

Sure, done.

> ** Section 4.1.2.  Shouldn’t “uid” be of type “Id” (per Section 1.4.7)?

That would be nice in theory, but unfortunately while most major calendar providers do generate UIDs that conform to the `Id` type, the iCalendar spec itself does not restrict the characters like this (indeed the examples include an @ symbol) and this is definitely an area we need to maintain easy compatibility.

> ** Section 4.2.5.  timeZone.  Is there a reason this isn't type “Time Zones” instead of “String”?

Good point. I have made TimeZoneId a real data type in the document and updated the relevant type signatures to use this.

> ** Section 4.2.6.  uri.  Provide a reference for “URI” (RFC3986)

Done.

> ** Section 4.4.4.  Does “web” method imply that only http and https URIs are acceptable as a value?

Yes; I have now made this explicit.

> ** Section 7.  s/man-in-the-middle/on-path/
> ** Section 7.  I recommend further emphasizing the sensitive nature of this data

Updated, thanks.

> -- Section 1.4.3.  Editorial.  Colloquial language. s/is OK/is conformant/
> 
> -- Section 1.4.4.  Editorial.  s/see duration semantics below/see duration
> semantics in Section 1.4.5/
> 
> -- Section 4.1.4.  Typo. s/knows/known/
> 
> -- Section 4.3.  s/compelete/complete/
> 
> -- Section 4.4.5.  Typo. s/themself/themselves/
> 
> -- Section 6.  Editorial.  Replace any dates in 2018 to be 2020 in the examples
> (to make the examples be closer to the publish date of this draft).

Thanks, I've updated all of these

> -- Section 1.4.7.  Editorial.  Per “… a UUID is typically a good choice”, I’m
> not sure this is needed given the more detailed text in Section 4.1.2

It's a different context, so I'm going to leave it. This is talking about ids that need only be unique with the self-contained JSCalendar object, so while a UUID is a fine choice it's not required. The uid property described in Section 4.1.2 however needs to be globally unique across all JSCalendar objects, hence the much stronger recommendation.

I have published a revised draft <https://tools.ietf.org/html/draft-ietf-calext-jscalendar-31> incorporating the IESG feedback.

Cheers,
Neil.