Releases: mongodb/mongo-ruby-driver
2.21.0
Version 2.21.0 of the MongoDB Ruby Driver is now available.
Release Highlights
- RUBY-2523: Introducing "Client-Side Operations Timeout" (CSOT). Most timeout-related options have been deprecated and unified under a single, new
timeout_ms
option. Deprecated options includesocket_timeout
,wait_queue_timeout
,wtimeout
,max_time_ms
, andmax_commit_time_ms
. - RUBY-3503: Bump maxWireVersion for server 8.0 support.
- RUBY-3392 and RUBY-3457: Support for range v2 queries with queryable encryption, including a new
trim_factor
parameter. - RUBY-3463: Fixed connection issues in load-balanced topologies caused by cursors incorrectly releasing the connection between operations.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 2.21.0 mongo
What's Changed
- RUBY-3414 Re-enable serverless by @comandeo-mongo in #2885
- DOP-4704: Remove docs/ directory that has been moved to docs-ruby by @i80and in #2883
- RUBY-3514 pointer to docs by @adviti-mishra in #2888
- RUBY-3503 Bump the max wire version from 21 to 25 for server 8.0 compatibility by @adviti-mishra in #2887
- RUBY-2523 Client Side Operations Timeout by @comandeo-mongo in #2882
- RUBY-3463 Fix cursor behaviour on load balanced by @comandeo-mongo in #2893
- RUBY-3392 Support QE Range v2 by @comandeo-mongo in #2894
- RUBY-3544 prepare for 2.21.0 by @jamis in #2895
New Contributors
- @i80and made their first contribution in #2883
- @adviti-mishra made their first contribution in #2888
Full Changelog: v2.20.1...v2.21.0
2.20.1
Version 2.20.1 of the MongoDB Ruby Driver is now available.
Release Highlights
This patch release includes one bug fix, and one documentation update:
- RUBY-3496 Certain retryable errors were not being retried when legacy retries were enabled. Thank you to Joe Lim for the PR!
- RUBY-3434 Documentation was added/improved to suggest how to configure Mongoid for use with forking web servers. Thank you to Johnny Shields for the PR!
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 2.20.1 mongo
What's Changed
- RUBY-3434: Improve documentation for forking servers by @johnnyshields in #2856
- DRIVERS-2769 Add test for unknown auth mechanism by @comandeo-mongo in #2858
- DOCSP-38547 Update Quick Start Title by @jordan-smith721 in #2864
- RUBY-3500 Fix failing test configurations by @comandeo-mongo in #2879
- RUBY-3496 Fix legacy read pool retry error by @joelim41 in #2878
Full Changelog: v2.20.0...v2.20.1
2.20.0
Version 2.20.0 of the Ruby driver for MongoDB is released. This adds the following new features:
- Connection strings no longer require a slash between the hosts and the options. E.g., "mongodb://example.com?w=1" and "mongodb://example.com/?w=1" are both valid connection strings now. (https://jira.mongodb.org/browse/RUBY-3329)
- Container runtime and orchestration metadata for the client environment are now sent to the server for analytics purposes. (https://jira.mongodb.org/browse/RUBY-3298)
- When connecting to a CosmosDB (Azure) or DocumentDB (Amazon) instance, a warning message will now be logged. (https://jira.mongodb.org/browse/RUBY-3296)
- When attempting a retry of a read or write operation in a sharded topology, the retry will be attempted on a different mongos instance, if possible. (https://jira.mongodb.org/browse/RUBY-2748)
- Add support for the newly-released Ruby-BSON version 5.0.
- Support for Ruby 2.5 and 2.6 has been discontinued. Support for Ruby 2.7 and JRuby 9.2 has been deprecated, and will be discontinued in a future driver version. Support for JRuby 9.4 has been added.
This release also fixes the following user-facing issues:
- The driver will now raise an error if
start_transaction
is invoked and the server deployment does not support transactions. (https://jira.mongodb.org/browse/RUBY-1791) - Encountering a network error when a session is live will mark the session dirty and discard it, preventing the session from being reused when it is likely to fail. (https://jira.mongodb.org/browse/RUBY-1813)
- Tailable cursors would terminate early, after reading existing documents, instead of waiting for more. (https://jira.mongodb.org/browse/RUBY-3332)
- There was an issue where writes could fail with an exception if no session was active. (https://jira.mongodb.org/browse/RUBY-3358)
2.19.3
This is a patch release that adds support for:
2.19.2
This is a patch release that fixes the following issue:
2.18.3
This is a patch release that fixes the following issue:
2.17.4
This is a patch release that fixes the following issue:
2.16.4
This is a patch release that fixes the following issue:
2.19.1
This patch release in the 2.19 series fixes the following issue:
RUBY-3284 Connection Pool does not open new connections when needed
2.19.0
This feature release of the Ruby driver supports MongoDB version 7.0. It includes the following new features:
- RUBY-3066 Cache AWS Credentials Where Possible
- RUBY-2732 Add native support for AWS IAM Roles for service accounts, EKS in particular
- RUBY-3049 Provide access to raw result document when the server returns an error for a command
- RUBY-2989 Obtain AWS credentials for CSFLE in the same way as for MONGODB-AWS
- RUBY-3088 Support the Azure VM-assigned Managed Identity for Automatic KMS Credentials
- RUBY-3005 Support for Range Indexes
- RUBY-2512 Support AWS authentication with temporary credentials in CSFLE
- RUBY-3062 Add support for GCP attached service accounts when using GCP KMS
The following issues were addressed:
- RUBY-3079 Propagate Original Error for Write Errors Labeled NoWritesPerformed
- RUBY-3104 Collection create method does not support some options
- RUBY-3095 SMC options are not correctly converted to Ruby options
The following minor improvements were made:
- RUBY-3252 Show user friendly error if ffi is not installed
- RUBY-3052 Automatically create Queryable Encryption keys
- RUBY-3185 Remove getNonce command usage for 6.2+
- RUBY-3187 Permit tlsDisableOCSPEndpointCheck in KMS TLS options
- RUBY-2495 Rate limit new connection creations (maxConnecting)
- RUBY-2927 Preemptively cancel in progress operations when SDAM heartbeats timeout
- RUBY-1768 URI serialization to string
- RUBY-2609 Enable TCP_USER_TIMEOUT by default when possible
- RUBY-3105 Swallow SocketError when closing cursor
- RUBY-3068 Expose rich field information in the updateDescription
- RUBY-1595 Improve error reporting when symbol/string is passed as read preference
- RUBY-3081 Do not try to connect to mongocryptd if shared library is available