Skip to content

v0.29.0

Compare
Choose a tag to compare
@wenovus wenovus released this 28 Jun 18:25
· 47 commits to master since this release
ec273a7

Backwards-incompatible Changes

  • Ygot now supports ordered-by user lists via generating a custom Go struct satisfying the ygot.GoOrderedMap interface.
    • Migration notes:
      • Any existing GetOrCreate methods are removed and must be replaced by AppendNew methods, 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 use ygot.Diff.
      • To avoid this generation, set -generate_ordered_maps=false when 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 adding telemetry-atomic).

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 atomic gNMI notifications for TogNMINotifications by @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 DeleteNode for ordered maps by @wenovus in #850
  • Support unmarshalling an atomic Notification for ordered lists. by @wenovus in #851
  • Deprecate util.GetNodes in favour of ytypes.GetNode by @wenovus in #852
  • Support validating ordered maps by @wenovus in #853
  • interface{} -> any for render{_test}.go by @wenovus in #855
  • ForEachField and dependent helpers support ordered maps by @wenovus in #854
  • Normalize Construct[IETF|Internal]JSON to return the default Go types. by @wenovus in #856
  • Remove p_test variable dependencies on package p by @wenovus in #857
  • Support ForEachDataField, DeepCopy, Merge for 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 ForEachDataField2 by @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 ygot package. by @wenovus in #872
  • Uncompressed ordered map tests for ytypes by @wenovus in #873
  • Make variable a function by @wenovus in #878
  • Add OrderedList type 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