Re: [netmod] WG Last Call: draft-ietf-netmod-artwork-folding-02

"Rob Wilton (rwilton)" <rwilton@cisco.com> Tue, 28 May 2019 16:03 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A3D47120168; Tue, 28 May 2019 09:03:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.499
X-Spam-Level:
X-Spam-Status: No, score=-14.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=NT8yVXyV; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=XbtPts7N
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 mFG1NaBJAxbz; Tue, 28 May 2019 09:03:05 -0700 (PDT)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 55156120155; Tue, 28 May 2019 09:03:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=26067; q=dns/txt; s=iport; t=1559059385; x=1560268985; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=LgAayIxc5Awebgo6eFiXdfEFypK2VG1VfssLTOT01xY=; b=NT8yVXyVaviYxUORb8NY9Phvm4AkRjV0uNn+u/Unm4rxYLu/gR+l3T4W koR4ts9JqMSmH7bXxr/PomfDsLnJ2HU3s2rjzhFirT0MeW1EGO9hxtKdm SfYIGat+yqL191JhTFPUpFj60B+1vojeYsgVZXcnG9w3VBdOidMAsC9yT Y=;
IronPort-PHdr: 9a23:f9lXJRLtSXxvcRshKNmcpTVXNCE6p7X5OBIU4ZM7irVIN76u5InmIFeBvad2lFGcW4Ld5roEkOfQv636EU04qZea+DFnEtRXUgMdz8AfngguGsmAXFfkLfr2aCoSF8VZX1gj9Ha+YgBY
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BHAADWWu1c/5ldJa1bChwBAQEEAQEHBAEBgVEHAQELAYEOLyQFJwNpVSAECygKh1ADhFKKK4JXfpYtgS4UgRADVAkBAQEMAQEtAgEBhEACgmMjNAkOAQMBAQQBAQIBBG0cDIVKAQEBAQMSFQYTAQE3AQ8CAQgRBAEBIQ4yHQgCBA4FCBqDAYEdTQMdAQKeXwKBOIhfgW0zgnkBAQWEfRiCDwmBNAGLUheBQD+BEUaCFzU+hBkTGoM6giaLJCABhyqIJYxgYwkCgg2TMIIfhmaNRKJmAgQCBAUCDgEBBYFPOIFXcBWDJ4IPgSUBCIJCilNygSmLFyuBBAGBIAEB
X-IronPort-AV: E=Sophos;i="5.60,523,1549929600"; d="scan'208,217";a="276690392"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 28 May 2019 16:03:04 +0000
Received: from xch-rcd-011.cisco.com (xch-rcd-011.cisco.com [173.37.102.21]) by rcdn-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id x4SG33hA018158 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 28 May 2019 16:03:04 GMT
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by XCH-RCD-011.cisco.com (173.37.102.21) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 28 May 2019 11:03:02 -0500
Received: from xhs-aln-001.cisco.com (173.37.135.118) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 28 May 2019 12:02:57 -0400
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-001.cisco.com (173.37.135.118) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 28 May 2019 11:02:56 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JixwDLCIbjcanNKpxSoEAsQJrFjOENGIDRmZshcljUU=; b=XbtPts7Nfz1T99DOzqvcX97L4EOwUBtZtxuTqsYPHT1RlZzQ/tXC3yn41w8mXeO9xetbegdxwRQnXZ6Zv6pdH0/Iw+TBWkFmPCDAsw1NZiuugSiVMznpIZcKeYlELlEIZMkaWeTFyrdQ6OE5KfIlT803AcVyjthp30MnU2zuV5U=
Received: from BYAPR11MB2631.namprd11.prod.outlook.com (52.135.227.28) by BYAPR11MB3175.namprd11.prod.outlook.com (20.177.127.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1922.16; Tue, 28 May 2019 16:02:55 +0000
Received: from BYAPR11MB2631.namprd11.prod.outlook.com ([fe80::d837:c1dd:cdb1:bb78]) by BYAPR11MB2631.namprd11.prod.outlook.com ([fe80::d837:c1dd:cdb1:bb78%7]) with mapi id 15.20.1922.021; Tue, 28 May 2019 16:02:55 +0000
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: Kent Watsen <kent@watsen.net>
CC: "netmod@ietf.org" <netmod@ietf.org>, "draft-ietf-netmod-artwork-folding@ietf.org" <draft-ietf-netmod-artwork-folding@ietf.org>
Thread-Topic: [netmod] WG Last Call: draft-ietf-netmod-artwork-folding-02
Thread-Index: AQHVCQh/oSnqrubDN0ieHZJH/cPGUKaAcPjQgABTS4CAAAF6YA==
Date: Tue, 28 May 2019 16:02:55 +0000
Message-ID: <BYAPR11MB263191E71A0E09CE1667AB45B51E0@BYAPR11MB2631.namprd11.prod.outlook.com>
References: <e6fc4541-891a-60cb-e956-86f238d09f14@labn.net> <BYAPR11MB263112EA231A41491AC4DF89B51E0@BYAPR11MB2631.namprd11.prod.outlook.com> <0100016aff1640f0-a301a70e-ecae-4754-84d1-12170d5b73fd-000000@email.amazonses.com>
In-Reply-To: <0100016aff1640f0-a301a70e-ecae-4754-84d1-12170d5b73fd-000000@email.amazonses.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=rwilton@cisco.com;
x-originating-ip: [173.38.220.56]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d17fae40-d948-4a7e-2b78-08d6e385f264
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BYAPR11MB3175;
x-ms-traffictypediagnostic: BYAPR11MB3175:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <BYAPR11MB31756622D357142381FB755CB51E0@BYAPR11MB3175.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 00514A2FE6
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(346002)(39860400002)(136003)(366004)(376002)(199004)(189003)(51444003)(51914003)(7696005)(99286004)(76176011)(54906003)(53546011)(6506007)(102836004)(68736007)(4326008)(14454004)(86362001)(478600001)(81156014)(81166006)(8676002)(6246003)(53936002)(25786009)(74316002)(6916009)(229853002)(8936002)(9326002)(71200400001)(71190400001)(55016002)(52536014)(6306002)(7736002)(54896002)(5660300002)(3846002)(9686003)(6116002)(790700001)(66066001)(64756008)(66946007)(66446008)(2906002)(66556008)(66476007)(73956011)(6436002)(26005)(76116006)(186003)(446003)(11346002)(486006)(476003)(316002)(33656002)(66574012)(14444005)(256004); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR11MB3175; H:BYAPR11MB2631.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: QiReeKvgTs26utC8XpqdqNHqyuNxwEVR5/eY67TT7QNHEF/ZW8IwC0ww6zmFKIhXZfo4q+BFpIDIx6lEJ7tslytfVkgjUirBiOeNauvzx2FpzayzUp+P0QJAwZrE29LCs4ahp3mGhzsRDjJT5d3fTjOwZDyVKIAGAxzcDL2FMY1+4mHem6Lm7g8c/+b8ZnXlP02+pjNr/wkU4w0GSM4XrvL2rw6yqjkMxSkeRBtdC+HFLZThkzOBQt4xrv34DlYdLk5nWsypa5CrJGpCIBwTnyYQD7aOEcMa8l1iPOaYN70c19IngAdUDL84fpgA7amQbt98foGcjTMVGmMp39sUVNWwWR4tEeUsD0EptMnfOb4QWz0Jq+Jd6xurorm87KwqLDZMpFcnS4EV6SQesrm3+Djy1e7PWRUvlhVHPUWaYqM=
Content-Type: multipart/alternative; boundary="_000_BYAPR11MB263191E71A0E09CE1667AB45B51E0BYAPR11MB2631namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: d17fae40-d948-4a7e-2b78-08d6e385f264
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 May 2019 16:02:55.4141 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: rwilton@cisco.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3175
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.21, xch-rcd-011.cisco.com
X-Outbound-Node: rcdn-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/cobER5fm4CQW0Ag_rKHCe9uNHWM>
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-artwork-folding-02
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 May 2019 16:03:09 -0000

Hi Kent,

Please see inline ...

From: Kent Watsen <kent@watsen.net>
Sent: 28 May 2019 16:37
To: Rob Wilton (rwilton) <rwilton@cisco.com>
Cc: netmod@ietf.org; draft-ietf-netmod-artwork-folding@ietf.org
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-artwork-folding-02

Hi Rob,

Thanks for your review.  Comments below.




1) Abstract:
I wasn't sure whether the abstract is still entirely accurate, given that the document describes two strategies rather than one, only one of those strategies is time proven ('\'), and only one of those strategies works on *any* text-based content ('\\').

True, how about this (with a similar change in the Introduction)?

   This document defines two strategies for handling long lines in
   width-bounded text content.  One strategy is based on the time-proven
   use of a single backslash ('\') character to indicate where line-
   folding has occurred, with the continuation occurring with the first
   non-space (' ') character on the next line.  The second strategy
   extends the first strategy by adding a second backslash character to
   identify where the continuation begins and thereby able to handle
   cases not supported by the first strategy.  Both strategies use a
   self-describing header enabling automated reconstitution of the
   original content.

[RW]
Yes, I think that is better, and probably OK.

I still slightly question "One strategy is based on the time-proven use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first non-space (' ') character on the next line."  Because I don't think that is how '\' character works, at least in languages such as C.  Specifically, it doesn't ignore leading whitespace on the following line, instead it is often used where that whitespace is not significant to the compiler.




2) Section 4. Goals:
Is one of the goals to *exactly* reproduce the input text to the folding algorithm?  If so, this might be worth explicitly stating (e.g. because of the whitespace handling when using the single backslash strategy).

This is what the second goal (4.2.) means by "reconstitution of the original text content".   The below is slightly modified, is it okay?

  4.2.  Automated Reconstitution of the Original Text Content
     Automated reconstitution of the original text content is needed to
     support validation of text-based content extracted from documents.

     For instance, already YANG [RFC7950] modules are extracted from
     Internet-Drafts and validated as part of the draft-submission
     process.  Additionally, the desire to validate instance examples
     (i.e., XML/JSON documents) contained within Internet-Drafts has
     been discussed ([yang-doctors-thread]).

[RW]
Perhaps "original text content" -> "exact original text content"?  But I'm also OK with your suggested text.


3) Section 5.1
Nit: will work -> works.

Fixed.



4) Section 5.2, 4th paragraph about functions.
I'm not sure this paragraph really adds anything to the document, so I would suggest removing it.  E.g. does this means that we should use YANG groupings to avoid line length indentation issues, if so, I would question whether that makes the resulting YANG model more readable.

Removed.  I agree that the (unfolded) YANG module's readability is more important and, besides, these are just examples and don't preclude anything.



5) Section 5.2, last paragraph.
I think that the RECOMMENDED is perhaps a bit strong, hence I would prefer "suggested" or "encouraged" over "RECOMMENDED".  I think that some/many of the input formats do have ways that the input can be modified such that folding isn't required, but I'm not sure that we necessarily advocate that should always be done.

Disagree.  We do want to advocate authors do what they can.  It was a SHOULD before, but downgraded to a RECOMMENDED to be less overt.
[RW]
According to RFC2119, RECOMMENDED is interpreted exactly the same way as SHOULD.

3. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
   may exist valid reasons in particular circumstances to ignore a
   particular item, but the full implications must be understood and
   carefully weighed before choosing a different course.

I still think that SHOULD/RECOMMENDED is too strong.


6) 7.2.1. '\' folding algorithm:
It should also check if the line contains more than "max line length space" characters and if so it cannot be folded using this strategy.

You're correct that this is a problem case, but isn't it covered already by the following sentence?

   1.  Determine where the fold will occur.  This location MUST be
       before or at the desired maximum column, and MUST NOT be on top
       of a space (' ') character.  If no such location can be found,
       then exit (this text content cannot be folded)
[RW]
Yes, thanks for the clarification.


7) 8.2.1. '\\' folding algorithm, 6th paragraph:
Does this have to abort if it finds a '\' character at the end of the line, and start at next?  I think that this could still be handled by folding again at that same point, which when unfolded should go back to the same input again.  Of course, such a tool might also warn that the input might already be folded input.  One of the advantages of the '\\' method is that it should be able to deterministically work on any input.

Good point, how about this?

   Scan the text content to ensure no existing lines already end with a
   backslash ('\') character while the subsequent line starts with a
   backslash ('\') character as the first non-space (' ') character, as
   this could lead to an ambiguous result.  If such a line is found, and
   its width is less than the desired maximum, then it SHOULD be flagged
   for forced folding (folding even though unnecessary).  If the folding
   implementation doesn't support forced foldings, it MUST exit.

   <snip>

   For each line in the text content, from top-to-bottom, if the line
   exceeds the desired maximum, or requires a forced folding, then fold
   the line by:


[RW]
OK.


Final comment, and it is probably a bit late for this, but rather than having two separate schemes, I have one quick idea for merging the two.
<snip>

Yes, too late for that kind of change I think, at least I'm not interested in investing the time to see if its viable.
[RW]
OK.

Thanks,
Rob


Kent // author