On Mon, Nov 12, 2018 at 8:33 AM, Martin Bjorklund <m...@tail-f.com> wrote:
> Robert Wilton <rwil...@cisco.com> wrote: > > In the Thursday Netmod meeting, it was interesting to hear Rob Shakir > > describe how deviations and augmentations are used in OpenConfig to > > add functionality into an older YANG model where the semver rules > > prevent the version number from being incremented. > > > > Further, I think that someone (Martin?) stated on the audio bridge > > that this was an intended/allowed behavior for deviations. > > I said that using augmentations (not deviations) was one idea we > originally had for solving the "branching problem". > > I think that this works for OC b/c they don't branch their modules. > Hence I think it is important that we decide if branching is a > requirement or not. > > Branching is a solution, not a requirement. IMO deviate(not-supported) is intended to let the server describe what it supports without requiring branching. Clients already support deviations. > > /martin > Andy > > > > This surprised me, because I thought that RFC 7950 was quite explicit > > that this is not what deviations are intended for. My reading of RFC > > 7950 is that the deviation statement represents the case where the > > server *implementation* does not match the *specification*. However, > > the versioning issue that we are discussing are bug fixes/changes in > > the specification rather than the bug fixes in the implementation. > > > > Personally, I'm really not keen on using deviations to represent bug > > fixes to older YANG models for three reasons: > > > > (i) It is changing the meaning of deviation. It is much cleaner to > > keep the meaning of deviation statements as they are defined today, > > and not conflate their semantics. > > (ii) A different mechanism is used to put a bug fix into an older > > branch rather than in the head of the development. > > (iii) For clients to track the lifecycle of modules they would not > > only need to know the module version number but would also need to > > find and track all associated deviation modules. This seems > > significantly more complex for clients than the modified semver that > > was proposed. > > > > --- > > > > I think that has also been some suggestion that augmentations (or > > duplicate YANG modules with their major version number changed) can be > > used to make bug fixes in a completely backwards compatible way. > > However, I still don't understand a robust scheme of how this works. > > > > --- > > > > Finally, there were some comments about using augmentation modules for > > enhancements. This is fine, where appropriate (e.g. a non trivial > > number of data nodes are being added as an enhancement) then a > > separate module may be the right way to go. But here, I presume that > > the new functionality will always be tracked by that separate module. > > If that functionality folds back into the original module at some > > point in the future, then obviously a non backwards compatible version > > change is being forced on to the client, along with additional work on > > the server as well. > > > > I think that there are also many cases where the number of data nodes > > being added via an enhancement is small compared to the size of the > > module being updated. In this case I believe that it better to add > > these data nodes into the module itself, perhaps predicated under > > if-feature if appropriate. > > > > Thanks, > > Rob > > > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod >
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod