Skip to content

MongoDB C++11 Driver r3.11.0

Compare
Choose a tag to compare
@eramongodb eramongodb released this 02 Oct 16:43
· 77 commits to master since this release
24852b6

Important

This is the final v3 minor release. Patch releases containing backports for relevant bug fixes will be supported for up to one year after the first v4 release. New features will not be backported.

Added

  • Support for MongoDB Server version 8.0.
  • Stable support for In-Use Encryption Range Indexes.
  • Documentation of the API and ABI versioning and compatibility policy.
  • API documentation pages for directories, files, namespaces, and root namespace redeclarations.
  • empty() member function for mongocxx::v_noabi::bulk_write.

Fixed

  • GCC 4.8.5 (RHEL 7) compatibility issues.
    • Redeclaration error due to bsoncxx::v_noabi::stdx::basic_string_view<...>::npos.
    • User-defined literal syntax error due to bsoncxx::v_noabi::operator"" _bson(const char*, size_t).
  • MSVC 17.11 compatibility issue due to missing <string> include directives.
  • bsoncxx::v_noabi::to_json error handling given invalid BSON documents.
  • Client pool error handling on wait queue timeout per waitQueueTimeoutMS.

Changed

  • Bump the minimum required C Driver version to 1.28.0.
  • Declare all exported function symbols with __cdecl when compiled with MSVC.
    • This does not affect users who compile with MSVC's default calling convention.
    • This is an ABI breaking change for users who use an alternative default calling convention when building their projects (e.g. with /Gz, /Gv, etc.). See Argument Passing and Naming Conventions for more information.
  • FetchContent_MakeAvailable() is used to populate dependencies instead of FetchContent_Populate() for the C Driver (when not provided by CMAKE_PREFIX_PATH) and mnmlstc/core (when automatically selected or when BSONCXX_POLY_USE_MNMLSTC=ON).
    • Note: FetchContent_Populate() is still used for mnmlstc/core for CMake versions prior to 3.18 to avoid add_subdirectory() behavior.
  • Test suite now uses Catch2 v3 via FetchContent instead of the bundled Catch2 v2 standalone header.
    • C++14 or newer is required to build tests when enabled with ENABLE_TESTS=ON.
    • Set ENABLE_TESTS=OFF to avoid the C++14 requirement when building C++ Driver libraries.

Deprecated

  • The bsoncxx/util/functor.hpp header.
  • The bsoncxx::util namespace.

Removed

  • Support for MongoDB Server 3.6. See MongoDB Software Lifecycle Schedules.
  • Export of private member functions in the bsoncxx ABI:
    • bsoncxx::v_noabi::types::bson_value::value::value(const uint8_t*, uint32_t, uint32_t, uint32_t)
    • bsoncxx::v_noabi::types::bson_value::view::_init(void*)
    • bsoncxx::v_noabi::types::bson_value::view::view(const uint8_t*, uint32_t, uint32_t, uint32_t)
    • bsoncxx::v_noabi::types::bson_value::view::view(void*)
  • Export of private member functions in the mongocxx ABI:
    • mongocxx::v_noabi::options::change_stream::as_bson()
    • mongocxx::v_noabi::options::aggregate::append(bsoncxx::v_noabi::builder::basic::document&)
    • mongocxx::v_noabi::options::index::storage_options()

See the full list of changes in Jira.

Feedback

To report a bug or request a feature, please open a ticket in the MongoDB issue management tool Jira:

Signature Verification

Release artifacts may be verified by using the accompanying detached signature (.asc) and the cpp-driver public key obtained from https://pgp.mongodb.com.