MongoDB C++ Driver v5.0 Release Notes

Release Date: 2020-03-31 // about 4 years ago
  • 🚀 Release Notes - C++ Driver - Version 3.5.0

    🚀 The MongoDB C++ Driver Team is pleased to announce the availability of mongocxx-3.5.0. This release provides support for new features in MongoDB 4.2.

    🚀 Please note that this version of mongocxx requires the MongoDB C driver 1.15.0 or higher.

    👀 See the MongoDB C++ Driver Manual and the Driver Installation Instructions for more details on downloading, installing, and using this driver.

    🚀 The mongocxx 3.5.x series does not promise API or ABI stability across patch releases.

    🆓 Please feel free to post any questions to the MongoDB community forum in the Drivers, ODMs, and Connectors category with the cxx-driver tag. Bug reports should be filed against the CXX project in the MongoDB JIRA. Your feedback on the C++11 driver is greatly appreciated.

    🚀 The following are user-visible issues that have been resolved in 3.5.0 since the prior release:

    🐛 Bug

    • [CXX-1688] - MongoDB CXX driver does not compile with standard polyfill.
    • [CXX-1689] - database::_create_collection is not using C++17-compatible string conversion.
    • ✅ [CXX-1693] - Test with latest gcc
    • 🐧 [CXX-1720] - clang 7.0.1, Linux, c++14, libc++, ambiguous overload in change_stream.cpp
    • [CXX-1769] - ChangeStream spec's Resumable Error definition is too broad
    • 🏗 [CXX-1901] - Building C++ driver from master fails to find cmake packages of C driver
    • [CXX-1922] - scoped_bson_t::steal() doesn't clear _is_initialized flag
    • ✅ [CXX-1938] - Catch does not guarantee running at least one test SECTION per TEST_CASE run

    🆕 New Feature

    • [CXX-1669] - Add an uninstall target
    • 🏗 [CXX-1678] - std::aligned_storage build failure with extra alignment
    • [CXX-1681] - Implement Unified URI Options
    • [CXX-1682] - Implement Convenient API for Transactions
    • 📌 [CXX-1684] - Support mongos pinning for sharded transactions
    • [CXX-1685] - Retryable Reads
    • [CXX-1691] - Connections survive primary stepdown
    • 👍 [CXX-1695] - Support sharded transactions recovery token
    • [CXX-1696] - Aggregate command must be sent to a primary if it uses $out
    • ✅ [CXX-1701] - Resync transactions tests to include test with session1 in APM expectations
    • [CXX-1702] - Add database aggregate helper
    • 🏗 [CXX-1711] - Add CMake flags to build both shared and static libraries
    • 👍 [CXX-1715] - Support 'startAfter' option to the $changeStream stage
    • [CXX-1719] - Drivers should use majority write concern when retrying commitTransaction
    • [CXX-1721] - Drivers should ignore batchSize=0 for aggregate with $out
    • 0️⃣ [CXX-1732] - Support Retryable Writes on by Default
    • 👍 [CXX-1734] - Support postBatchResumeToken in change streams
    • ✅ [CXX-1742] - Resync transaction spec tests for bulk write error reporting change
    • 👍 [CXX-1743] - Add support for majority read concern level to Aggregation $out
    • ✅ [CXX-1755] - Require retryable writes network error tests to run on mongos 4.2+
    • ⚡️ [CXX-1756] - Add the ability to specify a pipeline to an update command
    • [CXX-1759] - Document connection string and URI option precedence rules
    • ✅ [CXX-1761] - Use runOn syntax to specify transaction test requirements
    • [CXX-1771] - Allow applications to set maxTimeMS for commitTransaction
    • ⚡️ [CXX-1805] - Operating System Removals/Updates for 4.2
    • 👍 [CXX-1806] - Raise an actionable error message when retryWrites fails due to using an unsupported storage engine

    👌 Improvement

    • [CXX-1532] - Demonstrate "pool" in thread-safety.md
    • [CXX-1572] - Retryable writes should consider more errors retryable
    • 🗄 [CXX-1637] - Delete deprecated collection::replace_one overloads
    • ✅ [CXX-1670] - Add test that reads ignore db/collection readConcern in transaction
    • [CXX-1680] - COPYING and THIRD_PARTY_NOTICES should be installed to $PREFIX/share/doc/mongo-cxx-driver
    • [CXX-1707] - Export targets for CMake project
    • 🚀 [CXX-1752] - Remove GitPython from calc_release_version.py
    • [CXX-1783] - Don't send $readPreference to standalone servers
    • ✅ [CXX-1790] - Test MongoDB 4.2 in Evergreen
    • ✅ [CXX-1795] - Use runOn syntax to specify CRUD test requirements
    • [CXX-1820] - Deprecation warning on mongoc_uri_get_ssl
    • [CXX-1834] - Make pipeline extensible
    • ✏️ [CXX-1899] - Typos in install guide