Releases: mongodb/mongo-cxx-driver
Releases · mongodb/mongo-cxx-driver
MongoDB C++11 Driver r3.8.0
Release Notes - C++ Driver - Version 3.8.0
What's New
- Support MongoDB server version 6.0 and 7.0
- Support C++20 language standard
- Support updated Queryable Encryption protocol
- Introduces backwards breaking changes to the Queryable Encryption protocol. Using Queryable Encryption now requires MongoDB server version 7.0+.
- Support new Queryable Encryption features
- Add client_encryption::create_encrypted_collection to automatically create data encryption keys when creating a new encrypted collection.
- Support new security features
- Add ability to fetch KMS credentials automatically from Azure, GCP, and AWS environments.
- Support authentication with KMS AWS temporary credentials.
- Cache fetched AWS credentials.
- Support AWS IAM Roles for service accounts, EKS in particular.
- Add srvMaxHosts option to limit the number of mongos servers used in connecting to sharded clusters.
- Retry operations if the connection handshake fails.
Dependency updates
- Minimum C Driver (libmongoc) version bumped to 1.24.0.
Deprecations and Removals
Support for below operating systems will be dropped in an upcoming release.
- macOS 10.14
- macOS 10.15
- Ubuntu 14.04
Bug
- [CXX-2451] - Kerberos on Windows should not pass username to SSPI when password is not set
- [CXX-2548] - Disable causal consistency in implicit sessions
- [CXX-2599] - Error if RewrapManyDataKey is called with masterKey and without provider
- [CXX-2670] - options::aggregate::append ignores readConcern
New Feature
- [CXX-2307] - Add native support for AWS IAM Roles for service accounts, EKS in particular
- [CXX-2318] - Provide options to limit number of mongos servers used in connecting to sharded clusters
- [CXX-2425] - Key Management API
- [CXX-2474] - Add ClientEncryption entity and Key Management API operations to Unified Test Format
- [CXX-2496] - Add Queryable Encryption behavior for CreateCollection() and Collection.Drop()
- [CXX-2500] - Add Queryable Encryption API to AutoEncryptionOpts
- [CXX-2502] - Add Queryable Encryption API to ClientEncryptionOpts
- [CXX-2508] - Obtain AWS credentials for CSFLE in the same way as for MONGODB-AWS
- [CXX-2546] - Automatically create Queryable Encryption keys
- [CXX-2554] - Cache AWS Credentials Where Possible
Improvement
- [CXX-1712] - Overload bsoncxx::to_json to accept a bsoncxx::array::view
- [CXX-2172] - Support AWS authentication with temporary credentials in CSFLE
- [CXX-2284] - Append platform data to handshake
- [CXX-2344] - Use OP_MSG to authenticate if server supports OP_MSG
- [CXX-2393] - Drivers should retry operations if connection handshake fails
- [CXX-2394] - Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY
- [CXX-2433] - Support In-Use Encryption Shared Library
- [CXX-2441] - Add example of iterating change stream indefinitely
- [CXX-2490] - Make allowDiskUse opt-out rather than opt-in in 6.0
- [CXX-2491] - Clustered Indexes for all Collections
- [CXX-2517] - Support for Range Indexes
- [CXX-2527] - Reduce expected removeKeyAltName operations to a single findOneAndUpdate
- [CXX-2528] - Ensure "does not fail" in CSE Prose Test 13 accounts for (no) matching documents
- [CXX-2534] - Allow RewrapManyDataKeyResult.bulkWriteResult to be optional
- [CXX-2551] - Add support for GCP attached service accounts when using GCP KMS
- [CXX-2562] - Error if RewrapManyDataKey is called with libmongocrypt < 1.5.2
- [CXX-2565] - Support the Azure VM-assigned Managed Identity for Automatic KMS Credentials
- [CXX-2610] - Improve test coverage for retryable handshake errors
- [CXX-2637] - Deprecate currentOp/collStats commands by 7.0
- [CXX-2642] - Drivers should not create the ECC collection in v2 of queryable encryption
- [CXX-2664] - Bump maxWireVersion for MongoDB 7.0
See full list of changes in JIRA.
Reporting Issues
Think you’ve found a bug? Want to see a new feature in the C++ Driver? Please open a case in our issue management tool, Jira:- Create an account and login.
- Navigate to the CXX project.
- Click Create Issue. Please provide as much information as possible about the issue type and how to reproduce it.
- Bug reports in Jira for all driver projects (i.e. CXX, CDRIVER etc) and the Core Server (i.e. SERVER) projects are public.
MongoDB C++11 Driver r3.7.2
MongoDB C++11 Driver r3.7.1
MongoDB C++11 Driver r3.7.0
Release Notes - C++ Driver - Version 3.7.0
Bug
- [CXX-1891] - Coverity analysis defect 105008: Uninitialized scalar field
- [CXX-2093] - rpm-package-build on Linux Distro Packaging failing
- [CXX-2117] - Oid prose tests fail on s390x Ubuntu 18.04 (MongoDB 4.4)
- [CXX-2237] - listLocalSessions test occasionally fails
- [CXX-2258] - Prelude headers applied incorrectly
- [CXX-2276] - Install tries to remove empty directories
- [CXX-2327] - hard-coded libdir in pkg-config scripts breaks with lib64
- [CXX-2329] - options::server_api::version_from_string() throws the wrong type
- [CXX-2330] - calc_release_version.py produces different output for Python2 vs Python3
- [CXX-2358] - Compilation failure (tests) with glibc 2.34
- [CXX-2364] - Remove git merge markers from docs/content/mongocxx-v3/client-side-encryption.md
- [CXX-2447] - Fix comment helper specification tests
- [CXX-2455] - Fix server version incompatibility for updateOne-let and updateMany-let server-side error tests
- [CXX-2457] - Fix getMore with comment specs
- [CXX-2461] - Fix server version incompatibility for bulkWrite updateOne and updateMany server-side error tests of let support
- [CXX-2475] - Inherited comment causes OperationFailure on MongoDB <4.4.0
- [CXX-2539] - collection::find_one_and_* may raise exception with unacknowledged write concern
New Feature
- [CXX-1173] - Support users adding mongocxx as a CMake subdirectory
- [CXX-1619] - Implement ObjectID spec
- [CXX-1628] - Code coverage in Evergreen
- [CXX-1714] - Resync CRUD spec tests to use transaction spec test format
- [CXX-2254] - Implement Evergreen testing for versioned API
- [CXX-2478] - Change Stream event document missing "to" field for rename events
Improvement
- [CXX-1455] - Add JSON-like syntax to construct BSON object
- [CXX-1530] - Ensure example code is consistent with docs processes
- [CXX-1643] - Use mongoc_uri_new_with_error for better exception messages
- [CXX-1660] - Fix doxygen warnings
- [CXX-1697] - Test with C driver extra alignment on
- [CXX-1739] - Create rpm-package-build Evergreen task
- [CXX-1817] - Rename get_utf8() to get_string()
- [CXX-1824] - Add missing tests for aggregation pipeline in bulk write updates
- [CXX-1898] - Separate installation instructions into more discrete guides
- [CXX-1945] - separate BulkWrite tests by operation
- [CXX-1975] - Tests drivers raise error if hint specified for unacknowledged delete using OP_MSG or OP_DELETE
- [CXX-1985] - Support for 'authorizedDatabases' option
- [CXX-2002] - Raise error when hint option is provided on unacknowledged writes against any server version
- [CXX-2019] - Test arrayFilters on non-supporting server for subsequent ops in bulkWrite
- [CXX-2049] - Add a way to run specific test suites or tests in test_driver
- [CXX-2057] - Add tests for update/replacement validation in single and bulk write operations
- [CXX-2064] - Test that ElectionInProgress is not resumed
- [CXX-2067] - Expose bson_value::value type constructors
- [CXX-2074] - Testing Data Lake with Drivers
- [CXX-2088] - Implement ENABLE_TESTS CMake option
- [CXX-2094] - Correctly express lack of event assertions in change stream tests
- [CXX-2109] - Deprecate all references to utf8
- [CXX-2111] - Support Azure and GCP keystores in FLE
- [CXX-2116] - Document rpath for non-standard install location
- [CXX-2125] - Add comparison operators for bson_value and element
- [CXX-2130] - Add append method for list builder
- [CXX-2131] - Add extract_document and extract_array methods for list builder
- [CXX-2132] - Remove builder::list in favor of builder::document and builder::array
- [CXX-2138] - Versioned MongoDB API for Drivers
- [CXX-2155] - Sharing a MongoClient for metadata lookup can lead to deadlock in drivers using automatic encryption
- [CXX-2164] - Migrate away from travis-ci
- [CXX-2179] - Implement change stream oplog parsing code for delta oplog entries
- [CXX-2193] - Change estimatedDocumentCount() to use the $collStats Agg Stage Instead of Count Command
- [CXX-2202] - Support Removal of Several Platform Builds
- [CXX-2206] - Test that KMS TLS connections verify peer certificates
- [CXX-2226] - Vendor Fedora RPM spec file
- [CXX-2229] - Convert CRUD v2 spec tests to unified test format
- [CXX-2230] - Upgrade unified test runner to version 1.1
- [CXX-2239] - Convert change stream spec tests to unified test format
- [CXX-2257] - Stable API Connection Examples for Docs
- [CXX-2265] - Add test for security-sensitive command monitoring event redaction
- [CXX-2269] - Test against 5.0 servers
- [CXX-2274] - Support 'let' option for aggregate command
- [CXX-2345] - Investigate changes in SERVER-58612: Add BSON Binary subtype 7
- [CXX-2368] - Snapshot reads on Secondaries
- [CXX-2400] - Add support for the comment field to all helpers
- [CXX-2410] - Support KMIP provider
- [CXX-2415] - mongocxx::read_preference::tags(bsoncxx::document::view_or_value) should take a bsoncxx::array::view_or_value
- [CXX-2424] - Add GridFS partial download
- [CXX-2438] - Change streams support for user-facing PIT pre- and post-images
- [CXX-2458] - Avoid warnings when compiling with -Wfloat-equal
- [CXX-2470] - test_util for matching exceptions should produce cl...
MongoDB C++11 Driver r3.6.7
Release Notes - C++ Driver - Version 3.6.7
Bug
- [CXX-2358] - Compilation failure (tests) with glibc 2.34
MongoDB C++11 Driver r3.7.0-beta1
Release Notes - C++ Driver - Version 3.7.0-beta1
Includes support for MongoDB Atlas Serverless.
MongoDB C++11 Driver r3.6.6
MongoDB C++11 Driver r3.6.5
Release Notes - C++ Driver - Version 3.6.5
Bug
- Revert CXX-2258 which introduced a higher dependency requirement on libmongoc.
MongoDB C++11 Driver r3.6.4
MongoDB C++11 Driver r3.6.3
Release Notes - C++ Driver - Version 3.6.3
Bug
- [CXX-2143] - Throwing in bsoncxx::document::element::get_*() if the element is invalid.