Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GODRIVER-2796 #1612

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft

GODRIVER-2796 #1612

wants to merge 5 commits into from

Conversation

qingyang-hu
Copy link
Collaborator

GODRIVER-2796

Summary

Background & Motivation

@mongodb-drivers-pr-bot mongodb-drivers-pr-bot bot added the priority-3-low Low Priority PR for Review label Apr 22, 2024
Copy link

mongodb-drivers-pr-bot bot commented Apr 22, 2024

API Change Report

##! second, different message for obj type ./bson.EncodeContext struct{*./bson.Registry; MinSize bool; errorOnInlineDuplicates bool; stringifyMapKeysWithFmt bool; nilMapAsEmpty bool; nilSliceAsEmpty bool; nilByteSliceAsEmpty bool; omitZeroStruct bool; useJSONStructTags bool}, isNew false, part ""
first: changed from struct{*Registry; MinSize bool; errorOnInlineDuplicates bool; stringifyMapKeysWithFmt bool; nilMapAsEmpty bool; nilSliceAsEmpty bool; nilByteSliceAsEmpty bool; omitZeroStruct bool; useJSONStructTags bool} to interface{LookupEncoder(reflect.Type) (ValueEncoder, error)}
second: removed

./bson

incompatible changes

(*DecodeContext).BinaryAsSlice: removed
(*DecodeContext).DefaultDocumentD: removed
(*DecodeContext).DefaultDocumentM: removed
(*DecodeContext).UseJSONStructTags: removed
(*DecodeContext).UseLocalTimeZone: removed
(*DecodeContext).ZeroMaps: removed
(*DecodeContext).ZeroStructs: removed
(*Registry).RegisterInterfaceDecoder, method set of *DecodeContext: removed
(*Registry).RegisterInterfaceDecoder, method set of DecodeContext: removed
(*Registry).RegisterInterfaceDecoder: removed
(*Registry).RegisterInterfaceEncoder, method set of *DecodeContext: removed
(*Registry).RegisterInterfaceEncoder, method set of DecodeContext: removed
(*Registry).RegisterInterfaceEncoder: removed
(*Registry).RegisterKindDecoder, method set of *DecodeContext: removed
(*Registry).RegisterKindDecoder, method set of DecodeContext: removed
(*Registry).RegisterKindDecoder: removed
(*Registry).RegisterKindEncoder, method set of *DecodeContext: removed
(*Registry).RegisterKindEncoder, method set of DecodeContext: removed
(*Registry).RegisterKindEncoder: removed
(*Registry).RegisterTypeDecoder, method set of *DecodeContext: removed
(*Registry).RegisterTypeDecoder, method set of DecodeContext: removed
(*Registry).RegisterTypeDecoder: removed
(*Registry).RegisterTypeEncoder, method set of *DecodeContext: removed
(*Registry).RegisterTypeEncoder, method set of DecodeContext: removed
(*Registry).RegisterTypeEncoder: removed
(*Registry).RegisterTypeMapEntry, method set of *DecodeContext: removed
(*Registry).RegisterTypeMapEntry, method set of DecodeContext: removed
(*Registry).RegisterTypeMapEntry: removed
(*RegistryBuilder).RegisterCodec: removed
(*RegistryBuilder).RegisterDecoder: removed
(*RegistryBuilder).RegisterDefaultDecoder: removed
(*RegistryBuilder).RegisterDefaultEncoder: removed
(*RegistryBuilder).RegisterEncoder: removed
(*RegistryBuilder).RegisterHookDecoder: removed
(*RegistryBuilder).RegisterHookEncoder: removed
(*RegistryBuilder).RegisterTypeEncoder: changed from func(reflect.Type, ValueEncoder) *RegistryBuilder to func(reflect.Type, EncoderFactory) *RegistryBuilder
ArrayCodec: removed
ByteSliceCodec: removed
DecodeContext.Ancestor: removed
DecodeContext.Truncate: removed
DefaultValueDecoders: removed
DefaultValueEncoders: removed
EmptyInterfaceCodec: removed
EncodeContext: removed
ErrNotInterface: removed
ErrNotPointer: removed
MapCodec: removed
NewArrayCodec: removed
NewByteSliceCodec: removed
NewEmptyInterfaceCodec: removed
NewMapCodec: removed
NewPointerCodec: removed
NewRegistry: removed
NewSliceCodec: removed
NewStringCodec: removed
NewStructCodec: removed
NewTimeCodec: removed
NewUIntCodec: removed
PointerCodec: removed
PrimitiveCodecs: removed
RegistryBuilder: old is comparable, new is not
SliceCodec: removed
StringCodec: removed
StructCodec: removed
TimeCodec: removed
UIntCodec: removed
ValueCodec: removed

compatible changes

(*Decoder).DecodeObjectIDAsHex: added
(*RegistryBuilder).RegisterInterfaceDecoder: added
(*RegistryBuilder).RegisterInterfaceEncoder: added
(*RegistryBuilder).RegisterKindDecoder: added
(*RegistryBuilder).RegisterKindEncoder: added
DecoderFactory: added
EncoderFactory: added
EncoderRegistry: added
ErrSetZero: added
Getter: added
GetterEncodeValue: added
NewMgoRegistry: added
NewRespectNilValuesMgoRegistry: added
Setter: added
SetterDecodeValue: added

./bson/bsonoptions

incompatible changes

package removed

./bson/mgocompat

incompatible changes

ErrSetZero: removed
Getter: removed
GetterEncodeValue: removed
NewRegistryBuilder: removed
NewRespectNilValuesRegistryBuilder: removed
Setter: removed
SetterDecodeValue: removed

./mongo

incompatible changes

(*ChangeStream).RemainingBatchLength: removed
##(Client).StartSession: changed from func(..../mongo/options.SessionOptions) (Session, error) to func(..../mongo/options.SessionOptions) (Session, error)
(*Client).UseSession: changed from func(context.Context, func(context.Context) error) error to func(context.Context, func(SessionContext) error) error
##(*Client).UseSessionWithOptions: changed from func(context.Context, *./mongo/options.SessionOptions, func(context.Context) error) error to func(context.Context, *./mongo/options.SessionOptions, func(SessionContext) error) error
##(Collection).Distinct: changed from func(context.Context, string, interface{}, ..../mongo/options.DistinctOptions) DistinctResult to func(context.Context, string, interface{}, ..../mongo/options.DistinctOptions) ([]interface{}, error)
DistinctResult: removed
NewSessionContext: changed from func(context.Context, *Session) context.Context to func(context.Context, Session) SessionContext
##Session: changed from struct{clientSession *./x/mongo/driver/session.Client; client Client; deployment ./x/mongo/driver.Deployment; didCommitAfterStart bool} to interface{AbortTransaction(context.Context) error; AdvanceClusterTime(./bson.Raw) error; AdvanceOperationTime(./bson.Timestamp) error; Client() Client; ClusterTime() ./bson.Raw; CommitTransaction(context.Context) error; EndSession(context.Context); ID() ./bson.Raw; OperationTime() ./bson.Timestamp; StartTransaction(..../mongo/options.TransactionOptions) error; WithTransaction(ctx context.Context, fn func(ctx SessionContext) (interface{}, error), opts ..../mongo/options.TransactionOptions) (interface{}, error); session()}
SessionFromContext: changed from func(context.Context) *Session to func(context.Context) Session
WithSession: changed from func(context.Context, *Session, func(context.Context) error) error to func(context.Context, Session, func(SessionContext) error) error

compatible changes

SessionContext: added
XSession: added

./x/mongo/driver/operation

compatible changes

(*CreateSearchIndexes).WriteConcern: added
(*DropSearchIndex).WriteConcern: added
(*UpdateSearchIndex).WriteConcern: added

@qingyang-hu qingyang-hu force-pushed the godriver2796 branch 2 times, most recently from 666fad1 to 591a57c Compare April 24, 2024 15:48
@qingyang-hu qingyang-hu force-pushed the godriver2796 branch 3 times, most recently from bbdc996 to fcdd960 Compare April 29, 2024 21:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority-3-low Low Priority PR for Review
Projects
None yet
1 participant