Skip to content

Upgrading github.com/stretchr/objx 0.5 to 0.6

Breakingv0.5.3 → v0.6.0Breaking3Platform1Changed2Fixed5Other10

BreakingUpgrade verdict

3 breaking changes and a platform requirement change.

  • Filtering helpers now return the matching items, as their documentation always said.
  • Setting names[0] now changes just the first item, and indexing into a plain string no longer returns the string itself.
  • A nil list or map in your data now shows up as null in JSON, while empty but non-nil ones still show as [] or {}.
  • You need a newer Go toolchain to build this package.
4 items need code or config changes
Breaking3
Where* methods now return the items the decider selects instead of the items it rejects.
WhereIntWhereStrWhereMSIWhereObjxMap
Indexed Set updates the element instead of replacing the slice, and indexing a non-slice returns a missing value.
SetGet
Nil slices and maps now encode as null in JSON instead of empty arrays or objects.
objx.Map
Platform1
Requires Go 1.25 or later, up from Go 1.20.

Generated by DepDelta from published Go source. Not mixed with prose notes.

  • changed: func MSI(...interface{}) Map → func MSI(...any) Map
  • changed: func New(interface{}) Map → func New(any) Map
  • changed: method MSIConvertable.MSI() map[string]interface{} → method MSIConvertable.MSI() map[string]any
  • changed: method Map.Set(string, interface{}) Map → method Map.Set(string, any) Map
  • changed: method Map.Transform(func(key string, value interface{}) (string, interface{})) Map → method Map.Transform(func(key string, value any) (string, any)) Map
  • changed: method Value.CollectBool(func(int, bool) interface{}) *Value → method Value.CollectBool(func(int, bool) any) *Value
  • changed: method Value.CollectComplex128(func(int, complex128) interface{}) *Value → method Value.CollectComplex128(func(int, complex128) any) *Value
  • changed: method Value.CollectComplex64(func(int, complex64) interface{}) *Value → method Value.CollectComplex64(func(int, complex64) any) *Value
  • changed: method Value.CollectFloat32(func(int, float32) interface{}) *Value → method Value.CollectFloat32(func(int, float32) any) *Value
  • changed: method Value.CollectFloat64(func(int, float64) interface{}) *Value → method Value.CollectFloat64(func(int, float64) any) *Value
  • changed: method Value.CollectInt(func(int, int) interface{}) *Value → method Value.CollectInt(func(int, int) any) *Value
  • changed: method Value.CollectInt16(func(int, int16) interface{}) *Value → method Value.CollectInt16(func(int, int16) any) *Value
  • changed: method Value.CollectInt32(func(int, int32) interface{}) *Value → method Value.CollectInt32(func(int, int32) any) *Value
  • changed: method Value.CollectInt64(func(int, int64) interface{}) *Value → method Value.CollectInt64(func(int, int64) any) *Value
  • changed: method Value.CollectInt8(func(int, int8) interface{}) *Value → method Value.CollectInt8(func(int, int8) any) *Value
  • changed: method Value.CollectInter(func(int, interface{}) interface{}) *Value → method Value.CollectInter(func(int, any) any) *Value
  • changed: method Value.CollectMSI(func(int, map[string]interface{}) interface{}) *Value → method Value.CollectMSI(func(int, map[string]any) any) *Value
  • changed: method Value.CollectObjxMap(func(int, Map) interface{}) *Value → method Value.CollectObjxMap(func(int, Map) any) *Value
  • changed: method Value.CollectStr(func(int, string) interface{}) *Value → method Value.CollectStr(func(int, string) any) *Value
  • changed: method Value.CollectUint(func(int, uint) interface{}) *Value → method Value.CollectUint(func(int, uint) any) *Value
  • changed: method Value.CollectUint16(func(int, uint16) interface{}) *Value → method Value.CollectUint16(func(int, uint16) any) *Value
  • changed: method Value.CollectUint32(func(int, uint32) interface{}) *Value → method Value.CollectUint32(func(int, uint32) any) *Value
  • changed: method Value.CollectUint64(func(int, uint64) interface{}) *Value → method Value.CollectUint64(func(int, uint64) any) *Value
  • changed: method Value.CollectUint8(func(int, uint8) interface{}) *Value → method Value.CollectUint8(func(int, uint8) any) *Value
  • changed: method Value.CollectUintptr(func(int, uintptr) interface{}) *Value → method Value.CollectUintptr(func(int, uintptr) any) *Value
  • changed: method Value.Data() interface → method Value.Data() any
  • changed: method Value.EachInter(func(int, interface{}) bool) *Value → method Value.EachInter(func(int, any) bool) *Value
  • changed: method Value.EachMSI(func(int, map[string]interface{}) bool) *Value → method Value.EachMSI(func(int, map[string]any) bool) *Value
  • changed: method Value.GroupInter(func(int, interface{}) string) *Value → method Value.GroupInter(func(int, any) string) *Value
  • changed: method Value.GroupMSI(func(int, map[string]interface{}) string) *Value → method Value.GroupMSI(func(int, map[string]any) string) *Value
  • changed: method Value.Inter(...interface{}) interface → method Value.Inter(...any) any
  • changed: method Value.InterSlice(...[]interface{}) []interface → method Value.InterSlice(...[]any) []any
  • changed: method Value.MSI(...map[string]interface{}) map[string]interface → method Value.MSI(...map[string]any) map[string]any
  • changed: method Value.MSISlice(...[]map[string]interface{}) []map[string]interface → method Value.MSISlice(...[]map[string]any) []map[string]any
  • changed: method Value.MustInter() interface → method Value.MustInter() any
  • changed: method Value.MustInterSlice() []interface → method Value.MustInterSlice() []any
  • changed: method Value.MustMSI() map[string]interface → method Value.MustMSI() map[string]any
  • changed: method Value.MustMSISlice() []map[string]interface → method Value.MustMSISlice() []map[string]any
  • changed: method Value.MustObjxMapSlice() [](Map) → method Value.MustObjxMapSlice() []Map
  • changed: method Value.ObjxMap(...(Map)) Map → method Value.ObjxMap(...Map) Map
  • changed: method Value.ObjxMapSlice(...[](Map)) [](Map) → method Value.ObjxMapSlice(...[]Map) []Map
  • changed: method Value.ReplaceInter(func(int, interface{}) interface{}) *Value → method Value.ReplaceInter(func(int, any) any) *Value
  • changed: method Value.ReplaceMSI(func(int, map[string]interface{}) map[string]interface{}) *Value → method Value.ReplaceMSI(func(int, map[string]any) map[string]any) *Value
  • changed: method Value.WhereInter(func(int, interface{}) bool) *Value → method Value.WhereInter(func(int, any) bool) *Value
  • changed: method Value.WhereMSI(func(int, map[string]interface{}) bool) *Value → method Value.WhereMSI(func(int, map[string]any) bool) *Value
  • changed: type Map: map[string]interface{} → type Map: map[string]any