Re: [netmod] definition of "fully expanded YANG"

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Wed, 17 July 2019 13:54 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 AC711120407 for <netmod@ietfa.amsl.com>; Wed, 17 Jul 2019 06:54:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 3QNAtrWuUO7B for <netmod@ietfa.amsl.com>; Wed, 17 Jul 2019 06:54:18 -0700 (PDT)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A73141200CE for <netmod@ietf.org>; Wed, 17 Jul 2019 06:54:17 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 5683865C; Wed, 17 Jul 2019 15:54:16 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.198]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id uiX92rtJyuVX; Wed, 17 Jul 2019 15:54:16 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Wed, 17 Jul 2019 15:54:16 +0200 (CEST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3F7FB2012C; Wed, 17 Jul 2019 15:54:16 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10028) with ESMTP id 7SEggFDEgxRi; Wed, 17 Jul 2019 15:54:16 +0200 (CEST)
Received: from exchange.jacobs-university.de (sxchmb04.jacobs.jacobs-university.de [10.70.0.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id DB57620129; Wed, 17 Jul 2019 15:54:15 +0200 (CEST)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 17 Jul 2019 15:54:15 +0200
Received: by anna.localdomain (Postfix, from userid 501) id E4D16238C14; Wed, 17 Jul 2019 15:54:14 +0200 (CEST)
Date: Wed, 17 Jul 2019 15:54:14 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Michael Rehder <Michael.Rehder@Amdocs.com>
CC: "netmod@ietf.org" <netmod@ietf.org>
Message-ID: <20190717135414.qqvobxqcnta6lghy@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Michael Rehder <Michael.Rehder@Amdocs.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <AM0PR06MB40833B02760A889E273D8278E7C90@AM0PR06MB4083.eurprd06.prod.outlook.com> <20190717131035.5rseucu3foys6veb@anna.jacobs.jacobs-university.de> <AM0PR06MB408317206939E4BE8219C4A8E7C90@AM0PR06MB4083.eurprd06.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <AM0PR06MB408317206939E4BE8219C4A8E7C90@AM0PR06MB4083.eurprd06.prod.outlook.com>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB02.jacobs.jacobs-university.de (10.70.0.121) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/zylVfnuoe_8b3uaqwMVfiWuO8mA>
Subject: Re: [netmod] definition of "fully expanded YANG"
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, 17 Jul 2019 13:54:20 -0000

On Wed, Jul 17, 2019 at 01:18:57PM +0000, Michael Rehder wrote:
> Yes, inlining of everything, including augments. What you'd see in the tree representation.
> For example augments makes it particularly impossible for a consumer of the YANG schema to process the schema since the final result.
> 
> Some use cases:
> - translating to another schema language
> - translating to a UI dialog for data entry
> - an accurate diff on versions
> 
> Model-driven-design means using the "computable specification" for all sorts of things, increasing the ROI of the schema definition.

It sounds to me like you are interested in what compiler people call
the abstract syntax tree, which is quite a different thing than the
YANG module you start with. The easiest and most robust way to do
translations is likely to simply expand pyang (or any other compiler
of choice).

> The diff is a significant issue. As a schema author, I must reliably document all changes.
> Without a full expansion, it's easy to not notice that a particular module has changes in its final form.
> I don't see how you could verify a semantic version number in a package without this.

Well, this sounds a bit like a tooling issue. You are likely better
off with a tool that can do a semantic comparison for you instead of
working with "fully expanded YANG" modules and generic diff tools.

/js

-- 
Juergen Schoenwaelder           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/>