v0.29.0
Backwards-incompatible Changes
- Ygot now supports
ordered-by userlists via generating a custom Go struct satisfying theygot.GoOrderedMapinterface.- Migration notes:
- Any existing
GetOrCreatemethods are removed and must be replaced byAppendNewmethods, which now returns an error when there is an existing element. For a full set of methods see here, or here for an example generated code with ordered maps. - Associated gNMI scalar-based marshal helpers now assume that ygot.OrderedMap types are telemetry-atomic and generate a single atomic Notification for the entire ordered map in order to preserve list element ordering.
- This struct contains unexported fields, and so you may experience a panic when comparing these types using
cmp. You may consider changing these comparisons to useygot.Diff. - To avoid this generation, set
-generate_ordered_maps=falsewhen calling the ygot generator. However, this means ygot will marshal such configuration in a random order, since the built-in Go map type does not preserve element ordering. Notably, this applies to OpenConfig BGP policy statements (see this for discussion on addingtelemetry-atomic).
- Any existing
- Migration notes:
What's Changed
- perf(node): reduce reflect FieldByName and Field calls by @jayzhudev in #829
- Don't ignore error from writeGoCodeSingleFile by @greg-dennis in #839
- Bump github.com/openconfig/goyang from 1.3.0 to 1.4.0 by @dependabot in #838
- EmitJSON/ConstructJSON/Marshal7951 support for structs containing ordered maps. by @wenovus in #825
- Bump google.golang.org/grpc from 1.54.0 to 1.55.0 by @dependabot in #832
- Marshal ordered maps into
atomicgNMI notifications forTogNMINotificationsby @wenovus in #840 - Create base for using generated code in unit tests. by @wenovus in #841
- Just adding another test case for behaviour clarity by @wenovus in #842
- Support a couple util/unmarshalling functions for ordered maps by @wenovus in #843
- Support unmarshalling JSON ordered map by @wenovus in #845
- Support ytypes.GetNode for ordered maps. by @wenovus in #847
- Support GetOrCreateNode for ordered maps by @wenovus in #848
- Add test coverage for SetNode by @wenovus in #849
- Support
DeleteNodefor ordered maps by @wenovus in #850 - Support unmarshalling an atomic
Notificationfor ordered lists. by @wenovus in #851 - Deprecate
util.GetNodesin favour ofytypes.GetNodeby @wenovus in #852 - Support validating ordered maps by @wenovus in #853
interface{}->anyfor render{_test}.go by @wenovus in #855ForEachFieldand dependent helpers support ordered maps by @wenovus in #854- Normalize
Construct[IETF|Internal]JSONto return the default Go types. by @wenovus in #856 - Remove p_test variable dependencies on package p by @wenovus in #857
- Support
ForEachDataField,DeepCopy,Mergefor ordered maps. by @wenovus in #860 - Update CONTRIBUTING to remove section on internal syncs by @wenovus in #865
- Add support for ending iteration of subtrees by new
ForEachDataField2by @wenovus in #862 - Add tests for PopulateDefaults for ordered maps by @wenovus in #866
- Export ConstructJSON ordered map test by @wenovus in #868
- Export remaining ordered map tests by @wenovus in #869
- Initial tests for uncompressed structs with ordered maps. by @wenovus in #870
- Uncompressed ordered map test on PopulateDefaults by @wenovus in #871
- Uncompressed ordered map tests in mostly
ygotpackage. by @wenovus in #872 - Uncompressed ordered map tests for ytypes by @wenovus in #873
- Make variable a function by @wenovus in #878
- Add
OrderedListtype to IR by @wenovus in #879 - Add TelemetryAtomic-related fields to IR. by @wenovus in #881
- Export function for determining name of a keyed, unordered map. by @wenovus in #882
- Added UnmarshalOpt to allow a best effort unmarshal by @lgomez9 in #863
- Add generation flag for ordered maps by @wenovus in #884
New Contributors
Full Changelog: v0.28.3...v0.29.0