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.
In plain terms
- 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.
Must act 4 items need code or config changes
What you must change
Breaking3
Where* methods now return the items the decider selects instead of the items it rejects.
WhereIntWhereStrWhereMSIWhereObjxMapIndexed Set updates the element instead of replacing the slice, and indexing a non-slice returns a missing value.
SetGetNil slices and maps now encode as null in JSON instead of empty arrays or objects.
objx.MapPlatform1
Requires Go 1.25 or later, up from Go 1.20.
API changes
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