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

Roman Danyliw <rdd@cert.org> Wed, 30 September 2020 12:52 UTC

Return-Path: <rdd@cert.org>
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 0679E3A0475; Wed, 30 Sep 2020 05:52:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cert.org
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 Vxoq9Eco-ymd; Wed, 30 Sep 2020 05:52:23 -0700 (PDT)
Received: from veto.sei.cmu.edu (veto.sei.cmu.edu [147.72.252.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 52F653A041B; Wed, 30 Sep 2020 05:52:22 -0700 (PDT)
Received: from delp.sei.cmu.edu (delp.sei.cmu.edu [10.64.21.31]) by veto.sei.cmu.edu (8.14.7/8.14.7) with ESMTP id 08UCqHXH028967; Wed, 30 Sep 2020 08:52:17 -0400
DKIM-Filter: OpenDKIM Filter v2.11.0 veto.sei.cmu.edu 08UCqHXH028967
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cert.org; s=yc2bmwvrj62m; t=1601470337; bh=2hOdtNpp8Ws7QUMz5QX+HdqgA0TgG2cyWi0hOvgxW+Y=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=LynG+siaavJ2K1MXeyh5sf7PX3P1VwTZa7i/63ZzLCtZiAZEuCgOtVA6XqCEXYAzt qj5x+DTPNO4aZZxIaAzQOF6WzPDPrz03CZn/O3yLL6U9UQJyAhLjZGvnjl2iYmCzNF Zf1yqcIpwBUpyO0vMrm/KPr3D5uIRCn5m6781WvI=
Received: from MORRIS.ad.sei.cmu.edu (morris.ad.sei.cmu.edu [147.72.252.46]) by delp.sei.cmu.edu (8.14.7/8.14.7) with ESMTP id 08UCqDaY022026; Wed, 30 Sep 2020 08:52:13 -0400
Received: from MORRIS.ad.sei.cmu.edu (147.72.252.46) by MORRIS.ad.sei.cmu.edu (147.72.252.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Wed, 30 Sep 2020 08:52:13 -0400
Received: from MORRIS.ad.sei.cmu.edu ([fe80::555b:9498:552e:d1bb]) by MORRIS.ad.sei.cmu.edu ([fe80::555b:9498:552e:d1bb%13]) with mapi id 15.01.1979.003; Wed, 30 Sep 2020 08:52:13 -0400
From: Roman Danyliw <rdd@cert.org>
To: Neil Jenkins <neilj@fastmailteam.com>, iesg <iesg@ietf.org>
CC: Daniel Migault <daniel.migault@ericsson.com>, "daniel.migaultf@ericsson.com" <daniel.migaultf@ericsson.com>, "draft-ietf-calext-jscalendar@ietf.org" <draft-ietf-calext-jscalendar@ietf.org>, "calext-chairs@ietf.org" <calext-chairs@ietf.org>, "calsify@ietf.org" <calsify@ietf.org>
Thread-Topic: Roman Danyliw's No Objection on draft-ietf-calext-jscalendar-30: (with COMMENT)
Thread-Index: AQHWkRJFvxBwEP3St0G7jbGxBpdtsamA1ogAgABX3AA=
Date: Wed, 30 Sep 2020 12:52:12 +0000
Message-ID: <5cddfbe6008549428f715949282f3010@cert.org>
References: <160080105671.3444.4003800897861337098@ietfa.amsl.com> <b3b41ebd-d1bd-457d-89c1-cc072bf6d7b0@dogfood.fastmail.com>
In-Reply-To: <b3b41ebd-d1bd-457d-89c1-cc072bf6d7b0@dogfood.fastmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.64.202.177]
Content-Type: multipart/alternative; boundary="_000_5cddfbe6008549428f715949282f3010certorg_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/2rWc--cE5KbZbol5Fg0zrjHkKFo>
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 12:52:26 -0000

Hi Neil!

Thanks for making these changes in -31 and talking me through why my other comments don’t apply.  Please consider all of my feedback resolved.

Regards,
Roman

From: iesg <iesg-bounces@ietf.org> On Behalf Of Neil Jenkins
Sent: Tuesday, September 29, 2020 11:36 PM
To: Roman Danyliw <rdd@cert.org>; iesg <iesg@ietf.org>
Cc: Daniel Migault <daniel.migault@ericsson.com>; daniel.migaultf@ericsson.com; draft-ietf-calext-jscalendar@ietf.org; calext-chairs@ietf.org; calsify@ietf.org
Subject: Re: Roman Danyliw's No Objection on draft-ietf-calext-jscalendar-30: (with COMMENT)

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.