v0.29.0
Backwards-incompatible Changes
- Ygot now supports
ordered-by user
lists via generating a custom Go struct satisfying theygot.GoOrderedMap
interface.- Migration notes:
- Any existing
GetOrCreate
methods are removed and must be replaced byAppendNew
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 useygot.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 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
atomic
gNMI notifications forTogNMINotifications
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 ofytypes.GetNode
by @wenovus in #852 - Support validating ordered maps by @wenovus in #853
interface{}
->any
for render{_test}.go by @wenovus in #855ForEachField
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