Respectively submitted for your consideration,

Having listened to the pros/cons of this issue at IETF 117, the mailing list, 
and some of the calls...
IMHO... Option 1 is the option that best reflects current practice in several 
standards bodies and provides a way forward that is the least disruptive.  
Since there is a bis of 8407 being considered, extra warnings could be added 
there if the editor/community thought that helpful.  This is not to encourage 
NBC, but simply acknowledge that NBC is a fact in some cases.  Like has been 
pointed out in some threads, something can be allowed but not encouraged.

Regards,
-scott.



From: netmod <netmod-boun...@ietf.org> On Behalf Of Jason Sterne (Nokia)
Sent: Monday, July 17, 2023 1:52 PM
To: netmod@ietf.org
Subject: [netmod] YANG Versioning: Key Issue #1 - Allow NBC changes in YANG 1.0 
& YANG 1.1 or not?

Hi all,

At the request of the NETMOD chairs, and on behalf of the YANG Versioning 
weekly call group, here's a summary of Key Issue #1 for the versioning work 
(i.e. for the Module Versioning and YANG Semver WGLC).

We'd like to suggest that the WG has a strong focus on deciding on this 
specific issue first. Then we'll move on to tackle other key issues. The idea 
is to try and avoid getting tangled in a web of multiple intertwined issues.

Key Issue #1 is the following:  Allow NBC changes in YANG 1.0 & YANG 1.1 or not?

For now please avoid debating other issues in this thread (e.g. multiple vs 
single label schemes, whether YANG semver is a good scheme, etc). Let's focus 
on K1 and work towards a WG decision.

###################################
K1) Allow NBC changes in YANG 1.0 & YANG 1.1 or not?

Option 1 - Update RFC7950 to Allow NBC Changes
-----------------------------------------------------------------------
- Module Versioning modifies 7950 to allow NBC changes
- guidance that NBC changes SHOULD NOT be done (impact to user base)
- rev:non-backwards-compatible is a YANG extension
    - introduction in published YANG does not impact current tooling (ignored 
until recognized)
PROS:
- address fundamental requirement of this versioning work (requirements doc)
- allows gradual adoption in the industry. YANG authors can immeditately start 
publishing with the new extensions.
- move faster to produce modules in the IETF (accept some errors/iteration)
- address the liaison from external standards bodies in a reasonable timeframe
- authors believe work is ready
- broad vendor support
- rough alignment with OpenConfig (use YANG 1.0 + OC Semver)
CONS:
- perception that we're "cheating" by not bumping our own spec's version
- Not fundamentally mandatory for clients or servers using YANG (mandatory for 
YANG claiming conformance to Module Versioning).

Option 2 - RFC7950-bis: Publish a new version of the YANG language to allow NBC 
changes
-----------------------------------------------------------------------
- NBC changes only allowed in a new (future) version of YANG
- TBD: YANG 1.2 vs 2.0 (note YANG 1.1 isn't BC with YANG 1.0)
- Content = Module Versioning + YANG Semver + very limited YANG NEXT items
- rev:non-backwards-compatible tag is a language keyword
    - consequence: any use of it breaks all YANG 1.0/1.1 tooling that hasn't 
been updated
- TBD how to handle small NBC changes in IETF in the short term (i.e. non 
conformance to 7950)?
    - RFC6991 bis - change the use/meaning of ip-address (or change datetime)
              - YANG date-and-time (because of SEDATE date string changes)

PROS:
- address fundamental requirement of this versioning work (requirements doc)
- clear delineation of changes in the YANG language
- consistent with philosophy that version number changes for significant 
changes in a spec (avoids concern that YANG is changing without bumping the 
version of YANG)
- can do this with mandatory YANG keywords which helps increase conformance to 
the new rules
CONS:
- difficult to roll out in the industry. Tools need upgrading before they won't 
error on a YANG 1.2 module.
- Authors can't publish YANG 1.2 until their users have upgraded their tools. 
Everyone has to move at once.
- likely large delay in producing the work (unclear what would go into YANG 
1.2, may not reach concensus easily on N items)
- delay in follow up work (Packages, Schema Comparison, Version Selection)
- continue dominating WG effort for longer (opportunity cost)

Option 3 - Strict Adherence to Current RFC7950 Rules
-----------------------------------------------------------------------
- IESG will be unable to approve any RFCs that make any changes to IETF YANG 
modules that don't strictly conform to those rules
    - RFC6991 bis would not be allowed to change the use/meaning of ip-address 
(or change datetime)
              - YANG date-and-time couldn't change (related to SEDATE date 
string changes)
PROS:
- clear rules for entire industry including IETF
CONS:
- doesn't address agreed/adopted requirements of YANG versioning work
- incorrect assumption in tool chains, etc that NBC changes don't happen. 
Silent failures.

Jason (he/him)

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

Reply via email to