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

Andy Bierman <andy@yumaworks.com> Sat, 12 December 2020 15:38 UTC

Return-Path: <andy@yumaworks.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 0EC763A11CE for <netmod@ietfa.amsl.com>; Sat, 12 Dec 2020 07:38:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.887
X-Spam-Level:
X-Spam-Status: No, score=-1.887 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 xvMo2Tn_5nH9 for <netmod@ietfa.amsl.com>; Sat, 12 Dec 2020 07:38:57 -0800 (PST)
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BB7923A11C3 for <netmod@ietf.org>; Sat, 12 Dec 2020 07:38:56 -0800 (PST)
Received: by mail-lf1-x129.google.com with SMTP id m25so19080503lfc.11 for <netmod@ietf.org>; Sat, 12 Dec 2020 07:38:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=4rtwrVNAY3KzFdUJXlNyMmseZovmBbvMjtHvO/m/wAM=; b=cTA7yDDmSDRJdAeVDKVlr/po66izbb8Lxqc4t7ySMqdfw9CBe1KsGF54mI6ajgDc/2 6+gyv7uCNDdTOwTsurF+fH1Y0K8d7hSjeyzn4rXSmq0WkJjT22JPVJjtoJPOAL4vt35B R6Pu2CpCZFS+b1txtfDwxTv3PRa416mIOIjsCcm7jWiaj/5Wf9wuptsVIelQSCiuMPXV +tSI+rrwS9MzBnl0jsSo9Y88Nz3GHA+rlmGtP/WqlTz5Agn9ImwCe6ahiCl81YNYsmP8 XgwKb6GND6IKZTHPdCfULT0eB5bsuqXi3fgTZQR52q2ALMVCZsdcxtMk48UcrEoMTr+K 4avQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=4rtwrVNAY3KzFdUJXlNyMmseZovmBbvMjtHvO/m/wAM=; b=Z0QBH14eu0X5zW9u3jlhPwyuYTbzd7l4B2S16yLICSU3QPRxDUNATkGWm8ZEnFHHVy i6CViXNgCrAlVashhn2cdHwSnFRnvG7Xss1HC12Jju6W86NOmX/SG7HqeoQV5FWhZuPa Jsb51XaqVdkJCtUZAFQD3SftUsuRsQbp7WMZBsKdleertzj9pBsp5631eQaKxvgAjOuC kjejsul835bAg3RjVL2Tx0y9c715LSQIhmC0fmQzv+4mXpD5hrPeVpOaVMRvP/LefhbF oXPKhZ71vnX7ZGCeVBc2K6j47Qei7v0z4lkrxTjPl8n4UE9YBwEPhAYxzBdo7Wv02GMe 43dw==
X-Gm-Message-State: AOAM530HFpfMuG8ujMMY6aCM//4EzmLps1dsRNUEmhItbW0mZIqmwvtP IWMYxmnwLbJFBs+ofC9PqLsCgw1A2lPwLxc/0bgmsw==
X-Google-Smtp-Source: ABdhPJxEcmcsco8wXifCmPK1nOH5/rfk0fzHpts2yPfCoMcK8K9cNXZrVbf9wxG8K7uNdzLyKn8JYGKs6iXan2CBQ2Q=
X-Received: by 2002:a2e:7806:: with SMTP id t6mr6511654ljc.298.1607787534743; Sat, 12 Dec 2020 07:38:54 -0800 (PST)
MIME-Version: 1.0
References: <DM6PR08MB58842B8410013C682267BC3F9BCA0@DM6PR08MB5884.namprd08.prod.outlook.com> <20201212134717.z7dwqkf3tasxtvmn@anna.jacobs.jacobs-university.de>
In-Reply-To: <20201212134717.z7dwqkf3tasxtvmn@anna.jacobs.jacobs-university.de>
From: Andy Bierman <andy@yumaworks.com>
Date: Sat, 12 Dec 2020 07:38:43 -0800
Message-ID: <CABCOCHTbXbztPw8pjgHsZDAv3otBF4+o9huHgZMx3meVtnOb5Q@mail.gmail.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000e20c0e05b6463463"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/H1m6frxsObrHpoKlOljc_zhLrf8>
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: Sat, 12 Dec 2020 15:39:07 -0000

On Sat, Dec 12, 2020 at 5:47 AM Juergen Schoenwaelder <
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
> > 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
> https://www.ietf.org/mailman/listinfo/netmod
>