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

"Joe Clarke (jclarke)" <jclarke@cisco.com> Tue, 07 June 2022 14:22 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 DE601C14F727 for <netmod@ietfa.amsl.com>; Tue, 7 Jun 2022 07:22:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.606
X-Spam-Level:
X-Spam-Status: No, score=-9.606 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=ROUDxB9i; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=k2hwNvpk
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VXZOOwMJUuRT for <netmod@ietfa.amsl.com>; Tue, 7 Jun 2022 07:22:33 -0700 (PDT)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D25EFC14F721 for <netmod@ietf.org>; Tue, 7 Jun 2022 07:22:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=25692; q=dns/txt; s=iport; t=1654611752; x=1655821352; h=from:to:subject:date:message-id:references:mime-version; bh=Bj/xtyol+3R5xMWKRmmz6c1xHN3hzpIcbLbm6TYhjWE=; b=ROUDxB9iAx6/czC/fvCHlJUAZbZVLJeng2F9ba/a7Y8ri+5UF79WhtIJ F4kT7CACdmDFOngWSD8kGW2DPOHsx2OSgQs8pkO5aRd0dlSDjinrcirQN SMhgvMKkKxx0vdTlP5ddCIH0WyGNluLLTRkGEtoFcjw+WmjnfCkifgBix I=;
X-IPAS-Result: A0AdBABZXp9imIoNJK1QChwBAQErAQEHAQEBBQEBBAQBASKBTwKBHzFSf1sTJ0SIGAIDhTGFC12CJZBNinCBLIElA1QLAQEBDQEBEjAEAQGCDoJ0Ak8JhG4CJTQJDgECBAEBAQEDAgMBAQEBAQEDAQEFAQEBAgEHBBQBAQEBAQEBAR0HBgwFDhAnhWgNhkMGEi4BATgPAgEIECgHBzIUEQIEARIIEweCW4IPVwMwAwGfIwGBPgKKH3iBM4EBgggBAQYEBIUNGII4CYE9AYMThCuHJyccgUlEgViBZko3PoQXFRqEC4Iul0wHOgNHNBKBIXEBCAYGBwoFMgYCDBgUBAITElMdAhIMCgYWDlQZDA8DEgMRAQcCCxIIFSwIAwIDCAMCAy4CAxcJBwoDHQgKHBIQFAIEEx4LCAMZHywJAgQOA0MICwoDEQQDExgLFggQBAYDCS8NKAsDBQ8PAQYDBgIFBQEDIAMUAwUnBwMhBwsmDQ0EHAcdAwMFJgMCAhwHAgIDAgYXBgICcQomDQgECAQcHSUQBQIHMQUELwIeBAUGEQkCFgIGBAUCBAQWAgISCAIIJxsHFjYZAQVdBgsJIRwpCwYFBhYDI3MFSA8pNTY6FiIFBB8BmFQRH0IBMTIBAx0FNUIKDRcHBxYtCA0pOgILBCkDkWslOY0dQ4EzjBaRUoEwCoNOmQ+HHRWDdUiSV4pShnWWaSCCK58xAw+EfAIEAgQFAg4BAQaBYTotgS5wFYMjURkPjiwNCYNQil51OwIGAQoBAQMJj3QBAQ
IronPort-PHdr: A9a23:jm6fBhUZsLaDuYO5Snx0S7bYYCzV8K36AWYlg6HPw5pCcaWmqpLlO kGXpfBgl0TAUoiT7fVYw/HXvKbtVS1lg96BvXkOfYYKW0oDjsMbzAAlCdSOXEv8KvOiZicmH cNEAVli+XzzMUVcFMvkIVPIpXjn5j8JERK5Pg1wdYzI
IronPort-Data: A9a23:gLnQh6mj2tV47gdXB9j5bGfo5gyzJkRdPkR7XQ2eYbSJt1+Wr1Gzt xIaUGmGa/aPMWH9f4wnPtm/ox8H6J/UmNQwSwE6qSpgF1tH+JHPbTi7wugcHM8zwunrFh8PA xA2M4GYRCwMZiaA4E/raNANlFEkvU2ybuKU5NXsZ2YgHGeIdA970Ug5w7Bh3dYy6TSEK1rlV e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJM53yZWKEpfNatI88thW6 Ar05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkSvqkAqm8A87ko0HPQAdUp4hnKApuJow vJUj7u6UiwWeYSZzYzxUzEAe81/FaRC/LmCKn+lvInOiUbHaHDrhf5pCSnaP6VBpb0xWj8Ir KdecWtdBvyAr7reLLaTSOJoj94gIeHgPZgUvTdryjSx4fMOEcCYE/uWuI4EtNs2rtFwGdDlY ZIaUjQxMjbsYwBBEHwGUrtryY9EgVGmI2EH9zp5v5Ef5WXPyQt9+LngLNSTfcaFLe1X2F2Tp mXL+XvwDxUWOca3yzOO9Xi3w/LJnD32QpkTCKz++vMCqFSVyn07GQATXES8u/qizEW5Xrpix 1c88y4qq+0581amC4S7VByjq3nCtRkZMzZNLwEkwA+R1qf77kGQP1odRBlYUvssr+QJAhV/g zdlgOjVLTBotbSUT1eU+bGVsS6+NEApwYkqOHNsoewtvoWLnW0jsv7cZo04Sffq0LUZDRm1k m7U83ln71kGpZRTv5hX62wrlN5FSnLhZwox6wO/somNsV4hPdXNi2BFFTHmARtoJYKdSByKu 2IJ3pXY5+EVBpbLnyuIKAnsIF1Lz6vaWNE/qQcyd3XEy9hL0yX4FWy3yGokTHqFyu5eJVfUj Lb74Gu9HqN7MnqwdrNQaImsEcksxqWIPY27C6yJMoIUOcMqJVHvEMRSiai4gj2FfK8EzP9XB HtnWZ3E4YsyUP4+l2PmG4/xL5dynXBirY8seXwL5033jeXBDJJkYbwEK1CJJvso97+JpR69z jqsH5Xi9vmra8WnOnO/2ddKdTgidCFnbbir+pc/XrPSfWJORjp7Y9ePmuxJRmCQt/kP/gs+1 ivhABUwJZuWrSCvFDhmnVg5NOK3B8oh9yJnVcHuVH7xs0UejU+UxP93X/MKkXMProSPEdYco yE5Rvi9
IronPort-HdrOrdr: A9a23:7PQzZK5HzKrW6TnPHwPXwU+BI+orL9Y04lQ7vn2ZFiY6TiXIra +TdaoguSMc0AxhIk3I6urwRZVoIEmsv6KdhLNxAV7MZniehILFFvAB0WKA+UysJ8SdzJ8k6U 4IScEXY7ecbSkYsS+52njCLz9K+qjizEncv5a5854bd3AMV0gP1XYdNi+rVmlNACVWD5swE5 SRouBdoSC7RHgRZsOnQlEYQunqvbTw5d7bSC9DIyRixBiFjDuu5rK/OQOfxA0iXzRGxqpn2X TZkjb++r6ov5iAu1DhPi7ontprcenau5t+7f+3+4sow/LX+0SVjbFaKvy/VfYO0aSSARgR4Z 3xSlwbTrhOAjvqDx6ISF3Wqk7dOPJE0Q669bde6kGT5/ARDQhKdfZplMZXdADU5FEnu8w52K VX33iBv54SFh/Ymj/hjuK4Hi2Cu3DE1kbKq9Rj+UC3kLFuGoN5vMga5gdYAZ0AFCX15MQuF/ RvFtjV4LJTfUmBZ37Us2FzyJj0N05DVSuuUwwHoIiYwjJWlHd2ww8Rw9EehG4J8NY4R4Nf7+ rJP6x0nPVFT9MQb6h6GOAdKPHHQlDlUFbJKiafMF7nHKYINzbErIP2+qw84KWwdJkB3PIJ6e D8uZNjxBsPkm7VeL2zNcdwg2HwqU2GLEfQ9v0=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.91,284,1647302400"; d="scan'208,217";a="883864594"
Received: from alln-core-5.cisco.com ([173.36.13.138]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 07 Jun 2022 14:22:31 +0000
Received: from mail.cisco.com (xfe-rtp-002.cisco.com [64.101.210.232]) by alln-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id 257EMUpJ027303 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=OK); Tue, 7 Jun 2022 14:22:31 GMT
Received: from xfe-rtp-002.cisco.com (64.101.210.232) by xfe-rtp-002.cisco.com (64.101.210.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Tue, 7 Jun 2022 10:22:30 -0400
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (64.101.32.56) by xfe-rtp-002.cisco.com (64.101.210.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14 via Frontend Transport; Tue, 7 Jun 2022 10:22:30 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ek+ZAwbQuq4C0kDCjwJhPXA7/PgPc+JE0YOBM52AYtVd8L6BxFbwC5qa5YpxCNSEEvpIZvjfW59qGgk8YnNCfX82FNfYlfSrs6Gnd1enZMNc5s3HU3xgm0COtaCMIDEZEQig6jW2Za1lwBPflNyVtntUYd6xjpw7eTPtiPmLzQTFfW9QlpK6u0fcVClwrfDeOKFFkmqf6c9mylzpAFP1JzS9NF5/qCfYdXWDDXRYhylLfvKuThLRN/wSmTbcs3nOT5gHtzPzNLyXDxt7DytJucv0PRPqRro4kwDtmhXgC+7qCsMEVY8fTod5HU0O+Ya7iTnTkxcQ4JVqTVNBzWo/tg==
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=tObk+N0QDa/kJ7OrhPMeWp5PlU+CzC5//EUacZL1700=; b=JcFZQlkQsgOPOnKpkkP061blqardwkG8WHB13lfIzQq6UsY+c842OHULPy/ODQN4nIREAI8nZ/+z2d/2VWP0Lr3psavqUcAwDUwokaB3bMxekUQvSpYSNUEzYGXFByziirqsZTeh9uEC4mgyrqenPvEK2BDnqQmA2HYiwhQjrXmDvTaHpGC3/zgPrYy9/1qmqwZRYcpeNr9/OT1vnjaiwLr844SwQCSNko62ra7DeBXXD3wqejdWsaGbytnCWCfAX87fz2VAPe0duEfsU9nuvzL0amrS069TLuKqI4t4D2GjX3F8si4omifs7QXzoi6pwofcwQmeLs7nsvgXEeePGQ==
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=tObk+N0QDa/kJ7OrhPMeWp5PlU+CzC5//EUacZL1700=; b=k2hwNvpkrRBwVn+rQkDygLv4j287JLaUzFXiNruUkFxJhLrGFqrhl55RMJcDxpXnaf6lE9g/5WRIz87kjQHIHYwlna+0W5I4kTlaQ5kiCCD+Muk68osKTta6kvOJ1fpolv9qKKmz4BEDVYU3YWskTprShoYw3EOwQPD4MzZCbnA=
Received: from BN9PR11MB5371.namprd11.prod.outlook.com (2603:10b6:408:11c::11) by BL0PR11MB3444.namprd11.prod.outlook.com (2603:10b6:208:6f::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Tue, 7 Jun 2022 14:22:28 +0000
Received: from BN9PR11MB5371.namprd11.prod.outlook.com ([fe80::291b:d191:5acd:e6ab]) by BN9PR11MB5371.namprd11.prod.outlook.com ([fe80::291b:d191:5acd:e6ab%7]) with mapi id 15.20.5314.019; Tue, 7 Jun 2022 14:22:28 +0000
From: "Joe Clarke (jclarke)" <jclarke@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de>, NetMod WG <netmod@ietf.org>
Thread-Topic: [netmod] yang versioning solution complexity and alternative approaches
Thread-Index: AQHYM57FqU3sFakS0ky1YR5SQbJfrw==
Date: Tue, 07 Jun 2022 14:22:28 +0000
Message-ID: <BN9PR11MB5371A07D4860176FB58AC2EDB8A59@BN9PR11MB5371.namprd11.prod.outlook.com>
References: <20220309101609.d33knxlhyq62wejq@anna> <CABCOCHSPScMQKpdeqV0-D+DNyPdWwkb0O7eXT1TZDiztp48oYA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cisco.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a082b28e-21dc-412e-1c2e-08da489126a4
x-ms-traffictypediagnostic: BL0PR11MB3444:EE_
x-microsoft-antispam-prvs: <BL0PR11MB3444699C2B4C3A5BA972E309B8A59@BL0PR11MB3444.namprd11.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Jo1PlagMbXqWE52t2afefGEuSglM2m/ROJ6TMO3eQKJrBgVzE/fCd1TK5ZoIjsNtWgEZLZlh+HyBtutzJuNlZcVIH2bk1F+bpTKkmh9QoFbIIW9ybovEM7wzgT8NmsonaexmOXvi5JWCfGZJMfrV8uhrK8Y37OVCEJizyaV/QiCn062Q9LUXt5VeFZMQuljICvy/5s7ijbi8zfUcHHPALRdiIQxxIZ0Wjrl37gyh8CSho5FlQPg6ImXsMmBVfJkNjcqyLnAhC6rAQOlduGfxTlCaJJjnPuyjNkX5xbx5ZEdxghi/tA/Ptk8kb/rs3wqh5TKIAG6h30AfAednS0xuy4vVc6FJn+ED1IYrXxI8XAAdNfUyBpc0fxCotzxFrE/5psgYZc0Nl5NTil/rTrQh95u0/6778yecuCOjMVocUtf23XGU2azGgYOsZotPPGRxtlJew5hMS8BubTyyd3hapXuJjbYaJlVOrSfGwDjE7HeoGc6UyVrXlHirXOTWyww37MZHTgNrRou9zzhDHL+EI4BY7w142UFdsEspXoSbHkKZic7IPyHFEoieQW4YoOCyBbH9Bg6fZzHZkV2zpyACtiMHbplyJgKu3NHtJ2v21IySSW13v0gH98QHpnFymbAuXURft5Z3iTIW4asNO5XfQRp1P6nAVYBWhtK/hqGqUgvs0w3HPgDl6bRAl7JU8dQsGDavxCFQoseFmzai6gXWGQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5371.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(52536014)(83380400001)(33656002)(8936002)(38070700005)(86362001)(122000001)(38100700002)(71200400001)(8676002)(508600001)(66446008)(66476007)(91956017)(66946007)(66556008)(76116006)(64756008)(5660300002)(110136005)(2906002)(316002)(26005)(55016003)(186003)(9686003)(66574015)(53546011)(7696005)(6506007); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: lYpN2oWGPUO6GiqXoYvvFV2a5TGGpKzRngO0AJWhzDmmh99ut9gLm3MMDaXeG+WMqbbkYcDJWLiWD0OEaxVtQrPH00HFhB9CoO9QD9KL14DFfwWW8elzXXiyDfL2BZ/OZUg/xb7+K328KoQwkvD933tlPbj1d33pnRmTu6e+pNoASvZ+4oFKlazTskXb1oJsKfXwtta6MV5/SDbK+lNgXuCX6y6r+C3D/sUgTQXFyFdP6CoUAXFzzkK3OlsYC5UqTZHHrzmb6j0YrgWiI1FmOs049DC+R5Lfpz6OdgUxkGZBKhBwG/riyTdGIOHdY6HHJDqiEAqxky1JeuUHV6V/VrASLouPJ12e3MCZU2rXutczFI/6bB6eMiX4TW8W6x952Htd42ct/FZNoBBDpxIa78xVodO0CZiqegbzo+BLBAnCSNz6G8FV5ICm1U43LZKyQ6rF1n5HV1BtXS23VWHiBPws77R484aZAXyp+18NV3Tas0dFJF3NiTKPtckB+CdjBosHidhruE9GrFqD5j9hMF14AdZ4WP7AYcXEBdkL9h40SyPLYvF6ZnrtNnpSU94ibzw0DQbIslefBU1c9ah7cIVekNHc8X6w5/Jd0i0VdfBjJyyucUUkZhqz/SjGRIQc6JX3kBdDE4FLib4vyDlOLiebMND4UpmFUPZiWzVXNy2E3LbJC+SPH57dymwrPZlwB4rzD6ERgZo5raArVzFwz3i3kGh+Lddnxd+Hwkd+Mf0US+tRMZwuBCmDLqaZ1JhM3JZtFMu7cHOgbpKZlbK7FYdummuZ+mE+6d6ux9NeTnKGNjqLjmkdSg1B5Kj3kTBSXk85fzyQxxrlWzcK5wtoAwUUEdgIMUi7mlo/bZ0H3FDGobs0/YX4p9bHLcohAbthmdnfoX2vkk2dHZhnKsUK96MHvhFMqZ/bI42xp0EvEYelZG3eJH+ByeSj0ZKm9TbrrOcMOdgZSZHh1NdGrVEDiCSCBTwXXcVqs5E8ujyHVjYdFbd4u2NZCwysgrewsqjhV6Xd4A2FU01J+utRBtUeBoDRzSE+k2cHa7r8mXGUJ1uOHG3jWwP9EZV2gPiVhgEGodMk67Vtfq1Tj4ouFxvYjsCM8uWSIwyrrzbtQS1cLWPr22dAaCP+j3w4ehJG+xZ4+v00vRm6H12YFevf/gzOQoM9W74dBw17S3Wk9sOX5vTNv4fUwTPB4ufHcdGTH78YjDx/pfb7vzYwTbYvgMjcQx9ihdljfEyX6dZglGSeeXTyRtBCWxAfU6Q7Z5aW6b19Zh8mSucvhOJzWV6SyRSijTg+1QXf/pJsbFbRgTAk5yeHeRLVmFh352jkZQAtaSwKkBuBtFKRMmoGFoWz4P49UCVnpjb9BVK9HBl2slP2B052OiogwapgeNJf8s9csoA5h8c3mmXVOd6I2glIPe2RZpVWmDm7f1LaIamQGGC6WBgpiq50v/1v0WK517+bTKBq93OOn7SxmlY68NdPRD4NZDeqLlyIuJUwpj1chVizNh62Qk6/0XPz0LR8QaEaTJgw1I2pnOtPVYFJm/3/Rafz0krIvVI29tiyaBlOOsWJWfUazpFeh/6IkCyHPLfRPrUUWY8Dm4BkKZRv2cBOK75N/mwdM3bgXrM3FOdxxsUv2zZEKR73NlEp5frYIutX6F6/LD/7z3YvLd7Rdh4Up+TEpqF0ivnN0AvW6DvSRFRQRWcBCz2Zbhm2jDs1k0nRKNT0GrgPmLxT4Xds4aHYHunZQg9cISCn6Mc4alMeDKztjoI=
Content-Type: multipart/alternative; boundary="_000_BN9PR11MB5371A07D4860176FB58AC2EDB8A59BN9PR11MB5371namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5371.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a082b28e-21dc-412e-1c2e-08da489126a4
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2022 14:22:28.1624 (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: Hvl6U1conLy4s2+cjx3Xmdj1m6gCNJKBlhlU0V/Cwo4+WsuVbfOf0AW7S/5mmMfnE3qzLW58AOzpdU5YPZmf5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3444
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 64.101.210.232, xfe-rtp-002.cisco.com
X-Outbound-Node: alln-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/65OIeAzlyTrhq961kSklsU5XD1U>
Subject: Re: [netmod] yang versioning solution complexity and alternative approaches
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.39
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, 07 Jun 2022 14:22:36 -0000

Thanks, Andy.  We know it's been a while, and we're trying to take care of all of these comments.  See below.

On 3/9/22 13:13, Andy Bierman wrote:


On Wed, Mar 9, 2022 at 2:16 AM Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de<mailto:j.schoenwaelder@jacobs-university.de>> wrote:
Hi,

the YANG versioning solution appears to be complex.


strongly agree.

There are many new procedures (for using extensions) that are not likely to
be adopted outside of the IETF/

[JC] Some of the approaches being proposed in the versioning work are already being implemented (both by vendors and other SDOs).


There was a valid original problem statement related to release trains.
This is the first disconnect. The problem is related to software release trains.
Vendors do not release YANG modules. The release software that contains and
implements YANG modules.

[JC] While vendors don't produce "standalone" modules, many of the modules they do produce are tied to software releases.  That is, they reflect the feature implementations in those releases, some of which may change in NBC ways release over release.


Multiple release trains can lead to 2 problems (that are currently handled by the implementation)

1) most recent release date for a module may not be the latest in all software release trains
    This affects "import-without-revision" for a client that tries to use the most recent revision

2) the same [name, date] tuple may be used in multiple release trains.
   This affects the YANG library and <get-schema>.

The solution for (1) is problematic because extensions are used and a YANG 1.1 compliant
tool MAY ignore ANY extension. I support a better import-stmt, but this should be
done in a new YANG version so it is not optional to implement.

[JC] If a client that doesn't support/understand the extension attempts to import a module and finds a revision that would otherwise NOT satisfy the extension import, then a compilation failure may or may not occur (depending on the type of changes) but that would happen today without this extension.  The extension provides a better chance of locating the correct module or failing fast and deterministically when it cannot be found.


The solution for (2) is not workable (as pointed out, it could take 5 days to release a change),
and the different revision dates add complexity and do not work if import-by-revision is used.

[JC] We feel that import-by-revision is inherently broken as it is too rigid.  But the solution for this is to use a more flexible import.


A great deal of effort is spent identifying that an NBC change occurred.
IMO it is not useful at the module level.  It would be useful at the object level,
but at a significant module maintenance cost.

[JC] It is useful at the module level to provide an overarching hint that something potentially breaking has occurred (or not), which then leads to deeper analysis.  The cost of doing so at the module level is not much more than keeping revisions and their descriptions up-to-date.




- We introduce version numbers that smell a bit like SemVers but then
  are not really SemVer.



This is very important.
IMO it will do harm to interoperability to have 2 SemVer schemes in use.
The early drafts said the OpenConfig SemVer 2.0 would be used.

[JC] The YANG Semver scheme is fully compatible with SemVer 2.0 (well, the revision of it we link to in the draft).  We extended it because of the requirements to support the indication of branching.  However, if one wants to use it like SemVer 2.0 or Openconfig, that is fine.



- 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 have no plans whatsoever to write code that uses the NBC extensions.
The module revisions have to be compared and the real changes have to
be evaluated against real use-cases and real applications.  Since the tooling
has to do all the work anyway, having a "this module changed" flag is not really useful.



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



The semver is trying to characterize changes to the YANG module and also
seems to try to identify the software release train containing the module.

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";
        };
        // ...
      }



This is more work but also more useful.

[JC] In some cases this is useful, yes.  As you point out, tthis approach adds additional work which could lead to inaction, and thus the consumer ends up where they are today with no clear idea that NBC changes may have occurred.  Whereas, the top-level module indicator is still useful to the consumer to signal NBC changes and lead them into tooling to investigate.

[JC] Where this approach is very useful and necessary is when semantic changes occur that tooling cannot find (e.g., a temperature leaf suddenly changes from degrees F to degrees C and there is no units property).


I am confused about the revision updates for work-in-progress.
IMO there SHOULD NOT be any revision tracking from I-D to I-D.
This would be total noise and way too much work.
Consider the client-server groupings, which had constant NBC changes
across 27 revisions of the drafts.

[JC] In such long-running drafts, it has been seen that vendors choose to implement draft revisions.  Having YANG modules so tagged makes it clear what revision they are implementing and that it is not yet a ratified standard.  In terms of work, one only has to update the revision-label when the module changes, and they would otherwise be updating the revision statement (or changes in an appendix).  Simply bumping this doesn't require a great deal of additional work.


I-Ds currently reuse the same revision-stmt over and over in an update I-D,
just changing the date.  Maintaining a semver label throughout this process
is a waste of time.

There is also no way to tell that a 1.x.x release is a work-in-progress.
It is clear for 0.x.x  only.

[JC] YANG Semver (and SemVer 2.0) provide a way to signal such that.  A 1.1.0-draft... signals a WIP by having the '-' there.  That character indicates a pre-release version.


There is no easy way to identify a release as "published" or "unpublished",
especially since YANG modules are extracted from the source document.

[JC] Released versions would not have the pre-release marker.





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.

Some vendors actually avoid making NBC changes to their APIs.
IMO this IETF work is trying to normalize bad engineering practice.
The past WG (people creating YANG 1.0 and YANG 1.1) felt quite strongly
that changing the type of a leaf was something that should not be allowed.

[JC] This work is recognizing that these behaviors occur and providing a means whereby they can be signaled.  This is part of the requirements.  By having these conventions it does not mean that one has to make NBC changes.  It's just a way to indicate them and make it easier for consumers to know when such changes occur.



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.



1 more comment:

Errata not integrated:

Most organizations publish corrected documents when mistakes are found, but not the IETF.
Instead the WEB page will have a link "Errata Exists".  It is up to the reader to notice it,
read all the errata, apply all the changes manually, and maintain their own private copy
of the RFC.

This is especially bad for extracted YANG modules.
For example there is no way to create a revision label (or date string) that
indicates that this is  [ietf-netconf-notifications, 2012-02-06] + Errata 3957.
Vendors just hack the incorrect RFC version of the module.
It would be quite useful to have corrected YANG modules when errors are found.
Even the YANG repos simply maintain the uncorrected versions.

[JC] Errata on YANG modules should necessitate a new version of that module.  Admittedly, this takes time in the IETF, but incorporating errata on the fly without having a means to signal a change from the RFC version would make it even harder on the consumer.

Joe