Releases: mongodb/mongo-c-driver
mongo-c-driver 1.30.2
Announcing 1.30.2 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Fixes:
- Fix
bson_new_from_bufferbehavior on malformed input. - Fix allocation of large
bson_t.
libmongoc
Fixes:
- Fix C23 build on Windows.
Links:
Thanks to everyone who contributed to this release.
- Jeroen Ooms
- Micah Scott
- Kevin Albertson
mongo-c-driver 1.30.1
Announcing 1.30.1 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Fixes:
- Fix
BSON_NORETURNmacro for C23 standard
libmongoc
No changes since 1.30.0. Version incremented to match the libbson version.
Links:
Thanks to everyone who contributed to this release.
- Micah Scott
mongo-c-driver 1.30.0
Announcing 1.30.0 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Improvements:
- Improve performance of BSON-to-JSON serialization for nested documents.
Fixes:
- Truncated output of
bson_as_json_with_optsis changed to no longer split valid UTF-8 sequences. - Changes were made to the generated JSON text in some cases:
- Previously, empty arrays and documents would serialize with either one or two spaces depending on whether it is nested. Empty arrays and documents now consistently serialize with just one space.
- Previously, an array omitted due to the maximum recursion limit would serialize to "{ ... }", as if it were a document. Omitted arrays now serialize to "[ ... ]".
- The maximum recursion limit now applies to legacy codewscope documents. Deeply nested scope documents will now be omitted like any other deeply nested document.
- Fix leak of output parameter on failed call to
bson_append_array_builder_begin.
Deprecated:
- Support for Debian 9 and Debian 10.
libmongoc
New Features:
- Add support for structured logging.
- See
mongoc_client_set_structured_log_optsandmongoc_client_pool_set_structured_log_opts.
- See
- Add option to configure cache lifetime of In-Use Encryption data encryption keys.
- See
mongoc_auto_encryption_opts_set_key_expirationandmongoc_client_encryption_opts_set_key_expiration.
- See
- Support
sortoption for update and replace operations. - Support constructing a
mongoc_bulkwrite_twithout a client.- See
mongoc_bulkwrite_newandmongoc_bulkwrite_set_client.
- See
Improvements:
- Improve performance of
mongoc_server_description_new_copy.
Fixes:
- Additional APM events required by the SDAM specification will now be delivered:
- Servers that have seen
server_openingwill now see aserver_closedprior totopology_closed. - Before
topology_closed, atopology_changedevent will transition toUnknowntopology type.
- Servers that have seen
- Fix reporting insert IDs in
mongoc_bulkwrite_twhen verbose results requested.
Deprecated:
- Support for Debian 9 and Debian 10.
Links:
Thanks to everyone who contributed to this release.
- Kevin Albertson
- Micah Scott
- Jeremy Mikola
- Adrian Dole
- Ezra Chung
- Antony Polukhin
- Jeroen Ooms
- Colby Pike
mongo-c-driver 1.29.2
Announcing 1.29.2 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
No changes since 1.29.1. Version incremented to match the libmongoc version.
libmongoc
Fixes:
- Rename
set_errorfunction to avoid symbol conflicts. - Fix Windows ARM 64 build.
- Fix comparison of uninitialized bytes.
- Fix format specifier on macOS.
Notes:
- Windows ARM 64 is not-yet officially tested or supported. Support is community driven.
Links:
Thanks to everyone who contributed to this release.
- Adrian Dole
- Christian Schmitz
- Antony Polukhin
- Kevin Albertson
mongo-c-driver 1.29.1
Announcing 1.29.1 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Fixes:
- Fix result of
bson_strerror_ron macOS. - Fix max length string handling
bson_value_copy.
libmongoc
Fixes:
- Assert session is consistent with client in
mongoc_bulkwrite_set_session.
Links:
Thanks to everyone who contributed to this release.
- Jeremy Mikola
- Kevin Albertson
mongo-c-driver 1.29.0
Announcing 1.29.0 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Deprecated:
bson_string_tand associated functions are deprecated and planned for removal in a future major release.- Compiling with
BSON_MEMCHECKdefined is deprecated. bson_in_range_*andbson_cmp_*functions.bson_atomic_*andbson_thrd_yieldfunctions.bson_as_jsonandbson_array_as_jsonare deprecated due to producing non-portable Legacy Extended JSON. Prefer Canonical Extended JSON or Relaxed Extended JSON for portability. To continue using Legacy Extended JSON, usebson_as_legacy_extended_jsonandbson_array_as_legacy_extended_json.
Fixes:
- Fix Relaxed Extended JSON encoding of dates after year 9999.
Improvements:
- Improve performance of bson_utf8_escape_for_json
libmongoc
Improvements:
- Retry KMS requests on transient errors.
Platform Support:
- Support for Visual Studio 2013 is dropped.
Deprecated:
mongoc_client_commandis deprecated and planned for removal in a future release. Usemongoc_client_command_simpleinstead.mongoc_database_commandis deprecated and planned for removal in a future release. Usemongoc_database_command_simpleinstead.mongoc_collection_commandis deprecated and planned for removal in a future release. Usemongoc_collection_command_simpleinstead.
Notes:
- Raise required version of libmongocrypt to 1.12.0 to support In-Use Encryption (corresponds to the CMake option:
ENABLE_CLIENT_SIDE_ENCRYPTION). - A future minor release will raise the minimum supported MongoDB Server version from 4.0 to 4.2. This is in accordance with MongoDB Software Lifecycle Schedules. Support for MongoDB Server 4.0 will be dropped in a future release!
Links:
Thanks to everyone who contributed to this release.
- Kevin Albertson
- Ezra Chung
- Micah Scott
- Adrian Dole
- Andreas Braun
- Joshua Siegel
mongo-c-driver 1.28.1
Announcing 1.28.1 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Fixes:
- Fix large string handling in
bson_string_truncate. - Fix possible crash in
bson_value_copy.
libmongoc
Fixes:
- Do not return result in
mongoc_bulkwritereturn_tif there are no known successful writes. - Validate lengths in ill-formed server responses.
- Do not override read preference when using aggregate with
$out/$mergewith unscanned servers. - Remove unexpected warning if
authSourcein TXT record is overriden by URI option. - Fix crash when non-existent CA file configured with OpenSSL.
Links:
Thanks to everyone who contributed to this release.
- Ezra Chung
- Joshua Siegel
- Kevin Albertson
mongo-c-driver 1.28.0
Announcing 1.28.0 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
New features:
- Add
bson_validate_with_error_and_offset.
Build Configuration:
- Remove automatic ccache detection and usage (CCache.cmake).
- Set
CMAKE_<LANG>_COMPILER_LAUNCHERto build with ccache.
- Set
- Remove
MONGO_USE_CCACHE(no longer applicable; see above).
libmongoc
New features:
- Support In-Use Encryption range queries.
- Include insert ID on result of
mongoc_collection_insert_one. - Add new bulk write API
mongoc_bulkwrite_t. Requires MongoDB 8.0. Reduces round-trips for mixed writes. - Add
serverMonitoringModeURI option.
Improvements:
- Improve performance of OpenSSL connection creation.
- Improve performance when trace logging is configured (
ENABLE_TRACING=ON) but disabled at runtime. - Prefer FIPS compliant functions for SCRAM-SHA-256 key derivation.
- Remove required slash to delimit options in MongoDB URI (e.g.
mongodb://example.com?w=1parses the same asmongodb://example.com/?w=1). - Include topology description in server selection timeout errors.
Notes:
- Bump minimum wire protocol version from 6 (MongoDB 3.6) to 7 (MongoDB 4.0).
- Raise required version of libmongocrypt to 1.11.0 to support In-Use Encryption (corresponds to the CMake option:
ENABLE_CLIENT_SIDE_ENCRYPTION).
Build Configuration:
- Remove automatic ccache detection and usage (CCache.cmake).
- Set
CMAKE_<LANG>_COMPILER_LAUNCHERto build with ccache.
- Set
- Remove
MONGO_USE_CCACHE(no longer applicable; see above).
Changed:
- Test and example targets are excluded from the
ALLtarget.- All test targets can be built using the
mongo_c_driver_teststarget. - All example targets can be built using the
mongo_c_driver_examplestarget.
- All test targets can be built using the
- Use
#!/usr/bin/env bashinstead of#!/bin/shin uninstall script generated byENABLE_UNINSTALL=ON.
Deprecated:
-
Use of
*_hintfunctions is deprecated in favor of more aptly named*_server_idfunctions:mongoc_bulk_operation_set_hintis deprecated formongoc_bulk_operation_set_server_idmongoc_bulk_operation_get_hintis deprecated formongoc_bulk_operation_get_server_idmongoc_cursor_set_hintis deprecated formongoc_cursor_set_server_idmongoc_cursor_get_hintis deprecated formongoc_cursor_get_server_id
-
A future minor release plans to drop support for Visual Studio 2013.
-
ENABLE_SSL=LIBRESSLis deprecated along withmongoc_stream_tls_libressl_new. Support for LibreSSL may be dropped in a future major release. -
ENABLE_SASL=CYRUSon Windows platforms is deprecated. Support forENABLE_SASL=CYRUSon Windows may be dropped in a future major release.- The associated Windows-only option
CYRUS_PLUGIN_PATH_PREFIXis deprecated.
- The associated Windows-only option
Links:
mongo-c-driver 1.27.6
Announcing 1.27.6 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
Fixes:
- Fix handling of malformed extended JSON for special BSON types.
- Fix large string handling in
bson_string_newandbson_string_append.
libmongoc
Fixes:
- Fix TSan warning.
- Fix C23 compile.
Improvements:
- Document expected behavior of command errors in a transaction.
Links:
Thanks to everyone who contributed to this release.
- Adrian Dole
- Ezra Chung
- Joshua Siegel
- Kevin Albertson
mongo-c-driver 1.27.5
Announcing 1.27.5 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.
libbson
- Fix large string handling in
bson_append_utf8.
libmongoc
Fixes:
- Fix possible build error in environments where
boolor_Boolis a macro.
Links:
Thanks to everyone who contributed to this release.
- Kevin Albertson
- Roberto C. Sánchez