Re: [netmod] Materials for NETMOD Virtual Interim meeting (Monday)

"Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com> Mon, 14 December 2020 17:17 UTC

Return-Path: <jason.sterne@nokia.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 E10713A105E for <netmod@ietfa.amsl.com>; Mon, 14 Dec 2020 09:17:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level:
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-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=nokia.onmicrosoft.com
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 hTNzyalmtwDK for <netmod@ietfa.amsl.com>; Mon, 14 Dec 2020 09:17:48 -0800 (PST)
Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2110.outbound.protection.outlook.com [40.107.94.110]) (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 A2CAD3A105D for <netmod@ietf.org>; Mon, 14 Dec 2020 09:17:48 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QtcQ012HYSfSHvz9u/E+hb0lwKATQzvF7telX19mU+Ia421uKPDWk30C7P3PTMEiEVoJxjm9gvUtiMUOlHk9Q5ZpPUNNWeEEH5L4zGvNRmYJcfelD6rNt6QI7N6WfytzQjJoVoNE+qWHEBrU80U8ZmpafgyrUUqaKvCxaKLgQjaOFjD9oFDQGfioHxhpI9rDYcn9DHuONutMYLG2S4qlcbU7SYFz4mxv2UazAVDprXSOmcuwTeIVjvtmvdgusdn2o1hpF9q8xM558pkM4MDe0nmTx9XIIkvXJqoLeyq5+I7I0DE1tDp3NyMpoQfRAD7O+xwmb3gdBdlh855Em7qKSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZIgBjrfiC1swdMDmls3a4lJSrvwWQq7OXTtOC+AWTks=; b=C9tPbLjK2bLcZE8sqIEgg1hrHQJqZC6LqCd9UISu0NSqK2Qh6RCMk0qGgrCsKhG5/ub/+mdH6q2uwoJnpufE0hy+i1JHCzgsKEYIF9CYPN9/kzPN52iSvCW17W9DvLIfDWjKshtoNAzCr41o+3seNf14/QexSTKC/j3Or65yT0qMlKY1JJU+H4Uj/nCD1RkPEP885VVDuwyneR30z71vunRFkDkrDo7CKJg5kRCmoFshTpFFMCWGoZccmnp2zug7E9yo60A/0IGY0+UjakTFORBr4L6Yjo/oXP+XhTzbjT1qzWGw7XCJ3FDhVfhL9YPaAW61TVjgh7f1P82y4EHBlg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZIgBjrfiC1swdMDmls3a4lJSrvwWQq7OXTtOC+AWTks=; b=Z9xB+k9/w9cJKmPnx0qicbVCYqUdMNPfo3zFNqiCRC3r5wTMR814jfH0QXaZZjmVXB/zkQp1gMruKeKbzP7CBcsKttJnqavQ11xSm+9S/wH/n1Mixe2bscesSio1vosXU1W/bY4Qoj7aKAMuRV8ariWgnVPA0nTvFC/pTrE1DnI=
Received: from DM6PR08MB5884.namprd08.prod.outlook.com (2603:10b6:5:151::31) by DM6PR08MB6250.namprd08.prod.outlook.com (2603:10b6:5:1f2::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12; Mon, 14 Dec 2020 17:17:46 +0000
Received: from DM6PR08MB5884.namprd08.prod.outlook.com ([fe80::bc4b:3e07:e7ef:c74e]) by DM6PR08MB5884.namprd08.prod.outlook.com ([fe80::bc4b:3e07:e7ef:c74e%6]) with mapi id 15.20.3654.024; Mon, 14 Dec 2020 17:17:46 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: Andy Bierman <andy@yumaworks.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] Materials for NETMOD Virtual Interim meeting (Monday)
Thread-Index: AdbP5w9pLSZGF/HfR+KtvgswNYH9ugApj5+AAAPkS4AAZ+fbAA==
Date: Mon, 14 Dec 2020 17:17:46 +0000
Message-ID: <DM6PR08MB58842CF3B7B625E85871DD4C9BC70@DM6PR08MB5884.namprd08.prod.outlook.com>
References: <DM6PR08MB58842B8410013C682267BC3F9BCA0@DM6PR08MB5884.namprd08.prod.outlook.com> <20201212134717.z7dwqkf3tasxtvmn@anna.jacobs.jacobs-university.de> <CABCOCHTbXbztPw8pjgHsZDAv3otBF4+o9huHgZMx3meVtnOb5Q@mail.gmail.com>
In-Reply-To: <CABCOCHTbXbztPw8pjgHsZDAv3otBF4+o9huHgZMx3meVtnOb5Q@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: yumaworks.com; dkim=none (message not signed) header.d=none;yumaworks.com; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [2607:fea8:e300:6d0:873:9eeb:89aa:6722]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: a91bb309-23a4-45dd-4d99-08d8a0542ce7
x-ms-traffictypediagnostic: DM6PR08MB6250:
x-microsoft-antispam-prvs: <DM6PR08MB625029589E8CD76836CF96189BC70@DM6PR08MB6250.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 7+0jD6Nbm9yChFSCh9i7wlFYBIUo6iPOt5O/C/S6dkUnR+S93M8+X3+Zt+C/3SKxtmh+p/5KfPCLtKJdYpoUhjPfn7S1IgmMfIq7nwEmDiy9nDrHHCCbBm1FNetbuLJoo7ZA2TO9LOD98s53kgVNgcqc0BNODfleD0X3hhWZUERdlYhaaHg3ahxDacIcQKTI9F0qfbjanyB67l6+qNISYGLqv5ZvwYEHqDKLhYmdv0fpynUljS8ZqnB3o0d+w9792GkIBJZRQyqrVmoplMwnYR34WZkZq1ZdWvz+LB6Zx3CNUR5xXJefM1WCNP/qXgAwkucep4H0VglVqe+pZl46hRGzprueFt5vPWOz7ZtJvDQNC4ewCvH0tyK2t+0t8rwCHbjZQRgZjNIEl0ZAiAOAso/bNkBNRWhegexUs//QJQO/5cWHjmdrDBSrQB5UAVkXPk+QUsh+8DCCUge0ZlEUeEm+mJZF485v2wj22woJqOk=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR08MB5884.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(366004)(136003)(71200400001)(9326002)(5660300002)(7696005)(508600001)(64756008)(2906002)(52536014)(83380400001)(21615005)(9686003)(966005)(166002)(66476007)(86362001)(83080400002)(8936002)(53546011)(55016002)(186003)(6506007)(66446008)(66556008)(76116006)(110136005)(66946007)(8676002)(33656002)(166863002); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: DOk74uRuLau4jt5LoFfeECmkNAl2ArE2cNV2IAszh5cYXDSgwasP3YbUxrU6Nn3M+r9A2E5Buf7TynpTIw6CKGgFw0x71NM9soZczdnPdPIuWXImwb0w2bhDaSXZtLW3CfjM0amwHDd47DzhqzMMSo2wrG09XfjoJF6gAGCVE/IwJPQsAESX5fgd8rX636wnvyuBdR5HZpJsfJjbplK7jZUXau5+YTcFp3WgVHEwlik6l2YxiNQkkY4L2BvthTe1OzLG7md0b6wYEPeBmIZyEp56x88qTciZ+rGAZIXiRtDKXbZUlvh/pLDfctyoZAX6FzZHVEY1LCD+SvhnWv98aXPdeCGcWYr9nvFh6WU2slz0cD901K67lScxmYJFdP475xpS1IY4v1my/ErZHA11jVFw4yWRfpP0Pr8UTqa6W+E6eEJzs5HcT773o9+lf8i51chT8f3kJ46L0XaTOaJ1QwpJ0KLyzbJWkDPFBQ3SEhHiLKpDUT0awZ3jjeDDoxWiqYfGGtElgUH0SczjqNWhx3NkhEVOY2bOkVEr2xae9FdMZf66eNHIv4VHVPsD5GGVDRclga/XztChGyy3jo3JP/L3qFA+lrUOs3R67GSPHk13CYFSV8a9ElpqZDr+214KKHfxkhk+1Fo+nJc5z/JDkkIFj6ARjMbWoCrtihXfSsT9hMkLXrD3lglUKBteBgpRCnej5yEgNOC1/STQWqkb/RKWw+LOze/AsK7lNOde5BnfAZKFydnnIxqHy8Vy3Dq2rn1wQfBPg4GaiNK/rEp/5ulHkFZjGGqB6G2/6ANeQRV9syDGFmjOola/6MlcfbOaBdVV3pVcUseeFFw9rkgCKju9+9/Xaf2esuKiAbaa/gCXSuzRpBYUpOKJ2+sWN4AbK+DQKsdHQS8Gs2l1NqMRTbrnmLLwbjub51LVj7ZA6VdLj85g274G5vk9mhquJnfHkle31XqvcWucw35zz7F+e3TGZLgQ1saBzZLqyn9SY/5tsl9p5r/OZ0joLps6DJ2lowSKQPRkyfEqe62C+qI8kBJsqfUSEvZQAvmKg6+i0Q8=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB58842CF3B7B625E85871DD4C9BC70DM6PR08MB5884namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5884.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a91bb309-23a4-45dd-4d99-08d8a0542ce7
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2020 17:17:46.3298 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CbOGK4PkASAc+uZ2EORFS3hKr0ewyXdg3VMZE8M9n5t3kIKEVvQTyxIwBPfRw7CNtkwec8qBOD8XahqMYwlL3A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB6250
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/mtrBex2idqqM5Fb3EQmSpzSMmVM>
Subject: Re: [netmod] Materials for NETMOD Virtual Interim meeting (Monday)
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: Mon, 14 Dec 2020 17:17:51 -0000

Hi Andy,

I like the way you phrased it "too fragile to be useful".

I think that's a concern we'd also have with an "or-compatible" version of import by revision-or-derived.  Authors may use it "to be safe" (similar to how they may want to specify an exact vesion) but it would end up keeping everything to tightly in lock step.

With just the "revision-or-derived" we would solve the MINIMUM VERSION problem, but then leave all the other complexities of compatible versions outside the scope of import statements.  (e.g. solve that with information outside the modules themselves like Packages).

Jason

From: Andy Bierman <andy@yumaworks.com>
Sent: Saturday, December 12, 2020 10:39 AM
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>; Sterne, Jason (Nokia - CA/Ottawa) <jason.sterne@nokia.com>; netmod@ietf.org
Subject: Re: [netmod] Materials for NETMOD Virtual Interim meeting (Monday)



On Sat, Dec 12, 2020 at 5:47 AM Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de<mailto:j.schoenwaelder@jacobs-university.de>> wrote:
If module A imports from module B, then the question whether a change
in module B is compatible or not for module A is answered by what
module A actually uses of module B's definitions. The question is not
answered by module B's version number.

The maintainer of module B can't tell whether her change breaks module
A without knowing A. And the maintainer of A can't predict how module
B will change in the future. As a consequence, the maintainer of A
cannot realiably decide whether revision-or-derived or
revision-or-derived-compatible is the right choice. The author of A
has to _guess_, having more options to guess may help, or it may
not. My point is that it is always a guess.


It seems that SEMVER is a choice between a version that is not granular enough
to be useful, and a version that is granular enough, but now there are so many
versioned items that the system is unmanageable.

Taken to its logical extreme, every construct would need a semver and every
import would need to be at the granularity of 1 identifier.

The owner of module A can only update/fix the import of B after
the owner of B has finished breaking backward compatibility (or not).

This only invalidates the utility of the upper bound of semver,
e.g., the newest version of B that can be imported by A.

The fatal flaw in YANG imports has always been that import EXACT version
is too fragile to be useful.  When module A is written, the author knows
the MINIMUM VERSION of B that can be imported, yet YANG has no way to express that.
For BC changes (which are the vast majority) this is sufficient.
Please just fix that.


Andy


The maintainer of module B may be acting in a conservative way and
bumping major numbers frequently (and many times not affecting module
A) or maintainer B may be lenient - and B's decision may be influenced
by how central module B is, the more modules depend on B, the higher
the pressure to not bump the major version number of B and to either
avoid non-backwards compatible changes or to label them as compatible
(even though it is possible they are not).

In some realities, you end up with a need for more complex expressions
over the version number space to define which versions are known to
work together. And this information is often maintained _outside_ the
code artifacts (one advantage being that this makes dependency updates
possible without having to touch the files with the definitions). Some
examples:

https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html

https://cabal.readthedocs.io/en/latest/developing-packages.html#modules-imported-from-other-packages

https://semver.npmjs.com/

Given these examples, one can ask whether decorating the YANG import
statement with 'inline' versioning constraints is actually the right
way to go. Perhaps dependency constraints are better managed outside.

/js

On Fri, Dec 11, 2020 at 07:17:22PM +0000, Sterne, Jason (Nokia - CA/Ottawa) wrote:
> Hi all,
>
> Enclosed are the materials for the Virtual Interim on Monday.  Have a good weekend!
>
> Rgds,
> Jason



> _______________________________________________
> netmod mailing list
> netmod@ietf.org<mailto:netmod@ietf.org>
> https://www.ietf.org/mailman/listinfo/netmod


--
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod