Re: [netmod] comments on YANG versioning

Martin Bjorklund <mbj@tail-f.com> Wed, 14 November 2018 11:48 UTC

Return-Path: <mbj@tail-f.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 6BAFB130DDE for <netmod@ietfa.amsl.com>; Wed, 14 Nov 2018 03:48:45 -0800 (PST)
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, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 F272yyZ7qRt0 for <netmod@ietfa.amsl.com>; Wed, 14 Nov 2018 03:48:43 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 83043130DD6 for <netmod@ietf.org>; Wed, 14 Nov 2018 03:48:43 -0800 (PST)
Received: from localhost (unknown [173.38.220.61]) by mail.tail-f.com (Postfix) with ESMTPSA id 67AB81AE0351; Wed, 14 Nov 2018 12:48:42 +0100 (CET)
Date: Wed, 14 Nov 2018 12:48:41 +0100
Message-Id: <20181114.124841.232214537179191240.mbj@tail-f.com>
To: rwilton@cisco.com
Cc: andy@yumaworks.com, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <daadf16e-82b9-a11e-20f0-2167b4d30f09@cisco.com>
References: <CABCOCHTr92=wFcXg0NnPouft3Zkk-XnUzp-FZbRykumvZfMHUg@mail.gmail.com> <daadf16e-82b9-a11e-20f0-2167b4d30f09@cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/V3ngpyEra1xipMTWNYXpKflpYeM>
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: Wed, 14 Nov 2018 11:48:45 -0000

Hi,

Robert Wilton <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?

This requirement isn't present in the current draft, AFAICT.

(not that I support it as a requirement)


> 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.


/martin