openconfig / reference

This repository contains reference implementations, specifications and tooling related to OpenConfig-based network management.
Apache License 2.0
155 stars 88 forks source link

Consistent Specification Versioning in OpenConfig #177

Open wenovus opened 1 year ago

wenovus commented 1 year ago

Question: How should we version specifications and service definitions such that their relationship is clear? (i.e. we can find a one-to-one or one-to-most-recent mapping)

Background thread comment describing the issue and containing a proposal

It's good that this sparked off great conversation but we may want to move this thread (or at least back ref it) somewhere else otherwise we are going to have a very hard time finding this history at a later date.

+1 for @wenovus comment above as I think we just need to draw a relationship between the specification and IDL. The specification is filling in behavioral gaps over time that don't necessarily change message structs or service RPCs

But I'd also like to call this out for all projects that fall under the OpenConfig umbrella and we should drive this consistent approach across all. To date, this should apply to:

Across the various repos (gribi, gnoi, grpctunnel, public, gnmi, etc..) - we have various inconsistencies of above

I'm curious whether gnmi.proto should be at v1.0.0 since it looks like users are depending more and more on the API and we're starting to worry about backwards compatibility (e.g. the recent double change in gnmi.proto)?

The blunt reality is version scheme aside, dependencies have been created since ~0.4.0 of the IDL due to this shipping in mainline code in various implementations so the worry has always been there

As far as bumping to 1.0.0, I know at least there are a handful of considerations (and some deprecation of fields that were never implemented/used) that should probably get addressed before we bump to a major version that indicates greater stability. Some of these currently sit as idle or unaddressed PRs/issues in the gNMI repo.

Originally posted by @earies in https://github.com/openconfig/reference/issues/175#issuecomment-1320558923