diff --git a/source/whats-new.txt b/source/whats-new.txt index c8729bbc..2e7df98f 100644 --- a/source/whats-new.txt +++ b/source/whats-new.txt @@ -13,12 +13,12 @@ What's New .. facet:: :name: genre :values: reference - + .. meta:: :keywords: update, backward compatibility .. tip:: Release Notes - + To learn more about changes and updates between versions, you can read the `release notes `__ published with the driver source code. @@ -50,9 +50,12 @@ What's New in 1.15 The 1.15 {+driver-short+} release includes the following improvements and fixes: -- The driver mitigates connection churn by attempting to reuse a connection - after an operation times out. The driver waits for up to one second to check - if the connection can be reused before closing it. +- Connection churn can be mitigated by setting a client-wide timeout by + specifying the ``timeoutMS`` connection option or by calling the + `SetTimeout() `__ + function. When the timeout is set, the driver attempts to reuse a connection + after an operation times out and waits for up to one second to check if + the connection can be reused before closing it. - Connection pool events include a ``Duration`` field to measure the checkout duration and total amount of time it took to establish a connection. @@ -65,7 +68,7 @@ What's New in 1.14 The 1.14 {+driver-short+} release includes the following improvements and fixes: - Go versions before 1.18 are no longer supported. - + - In case of a heartbeat timeout, in-progress operations are preemptively canceled. - Connection strings that include the ``"mongodb+srv://"`` prefix can contain capital @@ -89,7 +92,7 @@ The 1.13 {+driver-short+} release includes the following improvements and fixes: - In a sharded topology, when selecting a server to retry an unsuccessful query, the driver excludes the server used for the initial attempt. Instead, if there's more than one eligible ``mongos`` instance, the driver randomly selects one. Unhealthy instances - are automatically excluded from selection. + are automatically excluded from selection. - Streaming SDAM is disabled by default on AWS Lambda and similar function-as-a-service (FaaS) platforms. You can enable monitoring by using the @@ -121,7 +124,7 @@ What's New in 1.12 deprecated. You can create a client and connect in one call by using the ``mongo.Connect()`` method. -New features of the 1.12 Go driver release include: +New features of the 1.12 Go driver release include: Queryable Encryption ~~~~~~~~~~~~~~~~~~~~ @@ -130,7 +133,7 @@ This driver version adds support for :ref:`qe-manual-feature-qe` (QE). To learn more about the requirements for using the QE feature, see the :ref:`Queryable Encryption Driver Compatibility Table `. - + The ``ClientEncryption.CreateEncryptedCollection()`` method automatically creates data encryption keys when you create a new encrypted collection. To learn how to use the QE @@ -199,39 +202,39 @@ What's New in 1.11 on database error types, such as ``CommandError`` and ``WriteException``. - Version 1.11.8 of the driver has been retracted because + Version 1.11.8 of the driver has been retracted because it incorrectly contains changes intended for 1.12.1. - + Upgrade to version 1.11.9 or later if you are using a retracted version of the driver. -New features of the 1.11 Go driver release include: +New features of the 1.11 Go driver release include: - Removal of support for MongoDB versions 3.5 and older. - Removal of support for Go versions 1.12 and older. -- Improvements to ``Timeout`` API and behavior, including: - +- Improvements to ``Timeout`` API and behavior, including: + - Modified retry logic for greater application resiliency. - Extended ``mongo.IsTimeout`` error helper to catch more timeout errors. - - New GridFS methods that take contexts instead of using ``SetReadDeadline`` + - New GridFS methods that take contexts instead of using ``SetReadDeadline`` and ``SetWriteDeadline``. -- Reduced memory allocations during operation execution. - -- Fix for SRV polling bug that prevented changes in SRV records when the - associated MongoDB connection string included a username and password. +- Reduced memory allocations during operation execution. -- Support for :abbr:`GCP (Google Cloud Platform)` service accounts when using +- Fix for SRV polling bug that prevented changes in SRV records when the + associated MongoDB connection string included a username and password. + +- Support for :abbr:`GCP (Google Cloud Platform)` service accounts when using Google Cloud Key Management Services. -- Improvements to server-side resource cleanup when using the ``Cursor.All`` and +- Improvements to server-side resource cleanup when using the ``Cursor.All`` and ``Session.WithTransaction`` functions. -- ``SERVICE_HOST`` Kerberos authentication parameter specification enabled with +- ``SERVICE_HOST`` Kerberos authentication parameter specification enabled with the ``authMechanismProperties`` connection string option. - Corrected output from the ``bson.Raw.String()`` method to Extended JSON @@ -248,49 +251,49 @@ New features of the 1.11 Go driver release include: What's New in 1.10 ------------------ -.. important:: Upgrade to Version 1.10.1 or Higher +.. important:: Upgrade to Version 1.10.1 or Higher - The 1.10.1 Go driver patches a bug that can cause data corruption when - rotating :ref:`Data Encryption Keys ` encrypted - with a :ref:`Customer Master Key ` hosted on Google + The 1.10.1 Go driver patches a bug that can cause data corruption when + rotating :ref:`Data Encryption Keys ` encrypted + with a :ref:`Customer Master Key ` hosted on Google Cloud Key Management Service or Azure Key Vault. -New features of the 1.10 Go driver release include: +New features of the 1.10 Go driver release include: - Full compatibility with MongoDB 6.0. - + - Support for new features related to :ref:`qe-manual-feature-qe`, including new options for automatic and manual encryption. -- Support for the new Automatic Encryption Shared Library, which replaces the - ``mongocryptd`` process. The shared library requires MongoDB v6.0 Enterprise +- Support for the new Automatic Encryption Shared Library, which replaces the + ``mongocryptd`` process. The shared library requires MongoDB v6.0 Enterprise or later and ``libmongocrypt`` 1.5.0 or later. - :ref:`clustered index ` creation support. -- A new API and ``ClientEncryption`` entity operations for encryption key +- A new API and ``ClientEncryption`` entity operations for encryption key management. -- A ``Timeout`` client option to set default context timeouts for +- A ``Timeout`` client option to set default context timeouts for each operation sent through that client. -- A patch to default data to either ``primitive.M`` or ``primitive.D`` when +- A patch to default data to either ``primitive.M`` or ``primitive.D`` when decoding empty types. -- Support for encoding atypical map key types for data that can be unmarshalled - into a textual representation of itself. +- Support for encoding atypical map key types for data that can be unmarshalled + into a textual representation of itself. - Performance optimizations, including: - - - Improved full document requests for before and after updates in change + + - Improved full document requests for before and after updates in change stream events. - Improved :abbr:`PRN (pseudo-random number)` and :abbr:`UUID (universally - unique identifier)` generation. + unique identifier)` generation. - Reduced memory consumption when compressing wire messages. -- Troubleshooting support for `frequently encountered issues. +- Troubleshooting support for `frequently encountered issues. `__ @@ -299,18 +302,18 @@ New features of the 1.10 Go driver release include: What's New in 1.9 ----------------- -New features of the 1.9 Go driver release include: +New features of the 1.9 Go driver release include: - Improved connection storm mitigation. - ``Custom`` options to change-stream and aggregate operations. -- ``Let`` option on most CRUD commands that specifies parameters for use - in an aggregate expression. ``Let`` must be a document that maps - parameter names to values that are constant or closed expressions without +- ``Let`` option on most CRUD commands that specifies parameters for use + in an aggregate expression. ``Let`` must be a document that maps + parameter names to values that are constant or closed expressions without references to document fields. MongoDB v5.0 or later is required. -- New constructor functions that create ``Cursor`` and ``SingleResult`` +- New constructor functions that create ``Cursor`` and ``SingleResult`` instances from marshallable and non-nil BSON documents. @@ -319,22 +322,22 @@ New features of the 1.9 Go driver release include: What's New in 1.8 ----------------- -New features of the 1.8 Go driver release include: +New features of the 1.8 Go driver release include: - Full compatibility with MongoDB 5.1. -- Support for :abbr:`KMIP (Key Management Interoperability Protocol)` as a KMS - provider for :abbr:`{+csfle-short+} ({+csfle-long+})`. +- Support for :abbr:`KMIP (Key Management Interoperability Protocol)` as a KMS + provider for :abbr:`{+csfle-short+} ({+csfle-long+})`. -- Redesigned driver connection pool for low operation ``Context`` timeouts and - to reduce connection churn. Behavior changes include: +- Redesigned driver connection pool for low operation ``Context`` timeouts and + to reduce connection churn. Behavior changes include: - New connection creation times out at ``connectTimeoutMS``. - At most, two new connections can be established at the same time. -- Removal of oppressive and unnecessarily gendered language in the Go driver - documentation, code, tests, and spec tests. +- Removal of oppressive and unnecessarily gendered language in the Go driver + documentation, code, tests, and spec tests. .. _version-1.7: @@ -342,16 +345,16 @@ New features of the 1.8 Go driver release include: What's New in 1.7 ----------------- -.. important:: Upgrade to Version 1.7.2 or Higher +.. important:: Upgrade to Version 1.7.2 or Higher - The 1.7.2 Go driver contains a bug fix for a data race that can occur between - creating and checking out connections when ``minPoolSize > 0``. + The 1.7.2 Go driver contains a bug fix for a data race that can occur between + creating and checking out connections when ``minPoolSize > 0``. New features of the 1.7 Go driver release include: - Full compatibility with MongoDB 5.0. -- Support for the :readconcern:`"snapshot"` read concern outside of +- Support for the :readconcern:`"snapshot"` read concern outside of multi-document transactions for certain read operations. - Improved ``WriteException`` and ``BulkWriteException`` error messages for @@ -363,20 +366,20 @@ New features of the 1.7 Go driver release include: What's New in 1.6 ----------------- -.. important:: Upgrade to Version 1.6.2 or Higher +.. important:: Upgrade to Version 1.6.2 or Higher - The 1.6.2 Go driver contains a bug fix for a data race that can occur between - creating and checking out connections when ``minPoolSize > 0``. + The 1.6.2 Go driver contains a bug fix for a data race that can occur between + creating and checking out connections when ``minPoolSize > 0``. New features of the 1.6 Go driver release include: -- Support for the MongoDB Stable API. For more information, see the +- Support for the MongoDB Stable API. For more information, see the :ref:`Stable API Guide `. -- Support for connections to any MongoDB service that runs behind a load - balancer. - -- Support for creating time series collections. For more information, see +- Support for connections to any MongoDB service that runs behind a load + balancer. + +- Support for creating time series collections. For more information, see the :ref:`Time Series Collections Guide `. - ``Let`` option for aggregate expressions. @@ -387,17 +390,17 @@ New features of the 1.6 Go driver release include: What's New in 1.5 ----------------- -New features of the 1.5 Go driver release include: +New features of the 1.5 Go driver release include: -- Support for Azure and :abbr:`GCP (Google Cloud Platform)` key-management +- Support for Azure and :abbr:`GCP (Google Cloud Platform)` key-management services with {+csfle-long+}. -- New errors API to detect duplicate-key errors, timeouts, and network +- New errors API to detect duplicate-key errors, timeouts, and network errors. -- Server monitoring to monitor changes on a MongoDB deployment. +- Server monitoring to monitor changes on a MongoDB deployment. -- Errors to prevent unexpected behavior on maps that contain multiple +- Errors to prevent unexpected behavior on maps that contain multiple keys being used as a hint option, as a sort option, or for index creation. @@ -406,19 +409,19 @@ New features of the 1.5 Go driver release include: What's New in 1.4 ----------------- -New features of the 1.4 Go driver release include: +New features of the 1.4 Go driver release include: - Full compatibility with MongoDB 4.4. - Support for stapled and non-stapled OCSP verification. -- New ``tlsDisableOCSPEndpointCheck=true`` URI option to disable sending HTTP - requests if the OCSP responder is not reachable from the driver and there is +- New ``tlsDisableOCSPEndpointCheck=true`` URI option to disable sending HTTP + requests if the OCSP responder is not reachable from the driver and there is no stapled response. - Additional context to errors encountered during BSON unmarshalling. -- Proper ``Unwrap`` functions for various driver error types. +- Proper ``Unwrap`` functions for various driver error types. .. _version-1.3: @@ -426,14 +429,14 @@ New features of the 1.4 Go driver release include: What's New in 1.3 ----------------- -New features of the 1.3 Go driver release include: +New features of the 1.3 Go driver release include: -- ``mgocompat`` package that exports a BSON registry compatible with - ``globalsign/mgo/bson``, which can be used via the +- ``mgocompat`` package that exports a BSON registry compatible with + ``globalsign/mgo/bson``, which can be used via the ``ClientOptions.SetRegistry`` method. -- ``RegisterTypeEncoder`` and ``RegisterHookEncoder`` methods, which - replace the deprecated ``RegisterEncoder`` method. A corresponding change has +- ``RegisterTypeEncoder`` and ``RegisterHookEncoder`` methods, which + replace the deprecated ``RegisterEncoder`` method. A corresponding change has been made to replace ``RegisterDecoder``. @@ -448,26 +451,26 @@ New features of the 1.2 Go driver release include: - ``bson.MarshalValue`` function, which marshals Go types to BSON. -- ``StringCodec``, which allows non-string fields to be decoded into a +- ``StringCodec``, which allows non-string fields to be decoded into a String field in a struct. - -- ``IntCodec``, ``UIntCodec``, ``BoolCodec``, and ``FloatCodec`` added to + +- ``IntCodec``, ``UIntCodec``, ``BoolCodec``, and ``FloatCodec`` added to ``mgocompat`` to allow codecs to convert between numbers and booleans. - + .. _version-1.1: What's New in 1.1 ----------------- -New features of the 1.1 Go driver release include: +New features of the 1.1 Go driver release include: - Full compatibility with MongoDB 4.2. -- Redesigned lower-level driver implementation to improve maintainability and - performance. +- Redesigned lower-level driver implementation to improve maintainability and + performance. -- Connection Monitoring and Pooling specifications to monitor various connection +- Connection Monitoring and Pooling specifications to monitor various connection and connection pool events with improved utilization.