Skip to content

MongoDB C++11 Driver r3.11.0

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

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.