Re: [netmod] comments on YANG versioning
Robert Wilton <rwilton@cisco.com> Wed, 14 November 2018 11:30 UTC
Return-Path: <rwilton@cisco.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 262A612F1A5 for <netmod@ietfa.amsl.com>; Wed, 14 Nov 2018 03:30:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level:
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 9jQDOyDDV6ET for <netmod@ietfa.amsl.com>; Wed, 14 Nov 2018 03:30:46 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BD00712958B for <netmod@ietf.org>; Wed, 14 Nov 2018 03:30:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=13131; q=dns/txt; s=iport; t=1542195046; x=1543404646; h=subject:to:references:from:message-id:date:mime-version: in-reply-to; bh=bBg2TICJXauP+sGhcQ/Tk7/5hV2VpuIrO7GKh2AX3XQ=; b=hT8n4PGhHA1mlLtTwkbxEr+9x2CkyFjB1mNwBP6r4rnKk79z1VNoOEQE Qp+czD9x7tcsuWLiKN5yXus61+dr2iuM4YZ5Q1jemYILUHvvMyieSQaD2 Txe8mr2N9cOLrIU28k+dnzeQUmQe65bMJ9HRuFXjrMevZoXsAI70yTnLe A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AJAAAoBuxb/xbLJq1iGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGBVYEUgQIng3iId40qkWKFVIF6DRgBCoFUgi9GAoNoNgsNAQMBAQIBAQJtHAyFOgEBAQMBAQEhSxALCxgqAgInMAYBDAYCAQEXgwYBgXkID6gDgS8fhSGEaQWMHIFAP4ERJ4JrgxsBAYFLgxqCVwKVI4o7CZEcBhiJWYcckSiGWYFMAy4ngS4zGggbFTuCbIschT4/AzCNdQEB
X-IronPort-AV: E=Sophos;i="5.56,232,1539648000"; d="scan'208,217";a="7979991"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Nov 2018 11:30:43 +0000
Received: from [10.63.23.62] (dhcp-ensft1-uk-vla370-10-63-23-62.cisco.com [10.63.23.62]) by aer-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id wAEBUhmG005104; Wed, 14 Nov 2018 11:30:43 GMT
To: Andy Bierman <andy@yumaworks.com>, NetMod WG <netmod@ietf.org>
References: <CABCOCHTr92=wFcXg0NnPouft3Zkk-XnUzp-FZbRykumvZfMHUg@mail.gmail.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <daadf16e-82b9-a11e-20f0-2167b4d30f09@cisco.com>
Date: Wed, 14 Nov 2018 11:30:42 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHTr92=wFcXg0NnPouft3Zkk-XnUzp-FZbRykumvZfMHUg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------ADC87AFC156945E17C80FC29"
Content-Language: en-US
X-Outbound-SMTP-Client: 10.63.23.62, dhcp-ensft1-uk-vla370-10-63-23-62.cisco.com
X-Outbound-Node: aer-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/HBy_B3POAOyVrliokV_j5yzfqPs>
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:30:49 -0000
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. 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. > > 3) Bundles and compatibility modules > I strongly agree this solution approach is far better than treating > every revision > as a separate feature release train. I don't see how I am going to > track the major.minor.patch for 100 different modules. SEMVER is not > very useful for telling if module A works with B, C, and D. Import by > SEMVER > will probably be OK at first, but become too error-prone after awhile. +1. I think that the versioning solution needs to consider something like bundles or packages. > > 4) Automation tools > Ad-hoc WEB pages from IANA do not cut it anymore. > We need a way to get patch versions of modules published and usable > by automation tools (without an RFC) with just the Errata report as a > patch. > SEMVER requires that a module be released with the change but this is > not that practical. I think that we need to have a place where all revisions of modules are published and easily accessible. > Think how yocto works, using a base source version of a package + patches. > (IMO we need YANG Packages, which would serve as recipes > for a set of modules, features, annotations, patches and deviations, > that have been > tested to work together.) > > 5) YANG 1.2 vs Extensions > IMO a new YANG version would be better than extensions, especially to > fix status-stmt, import-by-revision, deviations, and add annotation, > patch, and many other new mechanisms to help backward compatibility. Perhaps. There is currently a long list of stuff on the YANG.next issue tracker. My concern is that this effort will get bogged down. Also, some of these changes we want to apply across YANG language versions. E.g. I want the updated status behaviour to apply to all YANG modules on the server, regardless of whether of which version of YANG they were defined in. Thanks, Rob > > > Andy > > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod
- [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