Releases: mongodb/mongo-c-driver
mongo-c-driver 1.15.2
I'm pleased to announce version 1.15.2 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No changes since 1.15.1; release to keep pace with libmongoc's version.
libmongoc
Bug fixes:
- Prevent mongoc_transaction_opts_set_max_commit_time_ms from applying to subsequent transactions that should be using the default.
- Do not report the initial error if a retry for a change stream function (mongoc_collection_watch, mongoc_database_watch, or mongoc_client_watch) succeeds
Links:
Thanks to everyone who contributed to this release.
- Andreas Braun
- Clyde Bazile
mongo-c-driver 1.15.1
I'm pleased to announce version 1.15.1 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No change since 1.15.0; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.15.1.
Bug fixes:
- Fix change stream resume logic when no documents received
- Reduce the required cmake version to build with zstd support
- Minor fixes to mongos pinning logic
- Do not resume a change stream on NonResumableChangeStreamError
Links:
Thanks to everyone who contributed to this release.
- Kevin Albertson
- Clyde Bazile
mongo-c-driver 1.15.0
I'm pleased to announce version 1.15.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No change since 1.14.1; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.15.0. This release adds
support for MongoDB 4.2 features.
Features:
- Support for sharded transactions on MongoDB sharded clusters 4.2+.
- Add convenient transaction runner (mongoc_client_session_with_transaction),
which accepts a callback and performs appropriate retry logic. - Add a new transaction option to specify maximum time to wait for a commit,
mongoc_transaction_opts_set_max_commit_time_ms. - Add URI option "retryReads=true" safely and automatically retries certain
read operations if the server is a MongoDB 3.6+. Note, this may require applications to adjust any custom retry logic to prevent inadvertently retrying for too long - Poll SRV records to mongos servers periodically.
- Keep connections alive after a primary stepdown detected.
- Standardizes URI options supported across all spec-compliant MongoDB drivers.
- "retryWrites" URI option now defaults to true (requires crypto for session
support). - Send any aggregate with $out or $merge stage to a primary.
- Add the ability to specify an aggregate pipeline as an update document.
- Add a database aggregate helper, mongoc_database_aggregate.
- Add option for change streams, "startAfter".
- Add mongoc_change_stream_get_resume_token, which returns the resume token
which should be used to resume a change stream. - Add support for zstd compression.
Bug fixes:
- Correctly report an error in mongoc_change_stream_next if the resume token
(_id) is not a document. Previously, an error was only reported if the
field was missing. - Fix mongoc_collection_update with MONGOC_UPDATE_MULTI_UPDATE,
mongoc_collection_remove, and mongoc_collection_delete when retryWrites
was enabled. They would fail previously. - Command options are now correctly taken into account when batching bulk
writes for OP_QUERY. It was possible to exceed the maximum document size
before. - Fix a crash if a multi-batch bulk write with OP_MSG errored on a batch.
Links:
Thanks to everyone who contributed to this release.
- Kevin Albertson
- Jeremy Mikola
- Haris Sheikh
- Samantha Ritter
- Isabel Atkinson
- Sara Golemon
- Clyde Bazile
- Roberto C. Sánchez
- Lior Kaplan
- pasniak
mongo-c-driver 1.14.1
I'm pleased to announce version 1.14.1 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.14.1.
Bug fixes:
- Remove unnecessary dependencies from pkg-config.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.14.1.
Bug fixes:
- Prohibit starting a transaction for pre-4.0 MongoDB servers.
- Prohibit starting a sharded transaction for pre-4.2 MongoDB servers.
Links:
Thanks to everyone who contributed to this release.
- Jeremy Mikola
- Clyde Bazile
- Kevin Albertson
mongo-c-driver 1.14.0
I'm pleased to announce version 1.14.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.14.0.
Features:
- ObjectIDs are generated in compliance with the driver ObjectID spec.
- Add a bson_copy_to_excluding_noinit variant taking a va_list.
- Add example of validating BSON nesting depth with bson_visitor_t.
Bug fixes:
- Relaxed JSON pads datetime milliseconds with spaces instead of zeroes.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.14.0.
Features:
- Support for OpenSSL 1.1.1 and its implementation of TLS v1.3.
- New function mongoc_stream_should_retry.
- New accessor mongoc_server_description_last_update_time.
- New method mongoc_client_reset to be called after forking.
Bug fixes:
- OP_MSG with unacknowledged writes (write concern of w:0) would serialize
incorrectly on big-endian platforms, causing writes to use the default
write concern of w:1. - mongoc_collection_update_many and mongoc_collection_delete_many would fail
with the URI option retryWrites=true. - In a transaction, the driver now properly ignores the readConcern configured
on a client, database, or collection: only the mongoc_transaction_opt_t's
readConcern is used. - Remove timestamp from uninstall scripts to permit reproducible build.
- Setting mongoc_ssl_opt_t.pem_file or ca_file to a bad file path caused a
hang with Darwin SSL. - Fix the ENABLE_SASL cmake option:
- Remove unnecessary GSSAPI value. It was equivalent to specifying ENABLE_SASL=CYRUS.
- ENABLE_SASL=AUTO now correctly chooses SSPI on Windows instead of CYRUS.
- The client pool failed to set proper apm callbacks for clients created
via try_pop().
Links:
Thanks to everyone who contributed to this release.
- A. Jesse Jiryu Davis
- Roberto C. Sánchez
- Kevin Albertson
- Samantha Ritter
- Spencer McKenney
- Henrik Edin
- Jeremy Mikola
- Evgeni Dobranov
- Derick Rethans
- 平民·寻梦(Pingmin Fenlly Liu)
- David Carlier
- Gustaf Neumann
- Jeroen
- Jeroen Ooms
- Kaitlin Mahar
- Tomas Mozes
- Clyde Bazile
- Scott Gayou
mongo-c-driver 1.13.1
I'm pleased to announce version 1.13.1 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.13.1.
Bug fixes:
- Separate libmongoc and libbson uninstall scripts so they do not overwrite
each other.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.13.1.
Bug fixes:
- mongoc_collection_update_many and mongoc_collection_delete_many would fail
with the URI option retryWrites=true. - Remove timestamp from uninstall scripts to permit reproducible build.
- Add missing header files to the release tarball to fix compilation when
configuring with ENABLE_SASL=GSSAPI. - Separate libmongoc and libbson uninstall scripts so they do not overwrite
each other. - Fix running make install with DESTDIR.
Links:
Thanks to everyone who contributed to this release.
- Kevin Albertson
- A. Jesse Jiryu Davis
- Henrik Edin
mongo-c-driver 1.13.0
I'm pleased to announce version 1.13.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.13.0.
Features:
- New functions to save and restore progress of a bson_iter_t:
bson_iter_key_len, bson_iter_offset, and bson_iter_init_from_data_at_offset - Additional functions bson_iter_overwrite_date_time, bson_iter_overwrite_oid,
and bson_iter_overwrite_timestamp. All fixed-length BSON values can now be
updated in place.
Bug fixes:
- Fix crash when iterating corrupt BSON.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.13.0.
Features:
- Report a new error code, MONGOC_ERROR_GRIDFS_CORRUPT, when a chunk larger
than chunkSize is detected. Before, the driver had crashed with an assert. - Restructure of install directory. All mongoc headers are under mongoc/
and all bson headers are under bson/. The preferred way of including the
headers are mongoc/mongoc.h and bson/bson.h respectively.
Forwarding headers in the root are provided for backwards compatibility. - The default CMake build type had been unspecified, now it is RelWithDebInfo.
- Support LibreSSL 2.7+.
Bug fixes:
- mongoc_collection_replace_one is now a correctly exported symbol.
- Fix multiple issues with readConcern and writeConcern inheritance.
- Fix rare crash with mongodb+srv URIs on Windows.
- mongoc_gridfs_create_file_from_stream ignored errors while writing chunks
to the server. - The following functions should not have taken a "bypassDocumentValidation"
option in bson_t *opts, the option is now prohibited:- mongoc_bulk_operation_insert_with_opts
- mongoc_bulk_operation_update_one_with_opts
- mongoc_bulk_operation_update_many_with_opts
- mongoc_bulk_operation_replace_one_with_opts
- The heartbeat-succeeded and heartbeat-failed events (part of SDAM
Monitoring) had uninitialized "duration" fields, they are now set correctly.
Links:
Thanks to everyone who contributed to this release.
- A. Jesse Jiryu Davis
- Roberto C. Sánchez
- Kevin Albertson
- Henrik Edin
- Spencer McKenney
- Jeremy Mikola
- Evgeni Dobranov
- Tomas Mozes
- Derick Rethans
- Gustaf Neumann
- Jeroen
- Jeroen Ooms
- Kaitlin Mahar
- Scott Gayou
mongo-c-driver 1.12.0
I'm pleased to announce version 1.12.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.12.0. This release deprecates all
MD5-related public APIs; they will be removed in the next major release.
Bug fixes:
- Properly handle zero-length BSON binary values
- Fix crash parsing Base64-encoded data in JSON when using libbson without
libmongoc
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.12.0.
Features:
- New function mongoc_client_session_in_transaction to check if a multi-
document transaction is started. - New examples for change streams and transactions, improved guide for
migrating from mongoc_collection_count to mongoc_collection_count_documents
Bug fixes:
- Fix occasional crash in sharded queries
- Retry all retryable write concern errors
- mongoc_client_session_commit_transaction sets the correct error label when
the primary is unavailable - mongoc_collection_find_with_opts had prohibited read preference "primary"
in a transaction - mongoc_collection_aggregate had not inherited its mongoc_collection_t's
read preference; only an explicitly provided read preference was used. - Allow unencoded delimiters in username/password if unambiguous
Links:
Thanks to everyone who contributed to this release.
- Roberto C. Sánchez
- A. Jesse Jiryu Davis
- Kevin Albertson
- Spencer McKenney
- Evgeni Dobranov
- Jeremy Mikola
- 平民·寻梦(Pingmin Fenlly Liu)
mongo-c-driver 1.11.0
I'm pleased to announce version 1.11.0 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.11.0. This version adds the following
features and improvements:
- All "destroy" functions such as bson_destroy or bson_reader_destroy now
ignore a NULL argument. - Replace MD5 with FNV-1a hash to generate ObjectIds (for FIPs compliance).
Bug fixes:
- Functions incorrectly marked with the "const" compiler attribute are now
marked as "pure", fixes build error when link-time optimization is enabled.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.11.0. This release adds
support for MongoDB 4.0 features. It includes the following additions and
improvements:
- Multi-document transactions, see mongoc_client_session_start_transaction
- New function mongoc_error_has_label to check for specific error labels such
as "TransientTransactionError" or "UnknownTransactionCommitResult" in
error replies. - New functions to subscribe to changes on an entire client or database:
- mongoc_client_watch
- mongoc_database_watch
- New option for change streams, "startAtOperationTime".
- mongoc_collection_count_with_opts is deprecated for two new functions:
- mongoc_collection_count_documents
- mongoc_collection_estimated_document_count
- Support for SCRAM-SHA-256 authentication, including support for non-ASCII
passwords using libicu is an optional dependency. - Faster mongoc_database_get_collection_names_with_opts fetches only names,
not the entire collection metadata.
Additional changes not specific to MongoDB 4.0:
- All "destroy" functions such as mongoc_collection_destroy now ignore a NULL
argument. - The driver now returns an error if you attempt to use "arrayFilters" in an
update with a MongoDB server older than 3.6. - Update functions include a new "upsertedCount" field in the reply document.
- Replace MD5 with FNV-1a hash to generate ObjectIds (for FIPs compliance).
Bug fixes:
- Functions incorrectly marked with the "const" compiler attribute are now
marked as "pure", fixes build error when link-time optimization is enabled.
Links:
Thanks to everyone who contributed to this release.
- A. Jesse Jiryu Davis
- Kevin Albertson
- Evgeni Dobranov
- Spencer McKenney
- Jeremy Mikola
- Roberto C. Sánchez
- Remi Collet
mongo-c-driver 1.10.3
I'm pleased to announce version 1.10.3 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No change since 1.10.2; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.10.3. This release fixes
a crash when parsing binary data from JSON if mongoc_init isn't called.