mongo-go-driver v1.4.0-rc0 Release Notes

Release Date: 2020-07-13 // 10 months ago
  • πŸš€ The MongoDB Go driver team is pleased to release 1.4.0-rc0 of the official Go driver.

    πŸ›  This release contains support for the upcoming MongoDB 4.4 server release as well as driver-specific improvements. This is a release candidate and there may be changes made for bugfixes before v1.4.0 is officially released.

    πŸ“š Documentation can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver Jira where a list of current issues can be found.

    πŸš€ Release Notes

    πŸ› Bug

    • πŸš€ [GODRIVER-1584] - Ensure deployment-wide fields are updated in handshakes/heartbeats

    Epic

    πŸ†• New Feature

    • [GODRIVER-952] - Lack of context in error description like "cannot decode 64-bit integer into a string type"
    • [GODRIVER-1104] - Provide imperative transaction API
    • [GODRIVER-1147] - Create collection
    • πŸ‘ [GODRIVER-1390] - Support shorter SCRAM conversation
    • [GODRIVER-1489] - Reduce Client Time To Recovery On Topology Changes
    • πŸ‘ [GODRIVER-1538] - Driver support for server Hedged Reads
    • [GODRIVER-1542] - Implement primitive.DateTime.UnmarshalJSON
    • [GODRIVER-1657] - Allow passing interface{} to Cursor.All

    Task

    • [GODRIVER-1259] - Provide transaction example using new withTransaction API
    • [GODRIVER-1303] - Bump wire protocol version for 4.4
    • ⚑️ [GODRIVER-1366] - support ability to pass hint to update
    • [GODRIVER-1391] - Collection and index creation in multi-doc txns
    • πŸ‘ [GODRIVER-1395] - MONGODB-AWS Support
    • πŸ‘ [GODRIVER-1396] - Support for allowDiskUse on find operations
    • ⚑️ [GODRIVER-1397] - Allow passing hint to findAndModify update and replace operations
    • πŸ—„ [GODRIVER-1462] - Deprecate oplogReplay find command option from CRUD spec
    • πŸ‘ [GODRIVER-1467] - OCSP Support
    • πŸ‘ [GODRIVER-1469] - GridFS index checking should support indexes created in the shell
    • [GODRIVER-1473] - Lift restriction on authSource without credentials
    • πŸ”’ [GODRIVER-1485] - Remove Gopkg.toml and Gopkg.lock
    • πŸ”§ [GODRIVER-1486] - Unify behavior around configuration for replica set discovery
    • πŸ“œ [GODRIVER-1490] - Separate Connection String Parsing and Validation
    • [GODRIVER-1491] - OCSP cache and URI option
    • ⚑️ [GODRIVER-1541] - Update comment in Transactions withTxn examples for the manual.
    • πŸ”€ [GODRIVER-1558] - Investigate $merge test failures
    • [GODRIVER-1590] - Change transformValue to use MarshalValue

    πŸ‘Œ Improvement

    • 🚚 [GODRIVER-672] - Remove bsonx dependency in driver/session
    • [GODRIVER-1020] - Primitive UnmarshalJSON method should return a zero'd objectId when the field is empty instead of a decode error
    • 🚚 [GODRIVER-1034] - Remove code duplication from description.NewServer and IsMaster.Result
    • [GODRIVER-1210] - Implement readpref.Mode.String() and readpref.ReadPref.String()
    • βœ… [GODRIVER-1398] - Improve testing around default writeConcern
    • [GODRIVER-1437] - Expand use of error labels for RetryableWrites
    • βœ… [GODRIVER-1444] - Change uri_options/auth-options spec test to enable conditional tests
    • βœ… [GODRIVER-1445] - Verify max set version and max election id on topologies in SDAM spec tests
    • [GODRIVER-1464] - Make ExceededTimeLimit retryable writes error
    • [GODRIVER-1470] - Raise error if hint specified for unacknowledged update using OP_MSG or OP_UPDATE
    • [GODRIVER-1483] - Add error labels to WriteExceptions
    • [GODRIVER-1494] - Map keys always use stringer function
    • 🚚 [GODRIVER-1499] - Remove timeout check from server selection fast path
    • [GODRIVER-1508] - Allow hinting the delete command
    • [GODRIVER-1509] - Use whitelist for change stream resumability
    • [GODRIVER-1524] - Unreachable code and confusing error message in loadCert
    • πŸ‘ [GODRIVER-1526] - Support speculative authentication attempts in isMaster
    • [GODRIVER-1528] - RetryableWrites specification improvements
    • [GODRIVER-1536] - Ensure that the WriteConcernError "errInfo" object is propagated
    • 🚚 [GODRIVER-1543] - Remove ElectionInProgress (216) from ResumableChangeStreamError
    • [GODRIVER-1546] - Expose gridfs files and chunks collections
    • πŸ“‡ [GODRIVER-1548] - Access filename and metadata in gridfs DownloadStream
    • [GODRIVER-1551] - Allow BSON undefined to decode to Go types
    • πŸ“š [GODRIVER-1557] - Improve SetCompressors documentation
    • πŸ“„ [GODRIVER-1565] - Consolidate IndexModel spec generation helpers and add docs to require order-preserving types
    • πŸ‘ [GODRIVER-1569] - Support for 'authorizedDatabases' option
    • [GODRIVER-1572] - Reduce race conditions in SDAM error handling
    • [GODRIVER-1578] - Clarify how a driver must handle wrong set name in single topology
    • πŸ‘ [GODRIVER-1580] - Support multiple CA certs in one file
    • [GODRIVER-1581] - Properly wrap and provide Unwrap implementations for error types
    • πŸ‘ [GODRIVER-1582] - 'CommitQuorum' option support for 'createIndexes’ command on MongoDB 4.4
    • βœ… [GODRIVER-1583] - Don't use admin database for FLE tests
    • 🚩 [GODRIVER-1585] - Raise error when hint option is provided on unacknowledged writes against any server version
    • βœ… [GODRIVER-1593] - Implement a custom dialer for tests
    • [GODRIVER-1599] - Add a way to determine if a call to Next or TryNext would block
    • [GODRIVER-1600] - Hidden Indexes
    • [GODRIVER-1603] - Do not add the RetryableWriteError label to errors that occur during a write within a transaction (excepting commitTransaction and abortTransaction)
    • πŸ‘ [GODRIVER-1622] - allowDiskUse option for find should be documented as only being supported in 4.4+
    • πŸ”§ [GODRIVER-1627] - Return structured or configurable error for bson.Unmarshal
    • 0️⃣ [GODRIVER-1628] - Reduce default keepalive time to align with Azure defaults
    • βœ… [GODRIVER-1635] - Ensure OCSP and AWS auth are tested on both 4.4 and latest
    • βœ… [GODRIVER-1650] - Ensure OCSP is fully tested
    • πŸ”’ [GODRIVER-1655] - Drivers should retry replSetStepDown after "Unable to acquire X lock" error
    • [GODRIVER-1656] - Define behavior of connectTimeoutMS=0 with streaming protocol
    • βœ… [GODRIVER-1671] - Test that ElectionInProgress is not resumed
    • [GODRIVER-1678] - Treat CursorNotFound as a resumable change stream error