[replying to Reshad as well]

Hi Rob,

> My impression is that Semver 2.0.0 works fine if you can always force clients 
> to move to the latest version of the API whenever any bugfixes are made to 
> the API (whether they are BC or NBC).  This is a natural fit for open source 
> projects, but not so great for long life paid support contracts.

Agreed.


> The goal of YANG semver is not to facilitate release branching.  It is to 
> allow vendors to fix YANG modules without forcing clients to update to the 
> latest version of that YANG module (which may contain other unrelated NBC 
> changes and have lots of dependencies on other modules).

This is what Reshad was pointing to as well.  I’m very familiar with the issue, 
from my Juniper days, where there were all sorts of patch and (gasp) customer 
special releases, either of which could introduce any number of NBCs.  

The background, of course, is that [very important] customers have 
working/validated infrastructure running a specific release and simply cannot 
tolerate any change beyond the very specific one they need *NOW*

I get it, truly,  but I feel that the ‘m’ / ‘M’ suffixes are both inconsistent 
with general understanding and insufficiently to express what is needed.  

A possible fix might be to allow for <major>.<minor>.<patch>[-<anystring>], 
thereby enabling vendors to encode any format off a base release…and rely on 
inspection of the “revision” history indicate if/when NBC changes occurred.  

But then I question (again) the need for the simplified format at all, as 
opposed to just using revision dates.  For instance, if <anysting> represents a 
long history of NBCs, that they were based on some source M.m.p starts to lose 
relevance.

Is the expectation that the vendor's module versions will use 
<major>.<minor>.<patch> values mimicking their release numbers?  For instance, 
would FooBar OS version 20.1.2 implement YANG module "foobar@20.1.2”?    I can 
see product mangers pushing for this, but then are companies (like Juniper) 
that use alternate release name-formatting strategies disadvantaged?  How is 
that fair?   To thwart this, would the WG be willing to assert that the history 
MUST start at 0.0.0 and MUST only monotonically increment values?


> Note that OpenConfig also hit this problem, but they proposed a different 
> solution.  I.e. ship the base module with another module that contains 
> deviations to fix any bugs in the base module.  Alas this completely 
> decouples the real module history from any revision-date/version number 
> contained in the module, since to really understand the version of the module 
> you also need to know the set of associated patch modules containing any 
> deviations to the base module.

I’d need to see an illustration of this to be sure I understand, but my first 
impression is that it is yet another attempt to fit a square into a circle.  

In the end, I see no substitute to relying on “revision” history which 1) 
perfectly tracks branching history and can flag if/when NBC changes occurred.  


Kent // contributor



_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to