Releases: mongodb/mongo-ruby-driver
2.10.0.rc0
This is a preview of 2.10.0 release, incorporating the following major new features:
- RUBY-1602 MongoDB 4.2 sharded transactions support
- RUBY-1814 Allow applications to set maxTimeMS for commitTransaction
- RUBY-1708 Support postBatchResumeToken in change streams
- RUBY-1786 Add the ability to specify a pipeline to an update command
- RUBY-1721 Implement database-level aggregation
- RUBY-1836 Finer-grained updates from aggregation via $merge
- RUBY-1822 Support providing certificate chains as client certificates
- RUBY-1823 Support adding multiple CA certificates
- RUBY-1685 Disable TLS renegotiation when possible
The following minor improvements were made:
- RUBY-1860 Standardize on :write_concern for write concern options
- RUBY-1867 Perform another round of server selection if server selector waited and is at deadline
- RUBY-1883 Allow query string in MongoDB URI to start with &
- RUBY-1894 Clear connection pools when monitor ismaster times out
- RUBY-1733 withTransaction() should retry commits after a wtimeout
The following bugs have been fixed:
- RUBY-1876 Can't disable retryable read/writes via URI options
- RUBY-1881 Some URI options are unescaped twice
- RUBY-1830 TLS client cert specification via URI options does not work on JRuby
- RUBY-1825 Collections cannot be listed in Atlas free tier due to system filtering
- RUBY-1840 Legacy write retries are used when modern retryable writes are requested on some operations
- RUBY-1854 Collection read preference not passed to find command
- RUBY-1857 Driver invokes WC#unacknowledged? bypassing string/symbol conversions
2.9.1.rc0
This patch release in the 2.9 series fixes two issues:
2.9.0
This release of the Ruby driver adds the following major features:
- A rewrite of the connection pool code with improved monitoring, compliant with CMAP specification
- A modern retryable reads implementation compliant with cross-driver retryable reads specification, enabled by default
- Modern retryable writes are enabled by default
- Legacy retryable writes can be disabled in most cases
- Ability to specify multiple root certificates to the driver
- Ability to pass private key and certificate to driver via URI options
This release also officially deprecates support for Ruby versions less than 2.3. This release and version 2.10.0 will continue supporting Ruby 1.9-2.2, and versions 2.11.0 and newer will require at least Ruby 2.3.
Please review 2.9.0.rc0 and 2.9.0.rc1 for detailed lists of changes made. This release has one change since 2.9.0.rc1 to add retryReads URI option, which was unintentionally omitted in the initial implementation of retryable reads.
2.9.0.rc1
This is a second release candidate for the upcoming 2.9.0 release which primarily improves TLS certificate and private key handling in various environments. The following notable tickets have been resolved:
- RUBY-1822 Support providing certificate chains as client certificates
- RUBY-1823 Support adding multiple CA certificates
- RUBY-1830 Fix TLS connections configured via URI options in JRuby
We expect to release 2.9.0 final in about 1-2 weeks.
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: