Re: [netmod] versioning procedures (RFC vs. I-D)

Andy Bierman <andy@yumaworks.com> Thu, 02 April 2020 16:01 UTC

Return-Path: <andy@yumaworks.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 99C533A1722 for <netmod@ietfa.amsl.com>; Thu, 2 Apr 2020 09:01:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.887
X-Spam-Level:
X-Spam-Status: No, score=-1.887 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 WrWN3-1x-B8B for <netmod@ietfa.amsl.com>; Thu, 2 Apr 2020 09:01:47 -0700 (PDT)
Received: from mail-yb1-xb33.google.com (mail-yb1-xb33.google.com [IPv6:2607:f8b0:4864:20::b33]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3D32C3A171D for <netmod@ietf.org>; Thu, 2 Apr 2020 09:01:47 -0700 (PDT)
Received: by mail-yb1-xb33.google.com with SMTP id 204so2417777ybw.5 for <netmod@ietf.org>; Thu, 02 Apr 2020 09:01:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+Z9XomfRvohtobcsZYSucAqHRwMJT+pCs23cm9TclgY=; b=MQEMd6e05P7GhX6TAKD0TqwEOUby4IIQM8hJo2hQ4NdaY9h+6DRl+CCb8HlIS0S/vC vEOpuGHJ7HgQsiqMkpv3JFKwR3iNigpZC3RMfgKN1zptOOd9dU2XaFWxvg3HLePKdJE0 UsUBs0fPhhQNAiOAJjcH2AQGoz5emIlDRkZfih1JfLSRDj3WV8cLLg/qfKKBWHEoFysQ CiLaAUEdgOJIdtukhs+osOGpeYsJ26sRW1mmdYR55kXtrZdSayW3x+JkTXE5/kBwvTL1 jhpnXt5FMcn5KexmtT5vBcQtXopjvkHzAR2HUdwk1cQi5WW04dvjCYnUZkqJaJ2CJM6S Pa7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+Z9XomfRvohtobcsZYSucAqHRwMJT+pCs23cm9TclgY=; b=uU8IpoojkEtc5mpKG2esnJJ6YiznCbqyQXPl1izxl4Ex205sidj61khCjYpzw4eJDJ kBt6L3DrME71KdYHLDxZLLSwyNN8On+ro9lk/rNUn+amJ0Q7ZK0t69DDV3qmjQa4TCMN ijeABAkYvviXAIeu7j0a+a3HfBnq6rzdCao0um59w5gjCY2TL89N9ODBj1ACbnXFX+ix 8WNbWhwgcoqzppGL0jHIapMY5qALk6udIV2mad7VbG7EhrPwWD9UhERlTPD0J6l2Znf4 Nf19bQFctd545/bz5Lwvy1nF4TXVyOerpSjN/ewBjYwy9Wk8A6JHZdaqRxGXpmrN8Z1E lKfg==
X-Gm-Message-State: AGi0Pua5zK1AVKC4H3ZwyG2bbYR5KTurJectzckE2dA2LgjrbLPtPVy+ m1Ie7cpSzqZQboanFgRCcs1m+N0xEKPNW0k1vzHZcQ==
X-Google-Smtp-Source: APiQypJJcZkAk4MWl6FZTLDXh9LW7i4c3w2EXGOE8MmQ4DLBlZIX4OEMADmQi3nbx3t5wIuyBl9KIGKi52YcZf3ufhc=
X-Received: by 2002:a25:d495:: with SMTP id m143mr6880437ybf.274.1585843303088; Thu, 02 Apr 2020 09:01:43 -0700 (PDT)
MIME-Version: 1.0
References: <CABCOCHQWssUucRvnsi8O8+GhCHb0-xS--swf3R4q-6P3Qfq0TA@mail.gmail.com> <D63416FC-2C33-4015-BF23-51ABCD75A020@cisco.com> <CABCOCHSTnYJbB9ainkmCuBinjRZAi-wEWgQoFCrhs+m8NBAAYQ@mail.gmail.com> <50052092-0380-44C6-8AE0-1AB3C15C30B4@cisco.com> <b688d8372a1a49e8828c74b5366458c0@huawei.com> <1DE96CAC-43BC-4638-AE96-2E770CA7CE20@cisco.com> <CABCOCHRDKKmU1+BL_4RPkn4sMhjN8w20_5rHWOoBCm8PCTTi1Q@mail.gmail.com> <B9DDE091-36C7-4E83-B20C-352E3C111151@cisco.com>
In-Reply-To: <B9DDE091-36C7-4E83-B20C-352E3C111151@cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 02 Apr 2020 09:01:31 -0700
Message-ID: <CABCOCHQYhqt3Zt80-BOvMh2yTpStMxXKYKQbq+mmEJMmHoMcLg@mail.gmail.com>
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
Cc: Italo Busi <Italo.Busi@huawei.com>, "Joe Clarke (jclarke)" <jclarke@cisco.com>, NetMod WG <netmod@ietf.org>
Content-Type: multipart/related; boundary="000000000000ca3e5c05a250eae7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/rNutlxpHT9I9M3dceFIsBOPCxQ4>
Subject: Re: [netmod] versioning procedures (RFC vs. I-D)
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: Thu, 02 Apr 2020 16:01:57 -0000

Hi,

I agree that a revision-label could be useful in an I-D but not to indicate
NBC changes (because it doesn't).
The rules need to be clear and simple with no exceptions.

 1) Special version 0.x.y contains NO NBC information
     Major version = 0 means the module has no published version

 2) First published version is 1.0.0

 3) The revision-label in an unpublished module has a special form which
simply identifies
      the source of the development and the iteration of the
work-in-progress.
      You can't really pick the next published label until the module is
ready.

>From my example:

draft-00:   0.1.0

draft-01:   0.2.0

draft-02:   0.3.0

RFC-1:    1.0.0

bis-draft-00:   1.0.0+1

bis-draft-01:   1.0.0+2

bis-draft-02:   1.0.0+3

[repeat NBC step bis-draft-02 10 times]  1.0.0+4 .. 1.0.0+13

RFC-2:  2.0.0   (in general: 1.0.1 or 1.1.0 or 2.0.0)

The BC vs. NBC distinction is not relevant for a work-in-progress.
We have seen many times in this WG where a NBC change was made
and then later undone.  There is no value in tracking the module during
development.


Andy


On Thu, Apr 2, 2020 at 7:46 AM Reshad Rahman (rrahman) <rrahman@cisco.com>
wrote:

>
>
>
>
> *From: *'Andy Bierman' <andy@yumaworks.com>
> *Date: *Thursday, April 2, 2020 at 10:26 AM
> *To: *"Reshad Rahman (rrahman)" <rrahman@cisco.com>
> *Cc: *Italo Busi <Italo.Busi@huawei.com>, "Joe Clarke (jclarke)" <
> jclarke@cisco.com>, NetMod WG <netmod@ietf.org>
> *Subject: *Re: [netmod] versioning procedures (RFC vs. I-D)
>
>
>
>
>
>
>
> On Thu, Apr 2, 2020 at 4:11 AM Reshad Rahman (rrahman) <rrahman@cisco.com>
> wrote:
>
> Hi,
>
>
>
> *From: *Italo Busi <Italo.Busi@huawei.com>
> *Date: *Thursday, April 2, 2020 at 5:06 AM
> *To: *"Reshad Rahman (rrahman)" <rrahman@cisco.com>, 'Andy Bierman' <
> andy@yumaworks.com>, "Joe Clarke (jclarke)" <jclarke@cisco.com>
> *Cc: *NetMod WG <netmod@ietf.org>
> *Subject: *RE: [netmod] versioning procedures (RFC vs. I-D)
>
>
>
> Reshad,
>
>
>
> My doubt and, if I understand well also Andy’s question, is about the fact
> that before publishing an RFC-bis with e.g., 1.1.0, we will have a set of
> Internet-Drafts updating the RFC with 1.0.0
>
>
>
> What versions should be used in the YANG modules published in these
> Internet-Drafts?
>
>
>
> Think about the following scenario: -00 version provide BC changes to the
> RFC module but the -01 version provide NBC changes to what has been added
> in the -00 module (thus the -01 version is BC with the RFC 1.0.0 module but
> NBC with the -00 version module)
>
> <RR> So bis 00 would be 1.1.0 (BC with RFC module).
>
> Bis 01 should be updated according to its relationship to the RFC module
> (bis 00 doesn’t matter anymore), when RFC bis is published it won’t have
> the full history.
>
>
>
> Hope I correctly understood your question.
>
>
>
>
>
> This semver plan is not very intuitive and not sure it works.
>
>
>
> draft-00
>
>
>
>    container the-container;             version 0.1.0      OK
>
>
>
> draft-01:
>
>    container my-container;             version 0.2.0;   rules violated;
> NBC should force 1.0.0
>
>
>
> draft-02:
>
>
>
>     container my-container {           version 0.3.0; should be 1.1.0
>
>         leaf my-leaf { type int32; }
>
>     }
>
>
>
> RFC-1:
>
>
>
>     container my-container {           version 1.0.0;  should be 2.0.0
> according to NBC rules
>
>         leaf my-leaf { type uint32; }
>
>     }
>
>
>
> bis-draft-00:
>
>
>
>    container my-container {           version 1.1.0; OK
>
>         leaf my-leaf { type uint32; }
>
>         leaf another-leaf { type int32; }
>
>     }
>
>
>
> bis-draft-01:
>
>
>
>   container my-container {                  diff against RFC-1:  version
> 1.1.0 but already used; use 1.2.0?
>
>         leaf my-leaf { type uint32; }
>
>         leaf another-leaf { type uint32; }
>
>     }
>
>
>
> bis-draft-02:
>
>
>
>   container example-my-container {                  diff against RFC-1:
> version 2.0.0 but use 1.3.0 instead?
>
>         leaf my-leaf { type uint32; }
>
>         leaf another-leaf { type uint32; }
>
>     }
>
>
>
> [repeat NBC step bis-draft-02 10 times.... now up to version 12.0.0 or is
> it 1.13.0? something else?
>
>
>
> RFC-2:   publish draft-12 as RFC-2: now change the label from 1.13.0 to
> 2.0.0? or leave it 12.0.0?
>
>
>
> IMO it is very confusing that the stated rules are so inconsistent and
> are violated so many ways.
>
> There should be no revision-label at all in Internet Drafts because these
> documents are unpublished.
>
> They should only be added to the RFC version.
>
>
>
> The semver procedures are not intended to work for unpublished modules
> that are only
>
> meant for review, not for implementation. The revision-label provides only
> noise in Internet Drafts.
>
> <RR2> I think it’s useful to have a revision label in a draft because it
> indicates nature of changes (BC v/s NBC) compared to the previous published
> revision (RFC).
>
> But you are absolutely right that setting the version based on changes
> with the previous draft revision is useless and confusing.
>
>
>
> Regards,
>
> Reshad.
>
>
>
>
>
> Regards,
>
> Reshad.
>
>
>
> Thanks, Italo
>
>
>
>
>
> Andy
>
>
>
>
>
> *Italo Busi*
>
> Principal Optical Transport Network Research Engineer
>
> Huawei Technologies Co., Ltd.
>
> Tel : +39 345 4721946
>
> Email : italo.busi@huawei.com
>
>
>
> This e-mail and its attachments contain confidential information from
> HUAWEI, which is intended only for the person or entity whose address is
> listed above. Any use of the information contained herein in any way
> (including, but not limited to, total or partial disclosure, reproduction,
> or dissemination) by persons other than the intended recipient(s) is
> prohibited. If you receive this e-mail in error, please notify the sender
> by phone or email immediately and delete it!
>
>
>
> *From:* Reshad Rahman (rrahman) [mailto:rrahman@cisco.com]
> *Sent:* mercoledì 1 aprile 2020 20:13
> *To:* Andy Bierman <andy@yumaworks.com>; Joe Clarke (jclarke) <
> jclarke@cisco.com>
> *Cc:* NetMod WG <netmod@ietf.org>
> *Subject:* Re: [netmod] versioning procedures (RFC vs. I-D)
>
>
>
>
>
> *From: *netmod <netmod-bounces@ietf.org> on behalf of 'Andy Bierman' <
> andy@yumaworks.com>
> *Date: *Wednesday, April 1, 2020 at 2:07 PM
> *To: *"Joe Clarke (jclarke)" <jclarke@cisco.com>
> *Cc: *NetMod WG <netmod@ietf.org>
> *Subject: *Re: [netmod] versioning procedures (RFC vs. I-D)
>
>
>
>
>
>
>
> On Wed, Apr 1, 2020 at 10:39 AM Joe Clarke (jclarke) <jclarke@cisco.com>
> wrote:
>
>
>
> > On Apr 1, 2020, at 13:28, Andy Bierman <andy@yumaworks.com> wrote:
> >
> > Hi,
> >
> > I just want to confirm that all the proposed documentation procedures
> > using new extensions are limited in scope to published modules only,
> > and not applied to unpublished modules (terms defined in RFC 8407).
> >
> > IMO it would be harmful to module usability to assign revision-labels or
> > include revision-related extensions in unpublished modules (e.g.,
> Internet Drafts).
> > Consider how cluttered and confusing the client-server modules would be
> > if the 50+ NBC changes and versions were tracked through all the I-Ds.
> >
> > For IETF modules, the first usage of the revision-label
> > should be in the initial RFC, and be set to 1.0.0.
> >
> > If the RFC is ever republished then one can expect to find an updated
> > revision-label and possibly extensions tracking NBC changes.
>
> The semver scheme allocates a major version of 0 for pre-releases where
> the BC/NBC rules do not apply.  I agree that a first official RFC release
> should be 1.0.0 (from a semver revision-label standpoint).  From a design
> team standpoint, I know we mentioned the 0 versioning early on, but I don’t
> think we spent much time talking about modules under development overall.
>
>
>
>
>
> IMO it is confusing to ignore the semver rules for the special 0.x.y
> releases.
>
> There are many NBC changes made at this point which are treated as minor
> or patch changes.
>
> The procedure is really broken once you consider a WG developing any
> RFC-bis module.
>
> Now the major version is not 0 and all updates look like real releases.
>
> <RR> I don’t think that’s needed. Initial module in RFC has 1.0.0, module
> in (released) RFC-bis can go to 1.0.1, 1.1.0 or 2.0.0 depending on the
> change.
>
>
>
> Regards,
>
> Reshad.
>
>
>
> My take would align to yours that we wouldn’t clutter a module with
> development NBC tracking.
>
> Joe
>
>
>
> Andy
>
>
>
>