Re: [netmod] Proposed YANG semver revision-label guidelines (draft-ietf-netmod-yang-semver)

"Joe Clarke (jclarke)" <jclarke@cisco.com> Wed, 13 May 2020 14:45 UTC

Return-Path: <jclarke@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 CFD4B3A0CA2 for <netmod@ietfa.amsl.com>; Wed, 13 May 2020 07:45:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.598
X-Spam-Level:
X-Spam-Status: No, score=-9.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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 header.b=MjD9XGgO; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=U1rQgKjY
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 sa6sn7D-369h for <netmod@ietfa.amsl.com>; Wed, 13 May 2020 07:45:21 -0700 (PDT)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 990C63A0CBB for <netmod@ietf.org>; Wed, 13 May 2020 07:45:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6770; q=dns/txt; s=iport; t=1589381121; x=1590590721; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=6LcOVnLXkEjLlOVqz8o3L+flDXU8mBg0Sjmi+UVoMAg=; b=MjD9XGgORl0s7BmrBwyHGq2MnWXmi11vkzBTO/CQ72dgWIRUO+tHHRkj Yfx7FKWe2hS7IEN7pJgZgqKzmdlY4lYrx69DvxmS0rzhRJEYOw7AloWCt zvU/m2P2iaH/uQKsN88OKbdM3eSqXAVMChrrOuvvmhWCdCA9txbuWVJKb M=;
IronPort-PHdr: 9a23:WSG5rR0wx2H28NopsmDT+zVfbzU7u7jyIg8e44YmjLQLaKm44pD+JxWGu6dxhV7NGIud4PVB2KLasKHlDGoH55vJ8HUPa4dFWBJNj8IK1xchD8iIBQyeTrbqYiU2Ed4EWApj+He2YlRcGcK7aRvZpXjhpTIXEw/0YAxyIOm9E4XOjsOxgua1/ZCbYwhBiDenJ71oKxDjpgTKvc5Qioxneas=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CvAADNB7xe/5RdJa1mGgEBAQEBAQEBAQEDAQEBARIBAQEBAgIBAQEBQIFHgVRRB29YLyyEJYNGA405gQGXNoJSA1QLAQEBDAEBGAsKAgQBAYN/RQIXgXckOBMCAwEBCwEBBQEBAQIBBQRthVYMhXEBAQEBAgEBARAREQwBASwLAQQLAgEIGAICJgICAiULFRACBA4FIoMEAYJLAw4gAQ6mIAKBOYhREHaBMoMBAQEFhSQYgg4DBoEOKoJjiV8agUE/gREnHIIYNT6CZwEBAoFiAYMUM4ItjkyDDqAqfQqCS5gyHZ1IqheDRQIEAgQFAg4BAQWBaSKBVnAVOyoBgj4+EhgNkEAMFxWDOoUUhUJ0AjUCBgEHAQEDCXyOSAEB
X-IronPort-AV: E=Sophos;i="5.73,388,1583193600"; d="scan'208";a="488224951"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by alln-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 13 May 2020 14:45:15 +0000
Received: from XCH-RCD-005.cisco.com (xch-rcd-005.cisco.com [173.37.102.15]) by rcdn-core-12.cisco.com (8.15.2/8.15.2) with ESMTPS id 04DEj1T5007921 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 13 May 2020 14:45:14 GMT
Received: from xhs-rtp-003.cisco.com (64.101.210.230) by XCH-RCD-005.cisco.com (173.37.102.15) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 13 May 2020 09:45:12 -0500
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by xhs-rtp-003.cisco.com (64.101.210.230) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 13 May 2020 10:45:11 -0400
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 13 May 2020 10:45:11 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZtjBDooYls45DKBy4qWt0lVSYwhXqzfLWhrfL893MvI9ob0FhJl/aWHpYYJ/gAI3HHZ9yuFhH3lkuP/zNaUpFdyHjOhhs+5zQDkt/JL04XzjDPv8KNi7MuqDqcAcOa2MhhQJPRfc3Kin2Tb/eDNe7CBn/CU1sML/xRbsWQO/reQ3n3tm8QKEZ/Yxki3yYdAS19L4JCu9Ec4Qj80d+lGe1XrXZGpCMV2/0G2Wu2nI9e7353OZUal5x5O2guw0ON1h1qswF+htx32wKRVf88Bqixgr1XB1liwGuJamYBqwRm7ksZd7ng7mVZHivXqgGbZ+g/ODrsEkHZdPAPeXvO+PZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6LcOVnLXkEjLlOVqz8o3L+flDXU8mBg0Sjmi+UVoMAg=; b=N+fNGzBYRny3hcz7PP0yHWh0qdzLrFcU0SiWf6FOOMAERVAh+6rmCnGjpwg2A2Z6ECia0/XCLm4JpKDkhRlaG0FNuxaeV8ebKw0Ah5qWd0WH1NL/1Fnj2Aby+YNJOq+XQLFD4yS5V/UDt6zcEQuluhwu0/W6WX9ljsbaZh9kmFy+xRA+HK79zbQEUVpICnvvLrRXUM6eoWsffzvQXlPjtKXSce4QfVKrUejcDC6/g1zX3wK3i5JrX8L+/ZNwKfJP8YufHdr6LXrXMT18rIsltX2mr1PxjQMOju2JjVe2hn6wOb6hX2odhiSAGXXfxcU+z2eEk7+UBGsKV776OZerAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6LcOVnLXkEjLlOVqz8o3L+flDXU8mBg0Sjmi+UVoMAg=; b=U1rQgKjYkud/QdN//lXxAwy2+u/GUAneU66yILRp6WPMg6HERxC0ioo33nb29Hc+7iCyuf0jrmBemapPhkiMASZPW1ahz6+8fNEil6GZ9Y2SEA1ab/kdzRXi4OfZU/Nt1rk8AXasp4X+pyL1CAOyKHw4tNKnlBSCLMsBrYKYJpE=
Received: from BN6PR11MB1667.namprd11.prod.outlook.com (2603:10b6:405:e::12) by BN6PR11MB1522.namprd11.prod.outlook.com (2603:10b6:405:b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Wed, 13 May 2020 14:45:10 +0000
Received: from BN6PR11MB1667.namprd11.prod.outlook.com ([fe80::39d9:b3b4:a981:2bd7]) by BN6PR11MB1667.namprd11.prod.outlook.com ([fe80::39d9:b3b4:a981:2bd7%7]) with mapi id 15.20.2979.033; Wed, 13 May 2020 14:45:10 +0000
From: "Joe Clarke (jclarke)" <jclarke@cisco.com>
To: Jan Lindblad <janl@tail-f.com>
CC: NetMod WG <netmod@ietf.org>
Thread-Topic: [netmod] Proposed YANG semver revision-label guidelines (draft-ietf-netmod-yang-semver)
Thread-Index: AQHWKJdaC0RQevIAjUG/f/rowP/faaimDaMAgAALYYA=
Date: Wed, 13 May 2020 14:45:09 +0000
Message-ID: <C52CB4EB-1B9D-4CF1-AD44-4802E4EB8DCC@cisco.com>
References: <76EECA9D-D0D7-4F7A-A536-97135B76A326@cisco.com> <DA523C09-F025-4F8E-85C8-9185FE17BAB5@tail-f.com>
In-Reply-To: <DA523C09-F025-4F8E-85C8-9185FE17BAB5@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3608.80.23.2.2)
authentication-results: tail-f.com; dkim=none (message not signed) header.d=none;tail-f.com; dmarc=none action=none header.from=cisco.com;
x-originating-ip: [2600:1700:b00:b239:d962:572c:a85d:11f2]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 100edcaf-1926-4351-80b2-08d7f74c3c78
x-ms-traffictypediagnostic: BN6PR11MB1522:
x-microsoft-antispam-prvs: <BN6PR11MB15228D884D6537D5DDEA4D0EB8BF0@BN6PR11MB1522.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0402872DA1
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 2AinPSMj4H9CZCVD5WSPOXtbisBGoo6B+DJakE3x8mwkBUfJi3YiiPmnBx5T8Oz41b40FmL3vGNhyNNJUZiXzLhtzyfy7f9A1j/izgkOWGICMjzQLi7wg+dFyuNUHS7+IZqaPKgfMUmWTh9V+5IZIMTmM6H23t3+fyPgXjuP0HYvbzRoW9WjZiP/kunCOZ4digWM6/bqSjU/REZqrbF1420yFrkGZkdHUSMbbiyhKFRfi8DkCE/jJ/bjl8dRB1NzzrXqfZwLY58NQ4NcPOU+JRVio2Th1S0xmMKfiX76yUk76GcdLtSli71bPVcMysXPiXoHd6Bx8U8VZcxjG5iQGGDS8TuaPNKhvELCFA7NjzV1i6LpdzEifmXHWt/VZf1ZCLVtJKLEEcWuhaiSRt9qbAI/s0FMiuK1+mvvUKmgbxYb0cczW01zcTWAntdM7C/mwSLhDEq+6JSavHORv8FY+xhedl7/CU+OXHTagHxDOYB6/b+4aoDwu7bUIpd76YtII7ZeZyuK7id7Twu/5ndOJAiYpYjmIXE1CnGJL4SihZ9SwnT992jjIa8j8yx67cDU4uigGvx5jRLAwxCXfGud/CperlVkSFrqU0QdjRogTJo=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR11MB1667.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(366004)(376002)(39860400002)(396003)(346002)(33430700001)(8936002)(6512007)(6486002)(71200400001)(478600001)(33440700001)(5660300002)(2616005)(4326008)(186003)(316002)(966005)(8676002)(33656002)(6916009)(64756008)(76116006)(66556008)(66946007)(66476007)(86362001)(36756003)(2906002)(6506007)(53546011)(66446008)(91956017); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: CNIU/PQGWoL04o+7ZGhbcBC4TBNmTRH/PEGT6BBLgkl+neU/zr73HDbXHc4F8teDXPeqRwMgZsOWX9OA2+uQrvIr/UVdQKaZeEmmJeMvxFOupgDQDzsSFZSAi8qTZMnfClKmPFW3BzsBR916r4fEcewKLBiZJT2sx3r9j7UkKdJ+DnuLde8hAphHFwTj0OQ5oVGv90HDNdgu3/wqoI7NcD3dyRd5DPfew7+wmuRTh3gagM8vXkFpL9wYG0jEVJjNHa23XkHs18FkdWpbWvlVLQCoPGrhAsZuHIx8WuOT1Qrt9Kt24welepayfgobSS4wagJPty4RWPWm4Nug/e7NxZ4e4wxunAzgX7Wg2D5ye/0w/4rivyTFychlPrdP/fZyAAinIJhk8qSd+Pbj5kI+J8VOJ8N3e+dPRZE/I09h+Jkr1SRUhrlDL0/j6vwmVexsXY/98NRftv/vYewWIdO7b18SpAu82WDdA+Xk2jCyWWsZfscMdCcwP0zqKsr1Ky6KPxlE5jgwciNa7bjEJ7DuWbPv1xXXHnotnsdFu03QvHZ9nQlTvo8+U3DxrUYbUs5h
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <069F51A671DEDA45BD2975BE4FE11E87@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 100edcaf-1926-4351-80b2-08d7f74c3c78
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 May 2020 14:45:09.8030 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0M4O1YkLMuNRdqaJdqJphi2s9WLhzCZ0GgiXe3XvRlKLx/sGPPI+QMWyX1dy22uu44nBzrGBsX6gflU12YtIPA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1522
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.15, xch-rcd-005.cisco.com
X-Outbound-Node: rcdn-core-12.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/nIT0J_g6zPfIyqPeU3pDakpYrQU>
Subject: Re: [netmod] Proposed YANG semver revision-label guidelines (draft-ietf-netmod-yang-semver)
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, 13 May 2020 14:45:24 -0000


> On May 13, 2020, at 10:04, Jan Lindblad <janl@tail-f.com> wrote:
> 
> Joe,
> 
> Thanks for sending this out to a wider audience. Sorry I missed the meeting yesterday. That particular time of week is very popular.
> 
> I think the text you propose below is good; I have no issues. For the record, I do have some issue relating to other pieces, especially around the use of the letter 'm'.

Thanks, Jan.  I missed the call yesterday, too, but I understand m|M is still being debated and there isn’t strong support of those letters specifically.

Joe

> 
> /jan
> 
> 
> 
>> On 12 May 2020, at 21:55, Joe Clarke (jclarke) <jclarke=40cisco.com@dmarc.ietf.org> wrote:
>> 
>> There has been recent discussion about how to handle applying versions to new modules, modules in development, and revisions to modules that previously did not have a revision-label.  Below is proposed text to offer both general and IETF-specific guidelines for this.  The intent is to place this text in draft-ietf-netmod-yang-semver either as a new section 5 or a sub-section under section 3.  Before folding it in to the document, I wanted to get more WG eyes on this.
>> 
>> ===
>> 
>> X. Guidelines for Module Development
>> 
>> When developing a brand new module using YANG semver as its revision-label scheme SHOULD begin using a 0 for the MAJOR version component.  This allows the module to disregard strict semver rules with respect to non-backwards-compatible changes during its initial development.  However, module developers MAY choose to use the semver pre-release syntax instead with a 1 for the MAJOR version component.  For example, an initial module revision-label might be 1.0.0-dev1.  If the authors choose to use the 0 MAJOR version component scheme, they MAY switch to the pre-release scheme with a MAJOR version component of 1 when the module is nearing initial release (e.g., a module's revision label may transition from 0.3.0 to 1.0.0-beta1 to indicate it is more mature and ready for testing).
>> 
>> When developing a new revision of an existing module using the YANG semver revision-label scheme, the intended target semver version MUST be used along with pre-release notation.  For example, if a released module which has a current revision-label of 1.0.0 is being modified and the intent is to make non-backwards-compatible changes, the first development MAJOR version component must be 2 with some pre-release notation such as -dev1, making the version 2.0.0-dev1.  That said, every publicly available release of a module MUST have a unique YANG semver revision-label.  Therefore, it may be prudent to include the year or year and month development began (e.g., 2.0.0-201907-dev1).  As a module undegoes development, it is possible that the original intent changes.  For example, a 1.0.0 version of a module that was destined to become 2.0.0 after a development cycle may have had a scope change such that the final version has no non-backwards-compatible changes and becomes 1.1.0 instead.  Th
>> is change is acceptable to make during the development phase so long as pre-release notation is present in both versions (e.g., 2.0.0-dev3 becomes 1.1.0-alpha1).  However, on the next development cycle, if again the new target release is 2.0.0, new pre-release components must be used such that every revision-label for a given module MUST be unique throughout its entire lifecycle (e.g., the first pre-release version might be 2.0.0-202005-dev1 if keeping the same year and month notation mentioned above).
>> 
>> When an existing IETF module is being revised, it MUST use the target version for the revision-label with a pre-release string that includes the current RFC number plus the string "bis".  For example, if the module defined in RFCXXXX at version 1.0.0 is being revised to include non-backwards-compatible changes, its development revision-labels MUST include 2.0.0-XXXXbis.  Since they MUST also be unique, additional alphanumeric identifiers MUST be used (e.g., 2.0.0-XXXXbis-dev1).  Since each new bis will work off a new RFC number, this nomenclature ensures uniqueness for the module throughout its lifecycle.
>> 
>> If a module is being revised and the original module never had a revision-label (i.e., you wish to start using YANG semver in future module revisions), choose a semver value that makes the most sense based on the module's history.  For example, if a module started out in the pre-NMDA world and then had NMDA support added without removing any legacy "state" branches, and you are looking to add additional new features, a sensible choice for the target YANG semver would be 1.2.0 (since 1.0.0 would have been the initial, pre-NMDA release, and 1.1.0 would have been the NMDA revision).  
>> 
>> ===
>> 
>> Joe
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>> 
>