All Versions
11
Latest Version
4.0
Avg Release Cycle
62 days
Latest Release
398 days ago

Changelog History
Page 1

  • v4.0

    October 15, 2018

    🚀 This is the first stable release in the mongocxx 3.4 series.

    🚀 This release provides support for new features MongoDB 4.0 (most notably transactions) as well as command monitoring and SDAM monitoring.

    Please note that this version of mongocxx requires the MongoDB C driver 1.13.0.

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

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

    Here is the full list of user-visible issues that have been resolved in 3.4.0 since the prior 3.3 series:

    🆕 New Feature

    • [CXX-1385] - Add API for subscribing to SDAM events
    • [CXX-1386] - Implement command monitoring API
    • [CXX-1433] - Implement Database Enumeration spec
    • 👍 [CXX-1478] - Support ReplaceOptions in CRUD API
    • [CXX-1505] - Implement SASLPrep
    • 👍 [CXX-1509] - SCRAM-SHA-256 Support
    • [CXX-1531] - Implement Transactions spec
    • [CXX-1538] - Delete public bulk_write constructor
    • [CXX-1541] - Handshake changes for SDAM and Auth
    • [CXX-1558] - Remove collection::bulk_write(bulk_write&)
    • ⚡️ [CXX-1559] - Update SCRAM-SHA-256 implementation and tests for spec change
    • 👍 [CXX-1582] - Support nameOnly option in listCollections command
    • [CXX-1584] - Add helpers and options for Change Streams Follow-on Work
    • 🚚 [CXX-1585] - Remove MD5 from ObjectID generation
    • [CXX-1592] - Add MongoDB 4.0 to the Evergreen matrix
    • [CXX-1594] - Implement new count API
    • 🚚 [CXX-1616] - Remove equality/inequality operators from options classes
    • ✅ [CXX-1622] - Test only the initial command in a transaction includes readConcern
    • 👍 [CXX-1639] - Support new readConcern level "available"
    • [CXX-1658] - Generate C Driver version number when installing

    🐛 Bug

    • [CXX-1595] - GNU 4.9.3: 'max_align_t' was not declared
    • [CXX-1625] - Android NDK r17 compiler error
    • 0️⃣ [CXX-1626] - CRUD operations set ordered to false by default
    • [CXX-1638] - Don't call string_view::to_string

    👌 Improvement

    • [CXX-1499] - Don't access bson_iter_t internals
    • [CXX-1500] - document::view::find should use bson_iter...w_len functions
    • 🗄 [CXX-1528] - Deprecate snapshot option
    • ✅ [CXX-1562] - Port session tests to mongocxx command monitoring API
    • ✅ [CXX-1573] - Spec tests should use the same format for bulk writes
    • [CXX-1577] - Flexible collection creation
    • 🚚 [CXX-1578] - Remove options::aggregate::use_cursor
    • ✅ [CXX-1580] - Log backtraces in test failures on Evergreen
    • [CXX-1586] - Add user commands to list of commands that write
    • [CXX-1591] - Only send bypassDocumentValidation if it's true
    • [CXX-1596] - Use mongoc_cursor_new_from_command_reply_with_opts
    • ⚡️ [CXX-1601] - Update ChangeStream spec to detail usage of startAtOperationTime
    • 🗄 [CXX-1620] - Migrate from functions deprecated in libmongoc 1.12
    • [CXX-1651] - Rewrite "Contributing" page
    • 🚚 [CXX-1653] - Remove database::modify_collection
    • [CXX-1657] - Require libbson and libmongoc 1.13.0
    • ⚠ [CXX-1660] - Fix doxygen warnings
    • 📚 [CXX-1666] - improve documentation of element::bool()
  • v3.4.0

    February 13, 2019
  • v3.4.0-1

    February 13, 2019
  • v3.1

    July 27, 2018

    🚀 This release provides bug fixes since r3.3.0.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

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

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

    🐛 Bug

    • [CXX-1614] - Client constructed with independently defined SSL options always crashes
  • v3.0

    June 12, 2018

    🚀 This is the first stable release in the mongocxx 3.3 series.

    🚀 This release provides additional support for new features in MongoDB 3.6, introduces support for client sessions and change streams, and includes a large number of fixes and improvements since the 3.2 release series.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

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

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

    ✅ The only change since 3.3.0-rc0 is a test that verifies client sessions are prohibited with unacknowledged writes. Here is the full list of user-visible issues that have been resolved in 3.3.0 since the prior 3.2 series:

    🆕 New Feature

    • [CXX-1184] - Prevent misuse of client temporaries
    • ⚡️ [CXX-1390] - Array Update Improvements
    • [CXX-1398] - Implement session and session options API
    • [CXX-1399] - Implement session
    • [CXX-1400] - PIMPL session
    • [CXX-1401] - Make collection and database modifications for sessions
    • ⚡️ [CXX-1402] - Update thread/fork safety for sessions
    • [CXX-1403] - Add page on sessions
    • [CXX-1404] - Add a session example
    • [CXX-1408] - Add Change Stream API
    • 👍 [CXX-1414] - Change stream support
    • 👍 [CXX-1416] - Causally Consistent Reads support
    • ✅ [CXX-1519] - Document how to use the latest TLS protocols
    • 🗄 [CXX-1549] - Deprecate public bulk_write constructors
    • [CXX-1552] - Drop MongoDB 2.6
    • [CXX-1557] - Deprecate collection::bulk_write(bulk_write&), add bulk_write::execute()
    • [CXX-1560] - Add clusterTime property to static type for change stream documents
    • 🗄 [CXX-1567] - Deprecate autoIndexId for collection creation

    🐛 Bug

    • [CXX-1511] - Client constructor should throw if mongoc_uri_new_with_error fails
    • [CXX-1553] - Wrong ctor call to b_timestamp
    • [CXX-1564] - Cannot set use_cursor or batch_size with aggregation cursor

    👌 Improvement

    • ⬆️ [CXX-1498] - Upgrade to C driver 1.10
    • [CXX-1516] - Decrease likelihood of implicit session leaks
    • 🗄 [CXX-1525] - Migrate from APIs deprecated in libmongoc 1.9.0 and older
    • ⚡️ [CXX-1529] - Update algorithm for Kerberos hostname canonicalization
    • [CXX-1536] - Use libmongoc "with_opts" bulk operation functions
    • 🏗 [CXX-1550] - Build C Driver with CMake on Evergreen
    • [CXX-1565] - Use mongoc_collection_find_and_modify_with_opts
    • [CXX-1568] - Initial aggregate command for a change stream should not be retried

    Task

    • [CXX-1518] - Prohibit using unacknowledged writes with explicit sessions
  • v3.0-rc0

    May 31, 2018

    🚀 This is the first release candidate for mongocxx 3.3.0, the MongoDB C++11 driver.

    🚀 This release provides additional support for new features in MongoDB 3.6, introduces support for client sessions and change streams, and includes a large number of fixes and improvements since the 3.2 release series.

    Please note that this version of mongocxx requires the MongoDB C driver 1.10.1.

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

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

    The full list of user-visible issues that have been resolved in 3.3.0-rc0 since the prior 3.2 series are as follows:

    🆕 New Feature

    • [CXX-1184] - Prevent misuse of client temporaries
    • ⚡️ [CXX-1390] - Array Update Improvements
    • [CXX-1398] - Implement session and session options API
    • [CXX-1399] - Implement session
    • [CXX-1400] - PIMPL session
    • [CXX-1401] - Make collection and database modifications for sessions
    • ⚡️ [CXX-1402] - Update thread/fork safety for sessions
    • [CXX-1403] - Add page on sessions
    • [CXX-1404] - Add a session example
    • [CXX-1408] - Add Change Stream API
    • 👍 [CXX-1414] - Change stream support
    • 👍 [CXX-1416] - Causally Consistent Reads support
    • ✅ [CXX-1519] - Document how to use the latest TLS protocols
    • 🗄 [CXX-1549] - Deprecate public bulk_write constructors
    • [CXX-1552] - Drop MongoDB 2.6
    • [CXX-1557] - Deprecate collection::bulk_write(bulk_write&), add bulk_write::execute()
    • [CXX-1560] - Add clusterTime property to static type for change stream documents
    • 🗄 [CXX-1567] - Deprecate autoIndexId for collection creation

    🐛 Bug

    • [CXX-1511] - Client constructor should throw if mongoc_uri_new_with_error fails
    • [CXX-1553] - Wrong ctor call to b_timestamp
    • [CXX-1564] - Cannot set use_cursor or batch_size with aggregation cursor

    👌 Improvement

    • ⬆️ [CXX-1498] - Upgrade to C driver 1.10
    • [CXX-1516] - Decrease likelihood of implicit session leaks
    • 🗄 [CXX-1525] - Migrate from APIs deprecated in libmongoc 1.9.0 and older
    • ⚡️ [CXX-1529] - Update algorithm for Kerberos hostname canonicalization
    • [CXX-1536] - Use libmongoc "with_opts" bulk operation functions
    • 🏗 [CXX-1550] - Build C Driver with CMake on Evergreen
    • [CXX-1565] - Use mongoc_collection_find_and_modify_with_opts
    • [CXX-1568] - Initial aggregate command for a change stream should not be retried
  • v2.0

    February 28, 2018

    🚀 This is the first stable release in the mongocxx 3.2 series.

    🚀 This release introduces support for MongoDB 3.4 features, as well as partial support for some MongoDB 3.6 features and GridFS support.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.9.2 or newer.

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

    🚀 NOTE: The mongocxx 3.2 series does not promise API or ABI stability across patch releases.

    🚀 Changes since the prior 3.2.0-rc1 release:

    🐛 Bug

    • [CXX-1435] - problem with the mongocxx::result::insert_many class
    • [CXX-1446] - mongoc_collection_get_last_error is deprecated in 1.8.x of libmongoc
    • 🏗 [CXX-1521] - Basic builder document/array types should have noexcept move ctor and assignment op

    🆕 New Feature

    • ⚡️ [CXX-1390] - Array Update Improvements
    • 👍 [CXX-1405] - OP_MSG support
    • 👍 [CXX-1415] - All writes retryable support
    • 📜 [CXX-1418] - Parse localLogicalSessionTimeoutMinutes from isMaster response
    • 👀 [CXX-1438] - Implement Initial DNS Seedlist discovery spec

    Task

    • [CXX-1470] - Improve server compatibility error messages for wire version checks
    • ✅ [CXX-1475] - Resync retryable writes test
    • [CXX-1488] - Fix issues identified by coverity
    • ⬆️ [CXX-1493] - Upgrade C driver minimum to 1.9.2
    • [CXX-1506] - GridFS MD5 digest must be optional
  • v2.0-rc1

    December 06, 2017

    🚀 This is the second release candidate for mongocxx 3.2.0, the MongoDB C++11 driver.

    🚀 This release includes fixes for bugs found in 3.2.0-rc0. Please see the 3.2.0-rc0 release notes for information on changes since the prior 3.1.x release series.

    🚀 Please note that this version of mongocxx requires the MongoDB C driver 1.8.2.

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

    NOTE : The mongocxx 3.2.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.2.0-rc1 since 3.2.0-rc0 series are as follows:

    🐛 Bug

    • [CXX-1476] - Element search stops prematurely due to missing string length check
  • v2.0-rc0

    November 17, 2017

    🚀 This is the first release candidate for mongocxx 3.2.0, the MongoDB C++11 driver.

    🚀 This release provides additional support for new features in MongoDB 3.4, introduces support for GridFS, and includes a large number of fixes and improvements since the 3.1.x release series.

    🚀 Please note that this version of mongocxx requires the MongoDB C driver 1.8.2.

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

    NOTE : The mongocxx 3.2.x series does not promise API or ABI stability across patch releases.

    The full list of user-visible issues that have been resolved in 3.2.0-rc0 since the prior 3.1.x series are as follows:

    🐛 Bug

    • [CXX-771] - Change collection methods to use options.max_time()
    • 📄 [CXX-994] - Fix missing or misleading docs about pools, thread/fork safety and background monitoring
    • 🏗 [CXX-1014] - bsoncxx::builder::core exceptions are undocumented
    • [CXX-1043] - Add doxygen tag for mongocxx and bsoncxx namespaces
    • 🗄 [CXX-1080] - Document autoIndexId as deprecated
    • [CXX-1118] - BSON Regex flags must be alphabetically ordered
    • [CXX-1144] - Mutator methods which return non-void should document their return value
    • 🏗 [CXX-1150] - bsoncxx builders should error when multiple keys are pushed without a value
    • 🏗 [CXX-1151] - bsoncxx::builder::core::view_document() and bsoncxx::builder::core::view_array() should throw when builder top-level BSON datum type is incorrect
    • 🏗 [CXX-1152] - Context enforcement for BSON stream builder doesn't play nicely with statements that leave open sub-documents or sub-arrays
    • 🍎 [CXX-1158] - Unable to link against SSL libs on MacOS
    • 👍 [CXX-1163] - Compiling with SSL support doesn't work
    • [CXX-1172] - Document result::bulk_write::modified_count() throws with mongod 2.4
    • [CXX-1175] - Drivers MUST NOT require a username *in the URI* for MONGODB-X509
    • [CXX-1178] - CMAKE_C_COMPILER, CMAKE_CXX_COMPILER not passed to CMake invocation for EP_mnmlstc_core
    • [CXX-1187] - mongocxx::uri::database() segfaults if no database specified in URL
    • 📚 [CXX-1196] - Improve mongocxx::instance documentation
    • ✅ [CXX-1220] - Invalid URI passed to SSL unit test for mongocxx::pool
    • 🏗 [CXX-1228] - fix minor issues with stream builder and example
    • [CXX-1231] - When patching include paths to use 'mnmlstc', avoid filename collisions (PR #582)
    • [CXX-1242] - Index pages from each section in driver manual fail to render properly
    • [CXX-1243] - Audit GridFS implementation for correct handling of user-provided and server-provided file lengths and chunk sizes
    • 🏗 [CXX-1246] - bsoncxx::builder::stream::single_context should not permit appending of multiple values
    • [CXX-1252] - Tailable cursors only work once
    • ⏱ [CXX-1254] - Document that write_concern timeout of zero means no timeout
    • [CXX-1258] - Cursor iterators lose lockstep at cursor end
    • 0️⃣ [CXX-1279] - Copy assignment for database/collection incorrectly degrades to no-op if rhs is default-constructed
    • [CXX-1281] - collection::find() and collection::distinct() leak a mongoc_cursor_t on some error paths
    • [CXX-1285] - aggregate sets read preference option incorrectly
    • [CXX-1300] - Prevent mongoc_init/mongoc_cleanup from running more than once
    • [CXX-1302] - Documentation for read_concern::acknowledge_string() should clarify that any read concern string can be passed in
    • [CXX-1317] - bucket::upload_from_stream() and bucket::upload_from_stream_with_id() should abort upload on failure
    • [CXX-1322] - gridfs::bucket::upload_from_stream and upload_from_stream_with_id infinitely loop on invalid ifstream without error bits set
    • 🏗 [CXX-1324] - Examples not running under Ubuntu 16.04 builders
    • 🆓 [CXX-1325] - Overly-greedy template substitution in declarations of comparison operator free functions for bsoncxx::types::value
    • [CXX-1338] - Capped size in bytes is limited to 32bit integer, need 64bit integer
    • [CXX-1341] - Wrong integer type for many CRUD spec API fields
    • [CXX-1346] - PR: fixing more __imp_bson and __imp_mongoc linker errors
    • [CXX-1347] - Calls to bson_append_* are not checked for errors in the core builder
    • [CXX-1367] - bsoncxx::types::timestamp t and i parts are reversed
    • [CXX-1387] - Bulk write operations don't inherit write concern from the collection
    • 🏗 [CXX-1441] - Build fails on Evergreen because of use of deprecated libmongoc API
    • [CXX-1453] - Compilation fails on GCC 6 due to -Wignored-attributes
    • ✅ [CXX-1454] - list_collections test fails with MMAPv1 storage engine
    • 🗄 [CXX-1458] - Deprecate ~frame() destructor, and add close() function as replacement
    • [CXX-1461] - Missing UNREACHABLE in json.cpp
    • [CXX-1463] - b_regex and b_codewscope constructors lack SFINAE protections

    Epic

    • 🔧 [CXX-1257] - Revise static library naming and link configuration
    • [CXX-1358] - Implement the index view API for the C++ driver
    • [CXX-1372] - Implement the microbenchmark suite and generate scores for the driver

    🆕 New Feature

    • 🏗 [CXX-915] - Add example of how to write a CMake project to build against the C++11 driver
    • [CXX-995] - Add mongocxx::pool examples
    • 🗄 [CXX-1055] - Add new read_preference setters that support method chaining, deprecate existing setters and constructors
    • [CXX-1060] - Adopting bsoncxx::stdx polyfills into mongocxx::stdx namespace is confusing
    • [CXX-1075] - Add section to manual on connecting with auth and SSL
    • [CXX-1085] - Inconsistent API for operation level write concern
    • 🗄 [CXX-1086] - Deprecate non-const methods on mongocxx::client
    • 📚 [CXX-1087] - Public method documentation for command helpers should point users to command reference, not shell method reference
    • [CXX-1121] - Include MONGOCXX_CALL and BSONCXX_CALL macros with function definitions
    • [CXX-1130] - Implement GridFS Spec
    • [CXX-1159] - Make unwrapping conversion operators constant (PR #577)
    • [CXX-1160] - Please add instructions to compile Mongo C++ driver as static library
    • 0️⃣ [CXX-1161] - b_regex should provide a default value for options string
    • [CXX-1174] - Introduce make_document() and make_array() helpers, builder::core append style methods should return ref-to-this
    • 🏗 [CXX-1202] - Document how to build array in a loop with stream builder
    • ⚡️ [CXX-1207] - Update vendored Catch to latest stable version
    • [CXX-1233] - Create GridFS upload/download example
    • [CXX-1241] - Implement Extended JSON spec
    • [CXX-1255] - Add a "file length" accessor to gridfs::downloader
    • 🏗 [CXX-1280] - Basic builders are not copyable or movable
    • [CXX-1282] - collection::name() should not guarantee returned string is null-terminated
    • [CXX-1283] - scoped_bson_t should simplify use case providing a pointer for initialization
    • [CXX-1307] - bsoncxx: Change static library name to "bsoncxx-static", add static-only pkg-config and CMake config files
    • [CXX-1308] - Add basic integration tests for GridFS bucket methods other than open_upload_stream()/open_download_stream()
    • [CXX-1313] - "bsoncxx" depends on "bson-1.0" if BUILD_SHARED_LIBS, else depends on "bson-static-1.0"
    • [CXX-1315] - mongocxx: Change static library name to "mongocxx-static", add static-only pkg-config and CMake config files, depend on mongoc-static-1.0 if BUILD_SHARED_LIBS=OFF
    • ✅ [CXX-1316] - Add tests for installed pkg-config and installed CMake config files
    • ✅ [CXX-1318] - Add GridFS integration tests which upload/download files of size >4 GB
    • [CXX-1334] - Add index hint to aggregation and non-materialized views
    • 👍 [CXX-1356] - Add support for reading and writing OP_COMPRESSED
    • [CXX-1359] - Replace use of index options in API with BSON document
    • [CXX-1360] - Implement index_model and add dummy implementation of index_view
    • [CXX-1362] - Replace dummy index view implementation with actual implementation
    • 👍 [CXX-1464] - Support non-experimental use of std::optional and string::view in C++17 mode

    👌 Improvement

    • [CXX-869] - mongocxx::result::insert_many::inserted_ids() should be const
    • [CXX-984] - Improve use of bson_init_static
    • [CXX-992] - bsoncxx::document::view::find() should be rewritten to avoid string allocation
    • ♻️ [CXX-1169] - Minor refactoring (PR #578)
    • [CXX-1188] - Add functionality to write a model for mongocxx::collection
    • [CXX-1217] - GridFS download streams should kill the cursor when closed
    • [CXX-1333] - Cache SCRAM-SHA-1 ClientKey
    • [CXX-1429] - Document polyfill option BSONCXX_POLY_USE_SYSTEM_MNMLSTC
    • ✅ [CXX-1447] - Reduce use of deprecated methods in test files
  • v1.4

    February 28, 2018

    🚀 This is the fifth stable release in the mongocxx 3.1.x series.

    🚀 This release provides bug fixes since r3.1.3.

    Please note that this version of mongocxx requires the MongoDB C Driver 1.7.0 or newer. Prior releases in the 3.1.x series only required 1.5.0 or newer, however the fixes included in this release depend on associated fixes that did not arrive in the C driver until 1.7.0.

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

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

    The full list of user-visible issues that have been resolved in 3.1.4 since the prior 3.1.3 series are as follows:

    🐛 Bug

    • [CXX-1252] - Tailable cursors only work once
    • [CXX-1258] - Cursor iterators lose lockstep at cursor end