[GODRIVER-2680] Prepare the Go Driver 1.x API for a smooth transition to the 2.0 API Created: 10/Dec/22  Updated: 13/Dec/23  Resolved: 22/Jun/23

Status: Closed
Project: Go Driver
Component/s: None
Affects Version/s: None
Fix Version/s: 1.12.0

Type: Epic Priority: Unknown
Reporter: Matt Dale Assignee: Matt Dale
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by GODRIVER-1787 Implement Go Driver 2.0: MongoDB Driver Implementing
Related
related to GODRIVER-2765 Add an "omitnil" BSON struct tag Backlog
Quarter: FY24Q1, FY24Q2
Documentation Changes Summary: 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?
Start date:
End date:
Calendar Time: 17 weeks, 3 days
Scope Cost Estimate: 6
Cost to Date: 9
Final Cost Estimate: 10
Cost Threshold %: 100
Detailed Project Statuses:

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


 Description   

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]


Generated at Thu Feb 08 08:39:08 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.