Releases: mongodb/mongo-ruby-driver
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:
2.6.0
This is the Ruby driver release supporting the 4.0 version of the MongoDB server.
It has the following changes and new features:
- RUBY-1267 Automate Atlas connectivity tests
- RUBY-1288 Deprecate MongoDB-CR
- RUBY-1289 Implement SASLPrep
- RUBY-1290 GridFS MD5 digest must be optional
- RUBY-1293 SCRAM-SHA-256 Support
- RUBY-1298 Mongo::Client created with ipv6 address encounters error when duplicated via #with
- RUBY-1317 Implement Transactions spec
- RUBY-1323 Update SCRAM-SHA-256 implementation and tests for spec change
- RUBY-1327 Initial aggregate command for a change stream should not be retried
- RUBY-1331 Errors raised by drivers should include codeName string from server response
- RUBY-1333 More errors should be retryable
- RUBY-1337 mongo cannot detect primary after upgrading from 2.4.3 to 2.5.x
- RUBY-1339 Support nameOnly option in listCollections command
- RUBY-1340 Provide Transactions example for Docs
- RUBY-1341 Validations for read mode
- RUBY-1342 Add helpers and options for Change Streams Follow-on Work
- RUBY-1346 Resync retryable writes tests
- RUBY-1347 Implicit sessions must not be used with parallelCollectionScan
- RUBY-1354 Implement new count API
- RUBY-1362 Implement SASLprep for Ruby < 2.2
- RUBY-1365 Update ChangeStream spec to detail usage of startAtOperationTime
- RUBY-1369 Verify change stream #next resume behavior
- RUBY-1370 Add API-level documentation for restriction of geo commands in count helpers
- RUBY-1373 Implement startAtOperationTime