Releases: mongodb/mongo-c-driver
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.
Links:
mongo-c-driver 1.10.2
I'm pleased to announce version 1.10.2 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
It is my pleasure to announce libbson 1.10.0. This release fixes the installed
library filenames and SONAME on Linux. They had changed unintentionally with the
switch to CMake in 1.10.0; they are now consistent with 1.9.x and previous
releases. Thanks to Roberto C. Sánchez for the fix.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.10.2. This release fixes
the libbson and libmongoc installed library filenames and SONAMEs on Linux.
They had changed unintentionally with the switch to CMake in 1.10.0; they are
now consistent with 1.9.x and previous releases. Thanks to Roberto C. Sánchez
for the fix.
Links:
mongo-c-driver 1.10.1
I'm pleased to announce version 1.10.1 of libbson and libmongoc,
the libraries constituting the MongoDB C Driver.
libbson
No change since 1.10.0; released to keep pace with libmongoc's version.
libmongoc
It is my pleasure to announce the MongoDB C Driver 1.10.1. This release fixes
the following bugs introduced in version 1.10.0:
- Client sessions were not prohibited with unacknowledged write concern and
mongoc_bulk_operation_execute; now they are prohibited. Client sessions have
been prohibited with all other unacknowledged writes since 1.10. - The "arrayFilters" update option, new in MongoDB 3.6 and supported since
libmongoc 1.9.0, was inadvertently prohibited by
mongoc_bulk_operation_update_one_with_opts and
mongoc_bulk_operation_update_many_with_opts in 1.10. The option is now
permitted again. - The mongoc-stat tool for displaying shared counters was disabled on Linux
and not installed; it is now restored.
Links:
Thanks to everyone who contributed to this release.
- A. Jesse Jiryu Davis
- Jeremy Mikola
- Remi Collet