Releases: mongodb/mongo-ruby-driver
2.9.0.rc0
This is a preview of the 2.9.0 release, featuring the following major improvements/changes:
- RUBY-1560 Implementation of Connection Monitoring and Pooling spec
- RUBY-1706 Modern retryable writes are enabled by default
- RUBY-1626 Added a knob to turn off legacy retryable writes
- RUBY-1562 Retryable reads implementation
The following minor improvements/changes were also made:
- RUBY-1668 Support 'startAfter' option to the $changeStream stage
- RUBY-1591 Field order of bson documents sent to server changed for better logging
- RUBY-1754 Certificate paths with unescaped slashes can now be specified in URI
- RUBY-1755 Repaired unusability of some URI options due to value conversion to Symbol
- RUBY-1767 Repaired inability to configure TLS verification via URI options
- RUBY-1778 Repaired read concerns not being sent to server on certain operations
- RUBY-1798 Fixed retrieval of a document containing code field via a cursor from 3.0 server triggerring failure handling
We expect to release 2.9.0 final in about 2 weeks.
2.8.0
This feature release of the Ruby driver improves connection- and authentication- related diagnostics as well as streamlines handshake and authentication code.
The following issue has been fixed since 2.8.0.rc0:
Please review 2.8.0.rc0 release notes for the full list of changes.
2.7.2
This is a maintenance release in the 2.7.x series. It fixes one issue in 2.7.1 potentially affecting applications' test suites:
2.8.0.rc0
This release builds on the 2.7.1 release by improving connection- and authentication-related diagnostics as well as streamlining handshake and authentication code.
The following notable tickets have been closed:
- RUBY-1728 Indicate which auth mechanism was used when auth fails
- RUBY-1743 Warn on handshake and auth failures
- RUBY-1744 When handshake/auth fails, indicate which server authentication was attempted against and whether ssl was used
- RUBY-1647 Reset connection pool on non-timeout network errors
- RUBY-1650 Rewrite connection handshake flow to not recurse
- RUBY-1717 Disconnecting connection pool should not reconnect connections
- RUBY-1441 Driver connects to cluster when closing stale sockets
We expect to release 2.8.0 final in about two weeks.
2.7.1
This release is a maintenance release in the 2.7.x series. It primarily improves server monitoring and server selection diagnostics, as well as the convenient transaction API.
The following notable tickets have been closed:
- RUBY-1714 Check client & monitoring threads on server selection failures
- RUBY-1541 Server selection should fail immediately if the cluster has no servers
- RUBY-1715 Log ismaster retries on monitoring connections
- RUBY-1719 Unknown servers are not marked as such in summaries
- RUBY-1578 Driver attempts to read session attributes during response handling even if it determines sessions are not supported
- RUBY-1665 count_documents helper does not start transactions
- RUBY-1654 Implement w:majority when retrying commitTransaction
- RUBY-1693 Add timeout for with_transaction
2.7.0
This feature release of the Ruby driver features an improved SDAM implementation, unified URI options and a preview of the convenient API for transactions.
Please refer to release notes for 2.7.0.rc0 for the complete list of new features and changes.
2.7.0 fixes the following issue identified during the RC process:
2.7.0.rc0
This preview of the upcoming 2.7.0 feature release of the Ruby driver has the following major new features:
- RUBY-1431 SDAM and Server Selection Spec Compliance. Large portions of SDAM code have been rewritten to bring the driver in compliance with published MongoDB driver specifications. No changes to applications using MongoDB are required, however applications should see the following benefits:
- Faster server selection (including during failover in replica sets)
- Faster client initialization
- Better concurrency as more I/O is now done in background threads
- Improved logging and diagnostics of server discovery, topology changes and removal of servers from topology
- Better resiliency to connection and authentication errors
- SDAM events are now published in a more consistent manner
- Monitoring connections no longer authenticate, lessening load on the cluster
- Topology and server description objects are no longer mutated in place, simplifying change tracking for applications/APM implementors
- Locks have been added to synchronize topology updates
- It is possible to wait for background monitoring threads to terminate when closing the client
- RUBY-1559 Unified URI Options. This adds support for a multitude of options in MongoDB URIs to the driver, in a way consistent with other MongoDB-maintained drivers.
- RUBY-1574 Convenient API for Transactions. This adds a
with_transaction
method to session objects to provide an easier way to retry operations in a transaction until they commit successfully.
The following minor improvements have also been made:
- RUBY-1470 Enable SNI on jruby where possible
- RUBY-1608 Implement functionality to enable/disable TLS hostname verification
- RUBY-1629 Sequence connection setup (e.g. auth) events before command events using the connection
The following bugs have been fixed:
- RUBY-1353 max_staleness does not work due to seconds / milliseconds mismatch
- RUBY-1433 OperationError#code not set on duplicate key error
- RUBY-1474 SDAM events are not published when server is marked unknown during handshake
- RUBY-1481 Handshake & auth exceptions may make connections permanently unusable
- RUBY-1550 Error::Parser fails to correctly handle writeErrors
- RUBY-1464 Time offset ignored in aggregation queries when using ActiveSupport::TimeWithZone
- RUBY-1507 isMaster response changing causes nil reference in the session pool
As well, a number of improvements have been made to tutorial and API documentation of the driver. Full list of fixed issues may be found here.
This version of the driver has been tested with Ruby 2.6.
Lacking major issues we expect to release 2.7.0 final in about a week.
2.6.4
This patch level release of the ruby driver has the following significant changes:
Improvements:
RUBY-1470 Enable SNI on jruby where possible
RUBY-1651 Backport sdam logging improvements to 2.6
Bugs fixed:
RUBY-1433 OperationError#code not set on duplicate key error
RUBY-1550 Error::Parser fails to correctly handle writeErrors
RUBY-1507 isMaster response changing causes nil reference in the session pool
Version 2.6.3 was skipped due to a certificate issue.
2.6.2
2.6.1
This patch level release of the ruby driver has the following changes: