@kevinAlbs kevinAlbs released this Sep 17, 2018 · 46 commits to master since this release

Assets 3

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

@ajdavis ajdavis released this Jul 18, 2018 · 183 commits to master since this release

Assets 3

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)
Jun 26, 2018
mongo-c-driver Debian release 1.11.0-1

@ajdavis ajdavis released this Jun 22, 2018 · 278 commits to master since this release

Assets 3

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

@ajdavis ajdavis released this Jun 19, 2018 · 375 commits to master since this release

Assets 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:

@ajdavis ajdavis released this Jun 7, 2018 · 375 commits to master since this release

Assets 3

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:

@ajdavis ajdavis released this May 30, 2018 · 375 commits to master since this release

Assets 3

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

@ajdavis ajdavis released this May 21, 2018 · 375 commits to master since this release

Assets 3

I'm pleased to announce version 1.10.0 of libbson and libmongoc, the libraries constituting the MongoDB C Driver.

libbson

This version adds the following features:

  • libbson and libmongoc are now maintained in the mongo-c-driver repository,
    although they are still built as separate libraries, and libbson can still
    be used without libmongoc.
  • Building libbson and libmongoc now requires CMake on all platforms. The
    Autotools build scripts ("configure" and related scripts) have been deleted.
    See the "installing" page for updated instructions.
  • Additional functions for strings of known length (not necessarily null-
    terminated):
    bson_iter_find_w_len
    bson_iter_init_find_w_len
    bson_append_regex_w_len
    bson_decimal128_from_string_w_len

libmongoc

This version drops support for MongoDB 2.6 and adds the following features and bugfixes:

  • libbson and libmongoc are now maintained in the mongo-c-driver repository,
    although they are still built as separate libraries, and libbson can still
    be used without libmongoc.
  • Building libbson and libmongoc now requires CMake on all platforms. The
    Autotools build scripts ("configure" and related scripts) have been deleted.
    See the "installing" page for updated instructions, including the new
    ENABLE_MONGOC option and changes to the ENABLE_BSON option.
  • IPv6 is now fully supported and conforms to RFC-6555. If a hostname has both
    IPv4 and IPv6 DNS records, the driver tries connecting with IPv6 first. If a
    connection can't be established after 250ms then IPv4 is tried in parallel.
    Whichever succeeds connection first cancels the other. The successful DNS
    result is cached for 10 minutes.
  • If CMake is configured with ENABLE_SSL=AUTO (the default), libmongoc now
    uses native TLS libraries on Mac and Windows, and OpenSSL everywhere else.
    Before, it would search for OpenSSL on all platforms and only use native
    TLS on Mac and Windows as a fallback.
  • The driver now handshakes SSL connections to multiple servers in a replica
    set or sharded cluster in parallel, so long as it uses OpenSSL or Windows
    SChannel. (SSL handshakes with Apple's Secure Transport are still serial.)
    A larger receive buffer with SChannel increases performance over slow
    connections.
  • All functions that accept read concern now prohibit it, if MongoDB is too
    old to support it (MongoDB 3.0).
  • Client sessions are now prohibited with unacknowledged writes.
  • mongoc_collection_find_and_modify_with_opts now prohibits write concern if
    MongoDB is too old to support it (MongoDB 3.0).
  • Other helper functions for commands that write, now prohibit write concern
    if MongoDB is too old to support it (pre-3.4):
    mongoc_client_read_write_command_with_opts
    mongoc_client_write_command_with_opts
    mongoc_collection_read_write_command_with_opts
    mongoc_collection_write_command_with_opts
    mongoc_database_read_write_command_with_opts
    mongoc_database_write_command_with_opts
    mongoc_collection_aggregate with $out
    mongoc_collection_drop_index_with_opts
    mongoc_collection_drop_with_opts
    mongoc_collection_rename_with_opts
    mongoc_database_drop_with_opts
    Write concern behavior is unchanged for regular CRUD functions.
  • Setting a negative writeConcern level of -2 or smaller, via the "opts"
    parameter to functions that accept BSON options, is now prohibited. The
    special "w" values -2 through -4 are only used internally. The deprecated
    "w=-1" is still allowed, as a synonym for "w=0".
  • The Kerberos URI option authMechanismProperties=CANONICALIZE_HOST_NAME:true
    is now implemented with the Windows Kerberos provider, SSPI.
  • This repository now includes GDB and LLDB customizations for pretty-printing
    bson_t structs as JSON while debugging. See the "debugging" page.
  • The internal preprocessor symbol HAVE_STRINGS_H has been renamed
    BSON_HAVE_STRINGS_H. If you maintain a handwritten bson-config.h you must
    rename this symbol.
  • The following helper functions do not work with mongoc_client_session_t,
    they are deprecated in favor of running MongoDB commands directly with a
    function like mongoc_client_read_command_with_opts:
    mongoc_client_get_server_status
    mongoc_collection_stats
    mongoc_collection_validate
  • mongoc_cursor_is_alive is now deprecated for mongoc_cursor_more, which is
    functionally equivalent.

Links:

Thanks to everyone who contributed to this release.

  • A. Jesse Jiryu Davis
  • Kevin Albertson
  • Roberto C. Sánchez
  • Jeremy Mikola
  • Xiangyu Yao
  • Jeroen Ooms
  • Derick Rethans
  • Kaitlin Mahar
  • Pavithra Vetriselvan
  • NotSpooky
  • Iulian Rotaru
  • Katherine Walker
  • Mansuro
  • Petr Písař
May 1, 2018
Merge branch 'r1.9' into r1.9-dfsg
May 1, 2018
libmongoc Debian release 1.9.5+dfsg-1