Re: [netmod] comments on YANG versioning
Andy Bierman <andy@yumaworks.com> Thu, 15 November 2018 04:43 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 D2B0A130E05 for <netmod@ietfa.amsl.com>; Wed, 14 Nov 2018 20:43:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 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] 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 DS8hLNVGCC8r for <netmod@ietfa.amsl.com>; Wed, 14 Nov 2018 20:43:11 -0800 (PST)
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) (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 CE52E1271FF for <netmod@ietf.org>; Wed, 14 Nov 2018 20:43:10 -0800 (PST)
Received: by mail-lf1-x135.google.com with SMTP id c16so13193877lfj.8 for <netmod@ietf.org>; Wed, 14 Nov 2018 20:43:10 -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 :cc; bh=yrzR2C9Yw/0938qr6W5HiyxVgBGYiFGAVgfYKx4kr4A=; b=A4C/pWF0GLGEEpNlu0ikBoKM61doVLaJwOGfX3asZ1sc1UUyj0kt8yGgagwRO2gqRD Dbdzawc0dgw60xNGBU7C7lPnQII4ozF4/s4JgXggTTi4WBLPfRIWB7k3l8E6rkZGSWW/ Ahaya2ycWw3NOW6js+wZMOLR+x8uxZXPn+o/pKoXUJQqN7ZF+VX4X2puSJQ1Bnx5+kwE u2wV9VZLZHnYHiOkTla6/ybV30pOARZCbTg6ROACB6IUEzWPzE7iYT8oytcOtCK342Kr pp2+qrwaFjfeXJDVnczmum7kuiYigNphkYJV5CkrvvBS6zfnK7u2AGhfkUztktnRV96J As8A==
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=yrzR2C9Yw/0938qr6W5HiyxVgBGYiFGAVgfYKx4kr4A=; b=N9RU1YfHTdqGePLLZreD4UJYf6K7YaCx+c7R3Aq3K/vqpkUlhuCkSV9XbYeaqR9mWT cP5zyrL2wWMrrP6qhg6zHyQAtyVAAdAVlX1HyGOmYlf9FE+akpvuHI3qmSBjzLL84nye 1QY69s0kJgVVZhQmgWeH9GfYlob9Sda/Cc8Hi+LTgvqLObrgj4RjWl6g+ULLynmn5gAa c8EDuacZWOSJhx5IbIvETe4ad8UtKTn48dNpGnLqOMBIbECy5REDpegdodVc4+V0Xr5a kttina+mB12C0MhR1FG/kFNS6fFG3xClvkqa0nq+4xCK3mDJ1GNRw8ZRxNbWw14GTj0q KK+Q==
X-Gm-Message-State: AGRZ1gIO3VSqH/xl58QiokE+raZksP3HIDPw0euKmRJvGv9rcjOWzpOX k76e4Rb+Zvl2iDxe89ug1+PKMXkuMZTPinZuDH7KLw==
X-Google-Smtp-Source: AJdET5dBcSMCOFi/bOt8JzUwIq8oR3tPXvkn0EbJweBziLZCH0cDJECF5OaiC2ZabBx11c2zKmxbS4tGQ4+b1NYZqeY=
X-Received: by 2002:a19:ca51:: with SMTP id h17mr2362340lfj.126.1542256988679; Wed, 14 Nov 2018 20:43:08 -0800 (PST)
MIME-Version: 1.0
References: <CABCOCHTr92=wFcXg0NnPouft3Zkk-XnUzp-FZbRykumvZfMHUg@mail.gmail.com> <daadf16e-82b9-a11e-20f0-2167b4d30f09@cisco.com> <20181114.124841.232214537179191240.mbj@tail-f.com> <a96f8858-87cb-b002-b320-9402d860145f@cisco.com>
In-Reply-To: <a96f8858-87cb-b002-b320-9402d860145f@cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 14 Nov 2018 20:42:56 -0800
Message-ID: <CABCOCHRbOGHUc+KtrBs1xv5W_Q56nY3_e4NYKA7M9vHeBBeskQ@mail.gmail.com>
To: Robert Wilton <rwilton@cisco.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, NetMod WG <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000f68c11057aacaf10"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/1a0ysQtOtdDPPVPhDQDz7oUv9d0>
Subject: Re: [netmod] comments on YANG versioning
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: Thu, 15 Nov 2018 04:43:14 -0000
On Wed, Nov 14, 2018 at 7:48 AM Robert Wilton <rwilton@cisco.com> wrote: > Hi Martin, > On 14/11/2018 11:48, Martin Bjorklund wrote: > > Hi, > > Robert Wilton <rwilton@cisco.com> <rwilton@cisco.com> wrote: > > On 08/11/2018 22:52, Andy Bierman wrote: > > Hi, > > A few comments on the netmod meeting yesterday > > 1) what is a bugfix? > It is not encouraging that the DT cannot agree on the scope of a > bugfix. > But not sure it matters if NBC updates can occur for any reason. > IMO it is easy to define a bugfix in the IETF -- it is called an > Errata. > If an Errata is approved for a YANG module in an RFC then it is a > bugfix. > > Ultimately we have customers that will say "this part of your YANG is > broken" and we want you to fix it in that release train, either in the > next release, or as a software patch. > > Sometimes vendors will disagree with their customers as to whether it > is really a bug fix or an enhancement. Sometimes we will fix what we > think is an obvious bug but that will unfortunately break another > customer whom was relying on the existing behavior and then ask us to > revert the fix. > > I think that it should be down to the module author/owner to decide > whether or not it is a bug fix or an enhancement, and I would just > like a versioning scheme that allows these changes to be expressed. > > So the requirement is that the versioning scheme must support > branching, and must support expressing NBC changes on any version? > > I deem that 1.4 (without the sentence about versioning by software > release) defines this: > > 1.4 The solution MUST allow for backwards-compatible > enhancements and bug fixes to be allowed in any non-latest > release. > > Although this text is ambiguous, perhaps stating it more clearly, I see > the requirement as: > > 1.4 The solution MUST allow for backwards-compatible > enhancements, and backward-compatible or non-backwards compatible > bug fixes to be allowed in non-latest releases. > > > This new 1.4 (2nd one) is much better. Thanks for rewriting it. Andy > This requirement isn't present in the current draft, AFAICT. > > (not that I support it as a requirement) > > But vendors *have* to do this today. I don't think telling our customers > that no, we can't fix that bug, because the versioning scheme doesn't allow > it is really pragmatic. > > Rob Shakir also indicated in the Netmod meeting that he does not support > this requirement. However, this conflicts with the fact that there are > examples in OpenConfig when it has been necessary to apply fixes to older > versions, which has been achieved using deviations. > > > None of this changes the fact that I think that we should be avoiding > making these changes in the first place. I.e. I think that there is a > clear separation between what the versioning scheme should be able to > express, and what is recommended practice. > > > > 2) SEMVER to the rescue? > If every module release can be its own feature release train then the > value of > ascending numeric identifiers is greatly diminished. The (m) and (M) > tags > do not really help. I strongly agree with the comment that > cherry-picking new > features can (and should) be done with deviations. Updates of old > revisions needs to be for bugfixes only. > > I prefer the OpenConfig "SEMVER Classic" rather than introducing a new > incompatible complex numbering scheme to support something that > should not be done anyway. > > SEMVER classic does not support making bug fixes (even bc ones) on > older releases. > > In an older release, SEMVER classic allows: > - editorial changes, e.g. spelling corrections or clarifications in > description statements that do not change the API semantics in anyway. > - bug fixes to the *implementation*, but then we are not using SEMVER > to version the implementation anyway, only the API. > > If you want to allow bug fixes (even just bc ones) in an older release > then you either need something like modified semver, or a different > versioning scheme that allows them. Or you do what Rob Shakir > suggests and use deviations for this instead, which I think is a > misuse of deviations. > > But, as you state in the solution draft, not even modified semver can > determine if a specific change is NBC or not. It seems you would need > the entire history to determine this - which goes against the original > idea that a client should be able to easily determine if a new version > is NBC or not, compared to the version the client knows. > > The (m|M) is intended to be a tool of last resort. So provide a mechanism > to make bug fixes to older versions, but don't encourage it. It provides a > mechanism to provide bug fixes on an existing release, but at the cost that > you lose some of the benefits of semver (which is unavoidable). > > If the server is on a version of the form "A.B.X(m)" then the client knows > that all changes between "A.B.0" and "A.B.X(m)" are backwards compatible. > If the version is "A.B.X(M)" then the client knows that there is at least > one nbc change between "A.B.0" and "A.B.X(M)". The client does not know > whether going from "A.B.X(m|M)" to "A.B+1.0" is a backwards incompatible > change or not. > > Thanks, > Rob > > > /martin > . > > >
- [netmod] comments on YANG versioning Andy Bierman
- Re: [netmod] comments on YANG versioning Mahesh Jethanandani
- Re: [netmod] comments on YANG versioning Joe Clarke
- Re: [netmod] comments on YANG versioning Robert Wilton
- Re: [netmod] comments on YANG versioning Martin Bjorklund
- Re: [netmod] comments on YANG versioning Robert Wilton
- Re: [netmod] comments on YANG versioning Martin Bjorklund
- Re: [netmod] comments on YANG versioning Robert Wilton
- Re: [netmod] comments on YANG versioning Andy Bierman