Skip to content

Releases: mongodb/mongo-ruby-driver

2.7.0.rc0

23 Jan 01:27

Choose a tag to compare

2.7.0.rc0 Pre-release
Pre-release

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:

The following bugs have been fixed:

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

23 Jan 00:45

Choose a tag to compare

2.6.2

13 Aug 18:19

Choose a tag to compare

This patch level release of the ruby driver has the following changes:

  • RUBY-1426 Don't remove unknown secondaries servers from the topology

2.6.1

11 Jul 16:07

Choose a tag to compare

This patch level release of the ruby driver has the following changes:

  • RUBY-1364 Fix bad performance reading large documents over SSL
  • RUBY-1384 Document Session#start_transaction
  • RUBY-1385 Correctly handle read preference in session/transaction code
  • RUBY-1391 Return correct OpenSSL error message rather than a generic one

2.6.0

27 Jun 18:24
b147f78

Choose a tag to compare

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

2.5.3

04 May 18:17

Choose a tag to compare

This patch release has one change:

  • RUBY-1336 Ensure that system collections are not returned from listCollections command.

2.5.2

03 May 20:06

Choose a tag to compare

This patch level release of the ruby driver has the following changes:

  • RUBY-1279 Refactor Operations
  • RUBY-1297 Update server selection tests for read preferences with sharded clusters
  • RUBY-1302 Prohibit using unacknowledged writes with explicit sessions
  • RUBY-1304 Resync GridFS tests to add test for legacy GridFS, where no filename was set
  • RUBY-1313 Deprecate maxScan query option
  • RUBY-1314 Deprecate snapshot option
  • RUBY-1315 Remove ping before selecting server for a write
  • RUBY-1307 Force symbolized config keys
  • RUBY-1321 Update documentation to reflect Symbol deprecation
  • RUBY-1329 NoMethodError when executing an upsert in a bulk write with write_concern w: 0

2.5.1

20 Feb 10:25

Choose a tag to compare

  • RUBY-1243 Test wire version overlap logic
  • RUBY-1283 Enable and configure TCP keepalive by default.
  • RUBY-1300 Decrease likelihood of implicit session leaks.
  • RUBY-1278 Verify that percents are encoded in connection string creds and rsync connection string common driver tests
  • RUBY-1294 Associate a session pool with a cluster instead of a client.
  • RUBY-1291 Use an ENV variable to skip tests relying on external connection.
  • RUBY-1284 Require Forwardable module explicitly in Error::Operation.
  • RUBY-1285 Use socket address to initialize ipv4 resolver when host is localhost.
  • RUBY-1275 Add pipeline example to ChangeStream spec (for docs)
  • Use EventSubscriber singleton and common subscribed client in tests

2.5.0

17 Jan 15:53

Choose a tag to compare

This is the Ruby driver release supporting the 3.6 version of the MongoDB server.

Please note that support for MongoDB server version 2.4 has been dropped with this release.

Also note that we are no longer testing the driver with JRuby on our continuous integration testing platform. We do, however, continue to test with JRuby on TravisCI and encourage users to still report any issues using JRuby with the driver.

This version has all the changes documented for version 2.5.0.beta in addition to the following:

  • RUBY-1205 Support version 3.6 of the MongoDB server
  • RUBY-1246 Add support for a "comment" parameter to the aggregate command
  • RUBY-1254 Improve server compatibility error messages for wire version checks
  • RUBY-1263 Make server description update logging less noisy
  • RUBY-1264 Find and aggregate explain should also send session id
  • RUBY-1230 Causally Consistent Reads support
  • RUBY-1245 Implement Initial DNS Seedlist discovery spec
  • RUBY-1242 Implement Database Enumeration spec (@ryuichi7)
  • RUBY-1229 Support retryable writes
  • RUBY-1234 Improve MapReduce API
  • RUBY-1241 Don't cache IP addresses and update logic for determining primary member
  • RUBY-1273 Implement #inspect on ChangeStream, Session, ServerSession, SessionPool
  • RUBY-1237 Drop support for MongoDB 2.4
  • RUBY-741 Support minPoolSize and maxIdleTimeMS
  • Improve and update Mongo::Client options documentation
  • URI unescape unix domain socket path (@Fudoshiki)

2.5.0.beta

28 Sep 15:23

Choose a tag to compare

2.5.0.beta Pre-release
Pre-release

This is a beta release of the upcoming 2.5.0 driver version supporting MongoDB server version 3.6.
It is not recommended for production use but please try it out in your testing environments with development releases of server 3.6.

It has the following changes and new features:

  • RUBY-1240 Fix warning message about forwarding a private method.
  • RUBY-1239 Send seeds as last argument to ReplicaSet Topology #new.
  • RUBY-1236 Parse localLogicalSessionTimeoutMinutes from isMaster response
  • RUBY-1235 Fix documentation for Collection#find
  • RUBY-1228 Support ChangeStreams
  • RUBY-1227 Check both min_pool_size and max_pool_size and raise a more helpful error.
  • RUBY-1226 Implement drivers session API
  • RUBY-1225 Support OP_MSG
  • RUBY-1224 Array update improvements
  • RUBY-1216 Support OP_COMPRESSED