[As a contributor]
Although, I can see how increasing the number from the starting version makes more logical sense, I think that it is better to conform to the semver rules. Hence, I would suggest that the process to update the version string could look something like this: Starting with RFC 6991 version 1.0.0. Bis version with backwards compatible change: “1.1.0-6991bis-01” If the next bis version has NBC changes, then it would be : “2.0.0-6991bis-02” Then the WG decide that an NBC change isn’t required, so the next draft version is: : “1.1.0-6991bis-03” Once it gets to new RFC, then the version becomes “1.1.0”. I think that this conforms to the Semver 2.0.0 rules, specifically paragraph 9 at https://semver.org/ Regards, Rob From: netmod <netmod-boun...@ietf.org> On Behalf Of Andy Bierman Sent: 02 April 2020 19:22 To: Martin Björklund <mbj+i...@4668.se> Cc: NetMod WG <netmod@ietf.org>; Italo Busi <italo.b...@huawei.com> Subject: Re: [netmod] versioning procedures (RFC vs. I-D) On Thu, Apr 2, 2020 at 9:51 AM Martin Björklund <mbj+i...@4668.se<mailto:mbj%2bi...@4668.se>> wrote: Andy Bierman <a...@yumaworks.com<mailto:a...@yumaworks.com>> wrote: > 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 If this was normal semver, it would be: bis-draft-00: 2.0.0-1 bis-draft-01: 2.0.0-2 etc. ("+" and "-" have special meaning in semver).. One problem though is that when the -bis work starts, it might not be clear if the end result (published RFC) will be NBC or BC. And this might change back and forth during development of the I-D. What happens if there are multiple release trains in progress? Seems more useful to base the label on the known starting point instead of the possible ending point. I think it quite clear that such a label should not be used in I-Ds. Agreed /martin Andy > > 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) > <rrah...@cisco.com<mailto:rrah...@cisco.com>> > wrote: > > > > > > > > > > > *From: *'Andy Bierman' <a...@yumaworks.com<mailto:a...@yumaworks.com>> > > *Date: *Thursday, April 2, 2020 at 10:26 AM > > *To: *"Reshad Rahman (rrahman)" > > <rrah...@cisco.com<mailto:rrah...@cisco.com>> > > *Cc: *Italo Busi <italo.b...@huawei.com<mailto:italo.b...@huawei.com>>, > > "Joe Clarke (jclarke)" < > > jcla...@cisco.com<mailto:jcla...@cisco.com>>, NetMod WG > > <netmod@ietf.org<mailto:netmod@ietf.org>> > > *Subject: *Re: [netmod] versioning procedures (RFC vs. I-D) > > > > > > > > > > > > > > > > On Thu, Apr 2, 2020 at 4:11 AM Reshad Rahman (rrahman) > > <rrah...@cisco.com<mailto:rrah...@cisco.com>> > > wrote: > > > > Hi, > > > > > > > > *From: *Italo Busi <italo.b...@huawei.com<mailto:italo.b...@huawei.com>> > > *Date: *Thursday, April 2, 2020 at 5:06 AM > > *To: *"Reshad Rahman (rrahman)" > > <rrah...@cisco.com<mailto:rrah...@cisco.com>>, 'Andy Bierman' < > > a...@yumaworks.com<mailto:a...@yumaworks.com>>, "Joe Clarke (jclarke)" > > <jcla...@cisco.com<mailto:jcla...@cisco.com>> > > *Cc: *NetMod WG <netmod@ietf.org<mailto: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.b...@huawei.com<mailto:italo.b...@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:rrah...@cisco.com<mailto:rrah...@cisco.com>] > > *Sent:* mercoledì 1 aprile 2020 20:13 > > *To:* Andy Bierman <a...@yumaworks.com<mailto:a...@yumaworks.com>>; Joe > > Clarke (jclarke) < > > jcla...@cisco.com<mailto:jcla...@cisco.com>> > > *Cc:* NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>> > > *Subject:* Re: [netmod] versioning procedures (RFC vs. I-D) > > > > > > > > > > > > *From: *netmod <netmod-boun...@ietf.org<mailto:netmod-boun...@ietf.org>> on > > behalf of 'Andy Bierman' < > > a...@yumaworks.com<mailto:a...@yumaworks.com>> > > *Date: *Wednesday, April 1, 2020 at 2:07 PM > > *To: *"Joe Clarke (jclarke)" <jcla...@cisco.com<mailto:jcla...@cisco.com>> > > *Cc: *NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>> > > *Subject: *Re: [netmod] versioning procedures (RFC vs. I-D) > > > > > > > > > > > > > > > > On Wed, Apr 1, 2020 at 10:39 AM Joe Clarke (jclarke) > > <jcla...@cisco.com<mailto:jcla...@cisco.com>> > > wrote: > > > > > > > > > On Apr 1, 2020, at 13:28, Andy Bierman > > > <a...@yumaworks.com<mailto:a...@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 > > > > > > > >
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod