Skip to content

Releases: mongodb/mongo-c-driver

mongo-c-driver 1.15.0

13 Aug 22:49
1.15.0
baa9687
Compare
Choose a tag to compare

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

05 Aug 15:29
Compare
Choose a tag to compare

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

22 Feb 18:18
1.14.0
71d7eae
Compare
Choose a tag to compare

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

24 Jan 20:54
1.13.1
ee4dfea
Compare
Choose a tag to compare

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

17 Sep 19:12
Compare
Choose a tag to compare

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

18 Jul 20:13
1.12.0
a690091
Compare
Choose a tag to compare

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

22 Jun 23:18
1.11.0
44ee444
Compare
Choose a tag to compare

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

19 Jun 18:22
1.10.3
9a329e3
Compare
Choose a tag to compare

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

07 Jun 22:52
1.10.2
062dd9c
Compare
Choose a tag to compare

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

30 May 18:11
1.10.1
4243bb8
Compare
Choose a tag to compare

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