That’s it Éric.  No IPv6 for you in Vienna! 😃

Thanks for the follow-up.  I tend to agree with one of your points, but I want 
to explain some other things.  See below.

### Section 4.5

In rule #1, the first "SHOULD" has a "unless", but why is the 2nd one not a
"MUST" in `in which case the artifact version "X.Y.Z+1_non_compatible" SHOULD
be used instead` ?

I am unable to fully understand the rule #2.i `unless that version has already
been used for this artifact but with different content, when the artifact
version SHOULD be updated ` (which also has a SHOULD without the required IESG
guidance per
https://datatracker.ietf.org/doc/statement-iesg-statement-on-clarifying-the-use-of-bcp-14-key-words/
) The part that I do not understand is the use of "when" in the sentence.

EV> 2.i text is easier to understand, so, this part is addressed.

There are also too many "SHOULD" without any guidance, i.e., why not using
"MUST" then ?

[JMC] We made a clarification to one of the SHOULDs with a change to MUST in 
another place.  We also added a normative sentence on when to use MAJOR or the 
_COMPAT modifier.  Does this help?

EV> the I-D is improved with the changes but not completely though
EV> the added sentence `An artifact author MAY choose a more significant 
MAJOR...` would work *IF* it started with "Otherwise, an artefact... MUST 
choose .... described in section XYZ`
EV> (it is unclear where the description is).

[JMC2] Good catch, and I agree the current wording leaves that sentence a bit 
squishy. We will tie it to the OPTIONAL rules that already appear later in the 
same section, and promote the collision-case fallback to a MUST so it matches 
rule 2.  What about:

OLD:

1.  If an artifact is being updated in a non-backwards-compatible
    way, then the artifact version
    "X.Y.Z[_compatible|_non_compatible]" SHOULD be updated to
    "X+1.0.0".  If "X+1.0.0" has already been used for this artifact
    but with different content, the artifact version
    "X.Y.Z+1_non_compatible" SHOULD be used instead.  An artifact
    author MAY choose a more significant MAJOR component update, as
    described later in this section.

NEW:

1.  If an artifact is being updated in a non-backwards-compatible
    way, then the artifact version
    "X.Y.Z[_compatible|_non_compatible]" SHOULD be updated to
    "X+1.0.0".  If "X+1.0.0" has already been used for this artifact
    but with different content, then the artifact version
    "X.Y.Z+1_non_compatible" MUST be used instead.  An artifact
    author MAY instead choose a more significant update than the
    minimum described here, following the OPTIONAL rules later in
    this section.

[JMC2] The "OPTIONAL rules later in this section" is the existing block that 
begins "Although artifacts SHOULD be updated according to the rules above ... 
the following rules MAY be applied when choosing a new version identifier". 
That is where the more-significant-update options are described, so this makes 
the pointer concrete. That clear the DISCUSS?

### Section 6

Why not a "MUST" in `SHOULD begin with a 0` ?

[JMC] Mainly because we didn’t want to be overly aggressive to YANG-producing 
organizations outside of the IETF.  We offer the alternate form of pre-release 
versioning as a MAY to be generally compatible with vendor or other SDOs 
proclivities.

EV> While I now better understand the concept, I must say that the text is 
overly complex.
EV> Also, should there be a "MUST NOT start with a value > 1” ?


[JMC2] We would prefer not to add that constraint, and I don't think it is 
needed. For new IETF modules, Section 6.1.1 already mandates starting with a 0 
MAJOR component, so the IETF case is fully constrained. For modules developed 
outside the IETF (think OpenConfig and our own as examples), the choice of 
initial MAJOR version carries no interoperability consequence. A vendor or 
another SDO that wants to start a brand new module at 1.0.0-PRE-RELEASE (or 
even 1+X.0.0-PRE-RELEASE) is free to do so, and nothing downstream breaks, 
because the import and comparison rules in Sections 4.5 and 5.2 operate on the 
relative ordering of versions and not on any assumption about a starting value. 
Prohibiting this here with a normative MUST NOT would restrict authors we 
intentionally chose to leave flexible, without buying any technical value in 
return.


[JMC2] As for the “overly complex” text, yeah.  Maybe.  This section has to 
cover both the 0 MAJOR scheme and the pre-release alternative, which is 
inherently a bit involved, and the WG has iterated on this wording over a long 
period. If you have a specific sentence or paragraph that you think can 
untangle this some, I am happy to take a targeted pass at that one spot. I 
would prefer not to restructure the whole section this late, since the 
substance has WG consensus, but I don't want to leave it harder to read than it 
needs to be.


Joe



_______________________________________________
netmod mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to