[netmod] Re: YANG Versioning question - namespace version?

Jürgen Schönwälder <jschoenwaelder@constructor.university> Tue, 18 June 2024 08:53 UTC

Return-Path: <jschoenwae@constructor.university>
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 8D5C6C14F5ED for <netmod@ietfa.amsl.com>; Tue, 18 Jun 2024 01:53:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 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_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=constructor.university
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 uKetm9psHk95 for <netmod@ietfa.amsl.com>; Tue, 18 Jun 2024 01:53:26 -0700 (PDT)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2112.outbound.protection.outlook.com [40.107.13.112]) (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 77CBAC14F5EC for <netmod@ietf.org>; Tue, 18 Jun 2024 01:53:14 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OnWVLNICJVo3oW6w9cVJ8ujUeIzdYFXSGF3YZTjMKcIKHw86/MxevSgoxw+RvHl0x1sCvcSfSH7MfC/dc/xlKoyTSnk1cvd+fCSSKJTt/r2XXMKjoiSOvoIC/VQU4EDq4a/7nsQcVACVrGSXjDOqSBc5SWaN6Vtv+UCfUaQ9gxwECw0usArfOWSOl8dgivQ5IHINeme6OS1s7YAXkclDd9y1FawZseYmV/ACg1d4RQZCAObFkdAfQHRIzYccWbs2mzAfUlbyjBZwDKraWxwDl2SEda2mc1pzuN7OX4HbscaWbfPe+eAJn6hP2kIPK6C1MSp6rrkcvTSev/uU3anMUw==
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=2UQ75p/3SK85A44fb5cnJ1xGKx6V0Vf++yNyWZNl3Do=; b=aNBx6XjFIqVhw50MUc363NhSBacpX3Mmetx/0Y2+hvS5/H3jObj4vb98nlirXGj+6oP/ploHXVj3I3pH0wIcDUT1yEcHYbtOSpTdbVe3TuM0Dwlo0B7LXS2ylHqIgIoIXK10BihDDNQNMn7dmJqdTKGSM7rCE+d0R1QAkC0p8GrEmR+jDibRVdQXd4JTPtpOhf9J5xcuXbnu+ypkcyD5zWecUD+LgisgnXjZm08JCl9q4UlVDY8LH+4vvo2OKu+apdAJPed9YlPTLpFGmzN7PPl+98O9KcWTFG8rGJT6S58k03l0rYavswzkgrkCOMj0nJPwwZjT+UcMq1/W0f3+xA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=constructor.university; dmarc=pass action=none header.from=constructor.university; dkim=pass header.d=constructor.university; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=constructor.university; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2UQ75p/3SK85A44fb5cnJ1xGKx6V0Vf++yNyWZNl3Do=; b=Cp+a15rlSo2vEB2xUrBCgRSfllxVEFNVsvdz7jLr7MFjM53pd70f3yNtOoI9Qu/fHLzA2BnnESb8JPcdgsFGpoOergr/R/Fw/fE61xkR7DkNc8uhUh1kpLWW5zv9eAjhHn2AKQdLOYq9RGyhPVJCSL0mNUkJKV7ddce+9K3MlXj4qxFHSp32TvBPZAxCBs6jfj+JXTPGltymW4ySQIq62CYsZz4nS6dN2Mc94Iz958LD/i80pO6U5b6jCLHtvfL1ZmTn20iOeSZll7OHFsp1bcKM7RD8+dn2riweao+z+TPSFspBxiI1LmNLDv5a/oAZCZRZqGkRKrY3nguvUJs66Q==
Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=constructor.university;
Received: from GVXP190MB1991.EURP190.PROD.OUTLOOK.COM (2603:10a6:150:3::6) by VI1P190MB0736.EURP190.PROD.OUTLOOK.COM (2603:10a6:800:12c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.30; Tue, 18 Jun 2024 08:53:09 +0000
Received: from GVXP190MB1991.EURP190.PROD.OUTLOOK.COM ([fe80::99a1:fd80:f683:e46d]) by GVXP190MB1991.EURP190.PROD.OUTLOOK.COM ([fe80::99a1:fd80:f683:e46d%3]) with mapi id 15.20.7677.024; Tue, 18 Jun 2024 08:53:09 +0000
Message-ID: <931abe0e-6a78-4ea3-97de-167eb62621ac@constructor.university>
Date: Tue, 18 Jun 2024 10:52:43 +0200
User-Agent: Mozilla Thunderbird
To: netmod@ietf.org
References: <010001902725fef5-d778c086-9139-46a1-bab0-50246decaed8-000000@email.amazonses.com> <DM6PR11MB2841739C3E6383F544D656D8CACE2@DM6PR11MB2841.namprd11.prod.outlook.com>
Content-Language: en-US
From: Jürgen Schönwälder <jschoenwaelder@constructor.university>
In-Reply-To: <DM6PR11MB2841739C3E6383F544D656D8CACE2@DM6PR11MB2841.namprd11.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MM0P280CA0004.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:a::18) To GVXP190MB1991.EURP190.PROD.OUTLOOK.COM (2603:10a6:150:3::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: GVXP190MB1991:EE_|VI1P190MB0736:EE_
X-MS-Office365-Filtering-Correlation-Id: 212adbde-2ad7-48ef-0c22-08dc8f7413d0
X-MS-Exchange-AtpMessageProperties: SA
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230037|366013|376011|1800799021|4022899006;
X-Microsoft-Antispam-Message-Info: PeCo0NKrtVAwtbHTezeNOb/a2lNZpEkUUAJnhPYR09Pqmu3SdjdAyb+IwXCdDu5NHWpAcnDcl+C+dbllSTYBHReLT0d1OderbBGW2hLztDNeCYajVe0udOlre8Oq7r9kPd7ro5RVqiD7ZP9DkF8s4krrSO3VGjmDWSyAlr8fBQXszPHg94uug5mpicKMSWevh4akOfxw7wkkEQOKn6EnrXJDhso4CTS191MBBBWcd4QiF1usFn1fiMd99BXK1Mu14Vel/RGGYFfDuS8Nu5ckzX3sw5/KWrRNbLBY+V33dtRk6HHhBQAXbaGVjbxWZGdWowgRkT5DNp6EHw/BRdCWLcdnYBe9udMAI0VHJDK6LpzrOgZx3xzWwCRd4pad0vm/5mYjSgwJRoQxKbaFegLbXxfdfpjqicxwacL76fU5wtjqpaeiEboqwPPEvdz3oRD/hNjtmbr6s5cRbO3S8zmdGSWN8UufZvcuLkxd7cNH04fH0o2yViMqpk9EP5bQZUy/pNKeWysFd19IhmU5jP3TLUpQ/avwnGGqDlMlcIi2brWdYDXA6oTeeKsiPdvm66qIfNn+Eb9SwSlI/KjXcviASyQ9e4KcGi42ekme1IkW2yluAT9CmrtLULIf0og7a5ZMW9uJpKe8hyyAo/kewV1otBaa/44QYKUFxu3FpBufFKSqI4uBfdCM9zSDkQpmuWVTveSRt6+iMh2hi70oSxgYCbMSlXk9GTDFuz4YLqEqmQW7W3vuQBP+RxUZyf3YFLL7NcnVCxD2qQQZUr61hP7ZvglodP1sxQxwMhoOpq1c7utsOBDBuhM1GbbQ7YBYjA+/q/gN9FaL8qadIlk/nd6lvCIXoXsWqYndIgBhEAMFj3p5x5uAdQbiaa59FsAoPTBodcxDEZij/FWJMd6Z5LJVZ06chtvVtfsA9gT39ZuRa419P4/hZFLqlI5fEgOlQsGLDe8xRNprpYPoP7Gl4E0qyoxUwYUnwicITHJKN5YhXoIAeU/pLWv1rjt8Z3Kb35jqQSmGzZ1eQ1QFEffJehv65Trz6brjfKodpKkPp/vIdP8QtWzciMUojJVYmFwlAQ47M+XENs/mMROuPK0NAa16zRsPF4PkVVptRES5FU7FTAZ8rabUgtympOEybQbBZwbGRHSo4SuFNShfiDUt9Ijg1e0Tqh11smSX8eDLE5eTWxEMEhDjSo9a3s5RhbyiZ2WS+veupaPMWlXLGRu+iHCinnFhytlqQXLc64Lxl8Hu0Ty7K+EJN/YivcmH2trRa8Vfx5gaA8ZQAIdIYHPQdsU697RATduknHNBOQcjBiiCZ+4=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXP190MB1991.EURP190.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230037)(366013)(376011)(1800799021)(4022899006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: FtqGJowXOGQ0QenOIGfbyXevEl5a7r13nG70DoWkIMM0N7a/F98YsoVDgFq4/Pi14gZKRgY0vYUzBvxwTYiZNTl1zAy/ql1FsYl5UUywVJviFFyRTw9dahg68w6Pu9pWM3YzKnStUZxaRjkUkd8DOkVFYiTLsjTizHzOVTcFOAXhfBEmEPMZROSZJkkG0waMC/FCpNtD5I3foAc2WxFmk4kemosritf6IDeSs3bBfPyNG1w3A/yn503qmMVvRaViLFIbWQHIV5TEwycabxt1379EwcN1WweW9Y1szKQjRraohsD8WogmL85C6D3wro/8mJ0Ti1RY0VK1I+OtGmzdTxAQjJFQ5u7sfUlC43E/JEGC4hsytoPHIVbFotRLX5WV+cEl01goWJva8ibDv09LoKvwlwUz+sgeo0+bJ6u6WJe8F2vCTqOAU2fxiIN4LxhrMkF3fQEIqkM8euUH6sjjjKmM/mBviHM3vlrQAlCgfMEBQBUsFJ7gC1CwlF+NI5LrGDE7uIbAuQrdulgGgJZI4ljr9AJ/WFRimSh5OGtWWnOFpNuL7yGLqZNc/dxND8csRig8btGf7t8snaoR90thrWZ63la3yfv0DQo9QcLo+nTPNidEifqKhXVPdh47gHjw0pRJdoa1l6ZKolUP/FK1ylUhnBBbuqdsEgufmUzi+Vz/dZS9p55sEAMDigoCHRkzwni8YQUdHDuBauBaO6NrG97PZxlz5cORtTbopnv2TTapPbb0e+nk66NCAMhBCs30OQShUOYJUA+DpMONqiAn0tvovYgSFB2NmhuDua8JtYUo94cfWQJvA6HFIhhs8YqcpJzj7w90kqssfLuB/v58+HLV3jVBmoVqH1eHXCshJX6YjYeQaTB93FgzH0VyuK8Vb0sG94dgrrIQUDaJJ8i9PQl+uOdB4X+DnjaMbk8/ZntZaSrjqnx1+g3RuppBpNEcjicK0a44UO3f991rIjSQjIGxH9k1scLuYV40KXH4n2PpRn2Z3fKZIZPkPognDoDYsKOvVolL+cWqQI1F7ST5lpDJTjTRMbMjw4NQA3WRB/h2H/vS10Q/gQ/t8YIDgirwDOjkDq/ua+eAa3Iomu6TFFFKWi3jwZBj352qO5ySm31ssQOKv4Dt2eBfx2wOfAcj1SjfPkNNqewSUFRJwQGexAxTxlARgwLENfUP2grtfgtcA1eY1FIpjsVsJUQju5f+ZuwMVIOa5kEc2C/w2ihl+WWVrivQGGdXmx/gHTvF3bzCpXgbNcSk9cpixtnULvydmhDtnKBpV1FPQ5OAz/4Bx9V1Lq8Gu+d6/zMk+B9QlA7i8HPCOiXSX/ZeqhiVFbM9AtbVxBLROlXehXt3VIg3gpeQpaFDIMsel/SZykmJFEhVrdwTNqXH4aJyG7d0oUkUxL/aY0pOV3J1jZAcNGYIndtvsRRc2mfrEQyDO0A4a/0BhS0rWeGyyQUVVv65o26hRNt6doLT9VPqiloAP3HhWTEE/LKC/Bqvpaixq6xFQNzi5PkB/R6O8XY4fwuSGzQgmzcVyLA6j0z7STHZfugpy7WSfElGb2fqx5UFEj8ZZPgMlWF+0iMttCQ/fyRFoLXyCsrkRG+P3tqJBRA0d5N382IXwXfup5YqZen94IBNN58=
X-OriginatorOrg: constructor.university
X-MS-Exchange-CrossTenant-Network-Message-Id: 212adbde-2ad7-48ef-0c22-08dc8f7413d0
X-MS-Exchange-CrossTenant-AuthSource: GVXP190MB1991.EURP190.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2024 08:53:09.2514 (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: C8cEuGCbIgJcZ3vnt1nLSPcrWk2p2II5oPvA1ZpbVntydk0Atgh9RUUHb5gxX4q/e6fGxI5KY/9P3pITimZ22SrqBQylglqHCwxXxXZzWbA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1P190MB0736
Message-ID-Hash: PL6PSWLRKBOZDIQGVWWHEPOZWPANGST6
X-Message-ID-Hash: PL6PSWLRKBOZDIQGVWWHEPOZWPANGST6
X-MailFrom: jschoenwae@constructor.university
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-netmod.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [netmod] Re: YANG Versioning question - namespace version?
List-Id: NETMOD WG list <netmod.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/SA42pQhrbpQG3qXabOs0AXDHQuQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Owner: <mailto:netmod-owner@ietf.org>
List-Post: <mailto:netmod@ietf.org>
List-Subscribe: <mailto:netmod-join@ietf.org>
List-Unsubscribe: <mailto:netmod-leave@ietf.org>

The YANG naming scheme is (module, path). The XML namespaces are an
XML serialization artifact.

By promising backwards compatibility, the (module, path) naming scheme
was sufficient (non-backwards compatible changes require to change either
the module, the path, or both).

The versioning effort proposes to evolve the current naming scheme
to (module, path, version). This requires that in _all_ places where
YANG-defined data is stored and processed, the version context needs
to be made available, which essentially implies availability of the
YANG library of the originating server plus code to process the same
at all places where YANG-defined data is stored or processed and where
robustness matters.

/js

On 18.06.24 08:22, Jan Lindblad (jlindbla) wrote:
>
> Kent,
>
>
> I was recently asked why YANG module namespaces aren’t versioned.  For 
> example, the “1.0” at the end of this URI 
> "urn:ietf:params:xml:ns:yang:ietf-crypto-types:1.0”. The stated 
> concern was "because without this, then management of backward 
> compatibility becomes a nightmare.”
>
> In the very early days of YANG, we actually had a brief while when the 
> NS strings were composed just like that, with a sort of version number 
> at the end.
>
> To know that something is a new/different version of something else 
> you need two information elements. Something that indicates “sameness” 
> and something that indicates “newness”.
>
> When tracking files in git, the “sameness” typically comes from 
> keeping the same filename (even if git can handle file renames if 
> registered properly). In YANG, we didn’t want to rely on the filename, 
> since the module filenames are not necessarily globally unique, as the 
> thinking went. So the NS string serves as the sameness factor, and 
> must therefore not change. Basically, modules with different NS 
> strings are (considered) completely unrelated.
>
> To indicate “newness”, we depend on the revision statement in YANG. In 
> the Versioning Design Team, we have also been toying around with a 
> checksum to indicate newness, but that has not taken root.
>
> Theoretically, it would of course be possible to indicate both things 
> in the NS string by appending a version number at the end, but then 
> all clients and servers would have to agree on the convention/rule 
> that the characters after the last colon in the NS string need to be 
> processed differently. That ship has probably crossed the ocean by 
> now, but we could bring it up for YANG next.
>
> But I fail to see why our non-choice of this particular solution would 
> necessarily drive us into a nightmare. The necessary information is 
> available in the modules, just not in the NS string alone.
>
> Best Regards,
>
> /jan
>
>
>
> This convention was established prior to my becoming active in the 
> IETF, but my guess is that the reason is because the YANG-module 
> update rules in RFC 7950 Section 11 ensure backwards compatibility, 
> and hence the versioning the namespace would have no value. That said, 
> the YANG Versioning effort introduces the possibility of NBC changes, 
> which makes me wonder if this is something that should be discussed.
>
> Thoughts?
>
> Kent
>
>
>
> _______________________________________________
> netmod mailing list -- netmod@ietf.org
> To unsubscribe send an email to netmod-leave@ietf.org
>
>
> _______________________________________________
> netmod mailing list -- netmod@ietf.org
> To unsubscribe send an email to netmod-leave@ietf.org

-- 
Jürgen Schönwälder              Constructor University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany