Re: [netmod] adoption poll for yang-versioning-reqs-02

Andy Bierman <andy@yumaworks.com> Tue, 19 March 2019 18:35 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 7AC0C130F25 for <netmod@ietfa.amsl.com>; Tue, 19 Mar 2019 11:35:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=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 qqXZ4pa2UJPi for <netmod@ietfa.amsl.com>; Tue, 19 Mar 2019 11:35:35 -0700 (PDT)
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::235]) (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 E91E812D4EA for <netmod@ietf.org>; Tue, 19 Mar 2019 11:35:34 -0700 (PDT)
Received: by mail-lj1-x235.google.com with SMTP id l7so8496638ljg.6 for <netmod@ietf.org>; Tue, 19 Mar 2019 11:35:34 -0700 (PDT)
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 :cc; bh=HT2HqBuKBIQ+6RDwlGLYtcIHrVZ/io54ImGZlsMc18Y=; b=Q7TjCHcpKDC6t5Ink94WLgx1AwyT14IKtUGtW9oBT7KDadI89dboIGIGnJRyRGag2V LJ6pD8e/59QhsmwSy1Ty3vmWAH5OnqrDo860yFEzmtKr5XAXzI9amNtQ+1dn0kD86S2u mo4UoddluhJ8Xm0p/gRPKKza/B8F1kWW6b8MB0E27o+TaDcYZ0qEK7CpDAxtuu45aqSX PbAwIp+HAyQYfCoyfgTMnX2WEhk7cSc0mxdDeGc23MoaN5wqIpzbM0TNYlwqrDp8hw/c swKUbn++GS1HDvtUhfMsVBXMT/OeKFSoA9QTHQ8dD198KQSa0rPlI07SuDmgFkBpampr TREA==
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:cc; bh=HT2HqBuKBIQ+6RDwlGLYtcIHrVZ/io54ImGZlsMc18Y=; b=ahG90H74/RulESv6/z4RfsKz+Bwb3oBPXMnSp/RLbReCJfOmiYeulRhvmH/C/SbhNs i4bl7kOMd7TOG8loACs+Cvs1QsJYlw0U2mCGJo1yV+TXU6oEe3mo6Y477H07fWuGZLud Qekr7ZmgNlIPrqjkdCf7+LH3DO+lPzdqmot0nwhudtYfNnhmOmivItI17HWSHm8s1KMD GDEtLqSoLQBS+7l2K8+okvt1+Kv/YxVwQITUMWlAwexj4IkigvnK3fo02cmbM/aaEza7 gFSApKfIuxPvImZ9CvoEYuPhSt21ArjZ8Rf65oI9KRldK1mnqbxeKoKPv1KJ07nr42FI kB4g==
X-Gm-Message-State: APjAAAXx3F+dpLOXw0bAz7UXXmAzoZ5e0Bkg/QSbW9yE+t67gzrx0jtR pDLE4wBnYPOsoHRiFkezNozhgRNdA6XQuuAE1fvHQg==
X-Google-Smtp-Source: APXvYqwEtdDymuGHTjlv/dL+4/lJyfslOj5GOslV2qYj7uR9qicevLSRtDxvP21tUolmvPKbC0hf8DUxITBk9qiXiU8=
X-Received: by 2002:a2e:85d2:: with SMTP id h18mr8675830ljj.128.1553020532905; Tue, 19 Mar 2019 11:35:32 -0700 (PDT)
MIME-Version: 1.0
References: <0100016978b80dcd-31f317a5-443b-400a-98b3-2bfc91841bdc-000000@email.amazonses.com> <20190319.161229.1910835285804688041.mbj@tail-f.com> <aee7d9770a2c4570a3185a1ebeef4c36@XCH-RCD-007.cisco.com>
In-Reply-To: <aee7d9770a2c4570a3185a1ebeef4c36@XCH-RCD-007.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Tue, 19 Mar 2019 11:35:21 -0700
Message-ID: <CABCOCHTsH_wk+MGQwSPA-JZCUiTT38ua-dsnoFgjO=r0U07veA@mail.gmail.com>
To: "Rob Wilton (rwilton)" <rwilton@cisco.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, "kent+ietf@watsen.net" <kent+ietf@watsen.net>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000316b91058476c514"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/ZQFou9MSqPhq-8LboFyrl7Wqd7Y>
Subject: Re: [netmod] adoption poll for yang-versioning-reqs-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, 19 Mar 2019 18:35:40 -0000

On Tue, Mar 19, 2019 at 9:38 AM Rob Wilton (rwilton) <rwilton@cisco.com>
wrote:

> Hi Martin,
>
> Thanks for the review and comments.
>
> A couple of points:
>
> 1) Lots of models outside those published in SDOs are already not
> following the RFC 7950 revision rules.  I think that it is better to have a
> versioning scheme that reflects how YANG models are actually evolving
> rather than have all vendor and OC YANG modules either just ignoring the
> rules, or using clever tricks that strictly conform with the rules but go
> against the spirit of them (e.g. just publish an entirely new set of YANG
> modules for each release).  Also noting that having a scheme that allows
> non-backwards-compatible changes does not require that everyone uses them -
> IETF could continue to always publish backwards compatible modules.  The
> obvious alternative here is that each vendor comes up with their own
> versioning extension and ignores the RFC 7950 section 11 rules anyway, but
> I'm not sure how that really helps client<->server interop.
>
>

I do not support branching for YANG models so I do not supported modified
SEMVER.
Adding a special character to the version string doesn't help the deployed
client code
that stops working when the server code is upgraded.  This is a quality
issue that
each organization has to deal with the best they can.

I do not object to the addition of a SEMVER field to a YANG module because
these version
strings are familiar to users.  It is possible to express import ranges
such as 1.2.* (any 1.2.x release)
which are not possible with date strings.


2) I don't understand how the RFC 7950 approach of "deprecate a buggy node,
> and replace with a working node" really works in practice, particularly for
> configuration data nodes where you have two clients interacting with a
> server, one interacting with the old path, and another using the new path.
> Perhaps there is a robust scheme that works in all cases, but it isn't
> obvious to me.  Historically, for CLI we just translate the CLI from old to
> new format and then return the new format when the running config is
> requested.  But that will still break an old client that doesn't understand
> how to read the new CLI, even if the server supports them writing via the
> old CLI.
>
>
SEMVER does not reduce the number of paths to the underlying configuration
object.
That problem does not change whether a new XPath absolute-path-expr is used
or whether the same path is overloaded with semantics derived from
additional protocol parameters
(e.g., versioning of each data node). I prefer the existing XPath solution
because it is explicit
so the YANG reader can easily see the multiple paths, and no new protocol
work needed to support it.
If there is an NBC change to an object then all XPath and leafref
references to it will probably break.
That seems like a harder problem to solve than the original path
duplication problem.


Even if there is a workable solution for this simple case, I suspect that
> there are many slightly more complicated cases that don't work (e.g.
> rekeying a list, changing defaults, incompatible types).
>
> In short, I don't agree with the premise that the current YANG versioning
> schema using revision dates is working just fine, and no changes are needed.
>
> Thanks,
> Rob
>
>
Andy


>
> -----Original Message-----
> From: netmod <netmod-bounces@ietf.org> On Behalf Of Martin Bjorklund
> Sent: 19 March 2019 15:12
> To: kent+ietf@watsen.net
> Cc: netmod@ietf.org
> Subject: Re: [netmod] adoption poll for yang-versioning-reqs-02
>
> Hi,
>
> I have read this document, and I do not think it should be adopted.
>
> I object to the idea that we should allow non-backwards-compatible changes
> to published YANG modules.
>
> The draft motivates this idea with:
>
>    we must recognize that many YANG
>    modules are actually generated YANG modules (for example, from
>    internal databases)
>
> I do not agree that we should change what we allow in published modules
> b/c of this.
>
> It also motivates this idea with:
>
>    The points made above lead to the logical conclusion that the
>    standardized YANG modules have to be perfect on day one (at least the
>    structure and meaning), which in turn might explain why IETF YANG
>    modules take so long to standardize.
>
> I disagree with this.  First of all, we have already published revision
> two of several YANG modules (ietf-inet-types, ietf-yang-type,
> ietf-interfaces, ietf-ip, ietf-routing, ...), so the statement that
> "standardized YANG modules have to be perfect on day one" is simply not
> true.
>
> Second, I don't think the upgrade rules are the reason it takes a long
> time to standardize IETF models (I think it has to do with the process
> itself, including the fact that models get reviews from many different
> people with different background.)  [BTW, is it true that drafts with YANG
> models take longer time from wg -00 to published RFC than other drafts?]
>
>
> This said, I think there are some important points that the draft raises,
> and that I think we should continue to work on; specifically 2.3, 2.5, 2.6,
> 2.7.  But I don't think that these areas require changes to the versioning
> scheme, and I think it is a mistake to include these areas in this draft.
>
> Some comments on section 4, The Problem Statement:
>
>    o  Any non-backwards-compatible change of a definition requires
>       either a new module name or a new path.  This has been found
>       costly to support in implementations, in particular on the client
>       side.
>
> Yes I agree there is a cost associated with this.  But I have come across
> vendor modules that make NBC changes w/o introducing a new path, and this
> is also costly to handle.
>
>    o  Since non-backwards-compatible changes require either a new module
>       name or a new path, such changes will impact other modules that
>       import definitions.  In fact, with the current module versioning
>       scheme other modules have to opt-in in order to use the new
>       version.  This essentially leads to a ripple effect where a non-
>       backwards-compatible change of a core module causes updates on a
>       potentially large number of dependent modules.
>
> This is by design.  We cannot have a situation where a legal modification
> to a module leads to other modules becoming invalid.
>
>    o  YANG has a mechanism to mark definitions deprecated but it leaves
>       it open whether implementations are expected to implement
>       deprecated definitions and there is no way (other than trial and
>       error) for a client to find out whether deprecated definitions are
>       supported by a given implementation.
>
> As I wrote above, I agree that this is a problem that should be solved.
> But this is not a motivation for changing YANG versioning.
>
>    o  YANG does not have a robust mechanism to document which data
>       definitions have changed and to provide guidance how
>       implementations should deal with the change.  While it is possible
>       to have this described in general description statements, having
>       these details embedded in general description statements does not
>       make this information accessible to tools.
>
> This might also be worth exploring, but this is not a motivation for
> changing YANG versioning.
>
>
>
> /martin
>
>
>
> Kent Watsen <kent+ietf@watsen.net> wrote:
> > Seeing as how we all need to read this draft anyways, in preparation for
> our meeting in Prague, it seems like a good time for this poll.  Thusly,
> this email begins a 1-week adoption poll for:
> >
> >
> > https://tools.ietf.org/html/draft-verdt-netmod-yang-versioning-reqs-02
> > <https://tools.ietf.org/html/draft-verdt-netmod-yang-versioning-reqs-0
> > 2>
> >
> > Please voice your support or objections before March 20.
> >
> > Note that this draft defines *requirements* and its intended status is
> "Informational."   I believe that it is good for WGs to formalize
> requirements, even taking such drafts thru Last Call, in order to ensure
> consensus on the requirements.  This is the "adoption" call, to ascertain
> if the WG agrees with that statement; if adopted, a separate "last call"
> will be issued to ensure to correctness of the draft's content.
> >
> > Kent (and Lou and Joel)
> >
> >
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>