Re: [netmod] yang versioning solution complexity and alternative approaches

Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de> Tue, 22 March 2022 09:10 UTC

Return-Path: <J.Schoenwaelder@jacobs-university.de>
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 EAE4B3A0D02 for <netmod@ietfa.amsl.com>; Tue, 22 Mar 2022 02:10:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=jacobsuniversity.onmicrosoft.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 PDPQAs9tUVXl for <netmod@ietfa.amsl.com>; Tue, 22 Mar 2022 02:10:28 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2062a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::62a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9A313A0D05 for <netmod@ietf.org>; Tue, 22 Mar 2022 02:10:27 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hkAOZhpwPNyyyjusih4ETz0m1XilPkBr27TNpQt92KLBwQ9w9piAxlluZRD3OyWgrCknDwMcquzqXt/RYszgZ5jqRldhAhWPMf/NXjAvhXWjoO9x2Iq0zAkyeVgFLDaB5eITO3OHnr3BGpqoKS6/nJc9c5WdfGdkK/rl9JnElMJHRV0YtZiLFAVtWQs3Vjl4OCqB7rruM/DY5wg3XVqxrsJqqc1pY/sM7FC17o1sBvovpRvldpl7OHefLj8TrBpoz3MmHFyzyzTcquOIBjjqd8x23LGZImNwpoDpQp+qeP2uNOq4F7/P9xeJQsZYkNT3w8eXv6RxXtcC5kEBXOUhbA==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oMDNOGAjSLSfenV/LF+MZ9aqretgFXbcgxFPF/mCODg=; b=L6YUzX0zR5hA00BV6Hoykq/bShnbGbRLH4IDKIw9igU7lnkOh3ck5IaO5V3QHvBPP1hdiY/yPOJCtC8IffSQjCgTIJ2uSQBBAvqNAbFwNlQrepxuzBDpKzCNEd36Xq4VjWGE+D/Xdpv0xe7ATvtJPWwBrBVuOXClx2CwgYbjKJkLZvwMK6TO+fBhU/ppIl7phT8MLPom8H08d9DOISykmjKLScM4DhETWCoPiOJda53xP9BeGNjMXn55IghSuOIoCqPDQw10TVSECjwazubnCgTYPGgPwOTU2j1GG2O3dix0Jl1VAk3tCbbRq47AiJYpjfVW7pZ0URDm5+GpXUNn0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oMDNOGAjSLSfenV/LF+MZ9aqretgFXbcgxFPF/mCODg=; b=oebE7lbs/rF2CXcxasc5j/rFXfogkbzrx++FqEYfS7NSatGUlq4Suto2grV82lO+8S3aQjOelkj18384lawOU5wlN8qXCEriqQLruriWqTFfbmWxhrkzq+XN/OUMoAM8DSOgLdlECvTQMgos4/7WnfN/5iLjygCAUCq6vlOXsj0=
Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=jacobs-university.de;
Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by PRAP190MB1786.EURP190.PROD.OUTLOOK.COM (2603:10a6:102:29a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Tue, 22 Mar 2022 09:10:23 +0000
Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e409:a2d3:2c86:fe95]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e409:a2d3:2c86:fe95%7]) with mapi id 15.20.5081.023; Tue, 22 Mar 2022 09:10:23 +0000
Date: Tue, 22 Mar 2022 10:10:22 +0100
From: =?utf-8?B?SsO8cmdlbiBTY2jDtm53w6RsZGVy?= <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20220322091022.3akskfq33xyyzdp7@anna>
Reply-To: =?utf-8?B?SsO8cmdlbiBTY2jDtm53w6RsZGVy?= <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: netmod@ietf.org
References: <20220309101609.d33knxlhyq62wejq@anna>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20220309101609.d33knxlhyq62wejq@anna>
X-ClientProxiedBy: AM3PR05CA0089.eurprd05.prod.outlook.com (2603:10a6:207:1::15) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b3ed5066-af20-46a1-49ab-08da0be3cbc8
X-MS-TrafficTypeDiagnostic: PRAP190MB1786:EE_
X-Microsoft-Antispam-PRVS: <PRAP190MB17868F98F2CFD26192601362DE179@PRAP190MB1786.EURP190.PROD.OUTLOOK.COM>
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: ble0xluRph5kxEOnww0Zn2yu2CauP3alDI676dSaakx+bFtK+Z9EhBPoNOHPgThiGig9yXeMpaxGeHbUJUpcIfA2TaVs8DobevD7EgBd9O3RgE82vruXYNN1gHUkw3Mk6Sv+anOV4OOsRGcuy6P9apNgtp1jLhdCmwEoszL0I8QaQ7k7GpCtTio7p858cE0/qXxg41RiS7Q9mwBoZEf0gZ2Y3SFpQtBYIHzlRbvMA6XTNO9ioHkJ838ekP5jKMe+Gvz1aXNgvaS2ek5jz3DlnrHHGHTr1o+v6//0ASRNA6U9XvpXJXzVTm0rbANNjDOg53BoSMHUF0k2G1QPZwZRm/UQhPFl+fEFxe82a63/8pFQHqLZZ+0pn8DE9tVuwmy93zssCn86ju3hhRSqQcwuoamBJEsMysn+6mgOM4TYC7rnlgT+R9+VNIK/WPkQqcy8ZX7kTTwMpJ6oMi7qtcdY9kN8DjEzjcQc+8ODkSKAJyohlk7pIIavYeFVYtWzvcx2GgHoAwq1tAepizjgMmJMTfqjN6gGmF9fTMRhxpzkXDGjmtT9USWw7N7LixTLwhotnBAW32/Hr/FnGon8m6Htdy2ovx1yhTaEpvLkI/hYjInUrBqWQu8tObtP6z64vzh6yeRDj0RbFokPK+x8a0ahtL1MNCc0TuYypYRQOiiyGuzW7Gn9lYJMOjYhPvr7BJjhr2MMcV8qCswA78ZDYHyE9T8V7lUFu0UgT0O0vPfoo0IKB/O/6xNLlnfFkcjMx1MwGTsuk4f2/HAhdGsAiQWETTa9MSXSeh9sIlEQBHkvPa4=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230001)(7916004)(366004)(40140700001)(6506007)(38350700002)(38100700002)(5660300002)(85182001)(85202003)(33716001)(9686003)(6512007)(6916009)(52116002)(66476007)(2906002)(186003)(66574015)(6486002)(66946007)(8936002)(1076003)(66556008)(86362001)(83380400001)(26005)(3450700001)(8676002)(498600001); DIR:OUT; SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MUpuVnJLZGh2eExCQlRFak94c1Y0UnRQVWgvOFo0cXZ3SEdxQ2Z5RTZVamlu?= =?utf-8?B?bSs5Vjdycm1WWkx4TE5ISTBsdXczNWlTeEErYVZ6dlVDYWhZMzRka2tEcUZT?= =?utf-8?B?eGpEdzJKZDFRZ2I0a0F5Q0t0V3MxRTJ5RUJNUWdSTlJmRmZzWUtnc01mSmV4?= =?utf-8?B?Qk1CR0VrWEpYY0VzMTl5cGFBRzd4d1lkd2FVY2o4NXUxZnRrY2lYOFByM0xT?= =?utf-8?B?cGNXaHZKZjQ2OFFrNUU1L2FaUG93U3FzTzhQZUxJUTR4L3ZCanc5Uk4rNit6?= =?utf-8?B?K2oxdm52TjZsbnc5QzcvK0lXbURYMTd1MjkxSTFKcHNqWktENXBqUUsvS0s2?= =?utf-8?B?UklGOXNDcDEyblZCd0V3anh4aU9ZU084RTdIdnEwNVdHaGRFdjVhMEZ1ZUdm?= =?utf-8?B?TmxHL2s2WVNMYkRXcTFFQkZHcklVOStWSTd5OXd3YlJ6bmxiTSt2MGl0V05q?= =?utf-8?B?dm9kWnYvZUFocnA1N2pNMkErVlpqMnAvYTQxd3NESk5US0NPdzNkbm1CdjU1?= =?utf-8?B?bnlWUW8vMnRjL3I0Y1VjQTNaMndLWC95dVc3QkJPdGJGMnE2V2VPWGZUSytG?= =?utf-8?B?Sy9MRjlIYko2SEFxU1FldngwVDZqelpVVVBhUGZ3c295S2RwS1N5elhNN1ZB?= =?utf-8?B?Q1VSUkE1SzE5VXdsMU9WZlA1Q0hXYWlwUU4zN3lUZ1BkdWIvMWY4UDJPMkh4?= =?utf-8?B?c3hua1czcm0waHJ6WGoxcWt5Y0xUSHAwWjQ2UUdWdytIU05SMnM2OERoOVBv?= =?utf-8?B?SUVjVGtuMGxjT2dicFIvMXhFZDJEbE5rMW9vSVR1bWE5YzkxRytYQWFMdlpG?= =?utf-8?B?enMzWExJQkQ2Yk9jbUNRNWR0c0F1RGxFbFlEVEJOVnJlbFNCWDBJUjlSQmtP?= =?utf-8?B?NHpMbXZ3d2xkSThrQU1NR3RISFJueEhGV0lkWW14b2NlNWcrUHdoa1Q2TVhB?= =?utf-8?B?Q0ZEcVZQYWhRWjZabXFSSWlUK0dyZlFaeU9QNFNNT21DaWpLUGRLZGtzT3FU?= =?utf-8?B?UlpuWVUyRzUrNDdxVlpBVDhqTkRMcEZ1Q05HTlZ4NmNxdml5RHoxWFlvdGpn?= =?utf-8?B?MXE1NmJsTHA1K2pLdnBnNi95U0M5SVUyTnRYbm9GdmtRd2t3MFhycFFuN051?= =?utf-8?B?TjBFUG1TQTNQZ1BQRUMwclBrcXJaNUs4OVJBVlpPQjU2SlhQVGhHNHYvNWVu?= =?utf-8?B?OENFUFRiK2J1Qm5EQVFFMC9nd0tYZmhCaUYwNXV4TGVhNHNmclNuR3Y1clpY?= =?utf-8?B?aDBpOEhVUUZSWWVHY0p0R3NVeWdiZFp6SUVSN0UzbWhWeXc2ZjJESkNsdW5T?= =?utf-8?B?MGRWR3hlcHM5Q0FyZWtKZGhnc2YxcWFkTXBzM0xXa2FDYlBNbVgwcTlyb1NE?= =?utf-8?B?ajNORzJsRm9md2dWQkNOdjZWekhRMFlVd29YSTlGMXVaKzhBa2FGU1Q3cU83?= =?utf-8?B?WFRLYTRBbkFKVVZjeVNqZWlVZ3RsMmxYN1pZa2g1ajFjOU5Idy9zNlNGbzRo?= =?utf-8?B?RHJ5WEx1bTFONmtrTERvVlN0RGVyZXVqRlpkREN4Uk5KaDdGcTJJTG1iWVdn?= =?utf-8?B?bGkvQmdLOTdNRU96ZVhFdm14N0sveWhuZk5SRHprcm5GY1BqVkx2c0RzLzNu?= =?utf-8?B?NmgvOUhNcDJPcjIzRXZ1UWJxeGRBWWtHUC9CUEkyWEYvOWlCL0hGRXlLaU1i?= =?utf-8?B?WUVtSG9mdUMwN2Fxa1ZwTllQMVBBTE4zMi9tM3lMZ0thTTBuMmZPc1Q5QzRr?= =?utf-8?B?Y2lka3BkMXE0WFM2YVJFYllCVm80THdyKzNGbTBMcU55RDF1TDJ1UjhVMk5r?= =?utf-8?B?U2NFcXNsYWpoOEI2U1M3aDgxNGZoSlduak5nSkRvSXZQdVpXRHRVaVV3ZWMv?= =?utf-8?B?U2N6aTFTblB3S2NGV0lQRXBhL3BWZEJoVFUyYVVTUEd5b0FUUjIxV3lzcXRr?= =?utf-8?B?ai82ZFNUeTEzSFlOYmtEMGV5UVJvb2xwa3NEVnVEdWZuZWxmZUJnVU5PL2h1?= =?utf-8?Q?xC1++xvj4qiSM/FjxBdVnSP2WTBjwk=3D?=
X-OriginatorOrg: jacobs-university.de
X-MS-Exchange-CrossTenant-Network-Message-Id: b3ed5066-af20-46a1-49ab-08da0be3cbc8
X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 09:10:23.2304 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6xJYrg50ew6USEYUs897yyA6iCz1kn6fkf6uCtKS++nuoRFJGZZfHzJXbFbq2oKjgqFMIzercSIXZs3iU+lgWQUq0bFjHJVxFpGoadSTJe4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAP190MB1786
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/bjj5tZ6KCIKTawCfXVoMbKA9Re0>
Subject: Re: [netmod] yang versioning solution complexity and alternative approaches
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, 22 Mar 2022 09:10:34 -0000

Since I wrote this down anyway I can share it with the WG. Here is a
set of fictious examples adopting annotations as they are often used
in programming languages. The idea is to focus on documenting changes
instead of inventing fuzzy numbering systems plus magic algorithms to
find changes.

revision 2022-03-22 {  }
revision 2022-03-20 {  }
revision 2022-03-01 {  }

typedef foo {
  type int16;
  v:since "2022-03-22";
}

typedef bar {
  type int8;
  v:since "2022-03-20";
  status deprecated {
    v:since "2022-03-22"
    description "Deprecated, use typedef foo instead."
  }
}

typedef baz {
  type uint8;
  status obsolete {
    v:since 2022-03-20;
  }
}

typedef boo {
  type string;
  v:since 2022-03-01;
  v:incompatible {
    v:at "2022-03-20"
    description "Moved type from int8 to string.";
  }
  status "deprecated" {
    v:since 2022-03-22;
    description "This incompatible update was a bad idea.";
  }
}

/js

On Wed, Mar 09, 2022 at 11:16:09AM +0100, Jürgen Schönwälder wrote:
> Hi,
> 
> the YANG versioning solution appears to be complex.
> 
> - We introduce version numbers that smell a bit like SemVers but then
>   are not really SemVer.
> 
> - We have no solution to do meaningful things with these version
>   numbers, it does not even seem to be possible to decide whether
>   X.Y.Z derives from x.y.z or not. We still seem to believe that
>   having compatibility constraints embedded in module imports are a
>   workable solution even though we acknowledge future breaking
>   changes.
> 
> - We push for a reasonably complex algorithm to calculate deltas of
>   YANG module revisions to let users of modules to determine the real
>   impact of module updates on their work.
> 
> I wonder why we not consider the opposite approach, namely to have
> author making NBC changes to document them right where the changes
> are. If authors would write something like
> 
>       leaf foo {
> 	nbc-change "2022-03-01" {
>           description "changed type from int32 to string";
> 	};
> 	// ...
>       }
> 
> then tool and humans can easily figure out in which revision NBC
> changes occured and if they affect a certain usage of the module.
> 
> Instead of simply properly documenting the changes, we invent fuzzy
> version numbers and complex algorithms to reverse engineer the facts
> that could have easily been documented by whoever makes the change.
> 
> If the reason is that developers do not document their changes, then
> go and develop tools to force them to document their changes. I do not
> think it is fair to simply push the pain to the users of YANG modules.
> 
> /js
> 
> -- 
> Jürgen Schönwälder              Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

-- 
Jürgen Schönwälder              Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>