Uploaded image for project: 'Go Driver'
  1. Go Driver
  2. GODRIVER-2680

Prepare the Go Driver 1.x API for a smooth transition to the 2.0 API

    • Type: Icon: Epic Epic
    • Resolution: Done
    • Priority: Icon: Unknown Unknown
    • 1.12.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • Done
    • Go Driver 2.0 Prep
    • 6
    • 9
    • 10
    • 100
    • Hide

      Engineer(s): Matt

      Summary: Prepare the Go Driver for a smooth transition to the 2.0 API

      2023-06-08: Updated end date to 2023-06-16

      Status Update: 

      • Simplify "writeconcern" API in review
      • Allow setting "bson.Encoder" and "bson.Decoder" configurations via "ClientOptions" in progress and should be ready for review by the end of the week

      2023-05-26: Updating end date to 2023-06-02

      • Simplify "writeconcern" API, Deprecate unnecessary error values and types in "bsoncodec" in review
      • Deprecate "bson.Raw" APIs to support merge with "bsoncore.Document" API, Allow setting "bson.Encoder" and "bson.Decoder" configurations via "ClientOptions", Deprecate "bsonrw.Copier" type and all associated functions is next up

      2023-05-12: Updating end date to 2023-05-26

      In review:

      • Simplify "writeconcern" API

      In progress:

      • Deprecate all "*Append", "*WithRegistry", and "*WithContext" functions in the "bson" package

      Done:

      • Deprecate all "bsoncodec.*Codec" types
      • Add bson.UnmarshalValue function
      • Deprecate the "mongo.NewClient" and "Client.Connect" APIs

      2023-04-27: Updating end date to 2023-05-12

      Status update:

      In review:

      • Simplify "writeconcern" API
      • Deprecate all "bsoncodec.*Codec" types
      • Add bson.UnmarshalValue function
      • Deprecate the "mongo.NewClient" and "Client.Connect" APIs

      In progress:

      • Deprecate "NewTagSetFromMap" and "NewTagSetsFromMaps" in tags package

      2023-04-13: Updating end date to 2023-04-28

      Status update:
      Continued progress on API deprecation and addition of suggested alternative APIs.

      Completed:

      • Deprecate "bson.New*WithContext" and "Encoder/Decoder.SetContext"
      • Deprecate "DefaultValueEncoders", "DefaultValueDecoders", and "PrimitiveCodecs"
      • Deprecate unused functionality in preparation to remove it in Go Driver 2.0
      • Deprecate "bson.D.Map"
      • Rename "bson.NewFromIOReader" to "bson.ReadDocument"
      • Deprecate frequently lossy "bson.RawValue" "AsInt32" and "AsInt32OK" functions
      • Replace "primitive.CompareTimestamp" with methods "Before", "After", and "Equal"

      In review:

      • Deprecate all "bsoncodec.*Codec" types

      2023-03-31: No change to target end date
      Status update:

      • Add bson.UnmarshalValue function in review

      2023-03-16: No change to target end date

      Status update:

      • No notable updates.

      2023-03-03: No change to target end date.

      Status update:

      • Use time.Duration instead of durationNanos for command monitoring events is complete.
      • Deprecate all "Merge*Options*" functions is complete.
      • Deprecate "bsoncodec.RegistryBuilder" is in review.

      2023-02-17: Setting initial target end date to 2023-04-14

      Status Updates:

      • Replacing "primitive.CompareTimestamp" with methods "Before", "After", and "Equal" complete
      • Use time.Duration instead of durationNanos for command monitoring events is in review

      Show
      Engineer(s): Matt Summary: Prepare the Go Driver for a smooth transition to the 2.0 API 2023-06-08: Updated end date to 2023-06-16 Status Update:  Simplify "writeconcern" API in review Allow setting "bson.Encoder" and "bson.Decoder" configurations via "ClientOptions" in progress and should be ready for review by the end of the week 2023-05-26: Updating end date to 2023-06-02 Simplify "writeconcern" API, Deprecate unnecessary error values and types in "bsoncodec" in review Deprecate "bson.Raw" APIs to support merge with "bsoncore.Document" API, Allow setting "bson.Encoder" and "bson.Decoder" configurations via "ClientOptions", Deprecate "bsonrw.Copier" type and all associated functions is next up 2023-05-12: Updating end date to 2023-05-26 In review: Simplify "writeconcern" API In progress: Deprecate all "*Append", "*WithRegistry", and "*WithContext" functions in the "bson" package Done: Deprecate all "bsoncodec.*Codec" types Add bson.UnmarshalValue function Deprecate the "mongo.NewClient" and "Client.Connect" APIs 2023-04-27: Updating end date to 2023-05-12 Status update: In review: Simplify "writeconcern" API Deprecate all "bsoncodec.*Codec" types Add bson.UnmarshalValue function Deprecate the "mongo.NewClient" and "Client.Connect" APIs In progress: Deprecate "NewTagSetFromMap" and "NewTagSetsFromMaps" in tags package — 2023-04-13: Updating end date to 2023-04-28 Status update: Continued progress on API deprecation and addition of suggested alternative APIs. Completed: Deprecate "bson.New*WithContext" and "Encoder/Decoder.SetContext" Deprecate "DefaultValueEncoders", "DefaultValueDecoders", and "PrimitiveCodecs" Deprecate unused functionality in preparation to remove it in Go Driver 2.0 Deprecate "bson.D.Map" Rename "bson.NewFromIOReader" to "bson.ReadDocument" Deprecate frequently lossy "bson.RawValue" "AsInt32" and "AsInt32OK" functions Replace "primitive.CompareTimestamp" with methods "Before", "After", and "Equal" In review: Deprecate all "bsoncodec.*Codec" types 2023-03-31: No change to target end date Status update: Add bson.UnmarshalValue function in review 2023-03-16: No change to target end date Status update: No notable updates. 2023-03-03: No change to target end date. Status update: Use time.Duration instead of durationNanos for command monitoring events is complete. Deprecate all "Merge*Options*" functions is complete. Deprecate "bsoncodec.RegistryBuilder" is in review. 2023-02-17: Setting initial target end date to 2023-04-14 Status Updates: Replacing "primitive.CompareTimestamp" with methods "Before", "After", and "Equal" complete Use time.Duration instead of durationNanos for command monitoring events is in review

      Summary

      What is the problem or use case, what are we trying to achieve?

      Motivation

      Who is the affected end user?

      Who are the stakeholders?

      How does this affect the end user?

      Are they blocked? Are they annoyed? Are they confused?

      How likely is it that this problem or use case will occur?

      Main path? Edge case?

      If the problem does occur, what are the consequences and how severe are they?

      Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can't complete?

      Is this issue urgent?

      Does this ticket have a required timeline? What is it?

      Is this ticket required by a downstream team?

      Needed by e.g. Atlas, Shell, Compass?

      Is this ticket only for tests?

      Is this ticket have any functional impact, or is it just test improvements?

      Cast of Characters

      Engineering Lead:
      Document Author:
      POCers:
      Product Owner:
      Program Manager:
      Stakeholders:

      Channels & Docs

      Slack Channel

      [Scope Document|some.url]

      [Technical Design Document|some.url]

            Assignee:
            matt.dale@mongodb.com Matt Dale
            Reporter:
            matt.dale@mongodb.com Matt Dale
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              17 weeks, 3 days