Release Notes - Motor - Version 2.1 - HTML format

Bug

  • [MOTOR-340] - Test failure - tox setup fails on OSX 10
  • [MOTOR-377] - Test failure - test.asyncio_tests.test_asyncio_client.TestAsyncIOClient.test_reconnect_in_case_connection_closed_by_mongo
  • [MOTOR-379] - Test failure - asyncio_tests.test_asyncio_change_stream.TestAsyncIOChangeStream.test_missing_id
  • [MOTOR-387] - Test failure - tornado_tests.test_motor_client.MotorClientExhaustCursorTest
  • [MOTOR-392] - Test failure - tornado_tests.test_motor_replica_set.MotorReplicaSetTest.test_auth_network_error
  • [MOTOR-397] - Synchro tests fail with "cannot import name _partition"
  • [MOTOR-402] - Fix test.test_cursor.TestCursor.test_delete_not_initialized
  • [MOTOR-403] - Fix test.test_grid_file.TestGridFile.test_survive_cursor_not_found
  • [MOTOR-404] - Add db.aggregate/db.watch/client.watch to synchro tests
  • [MOTOR-405] - Fix test_custom_types failures in synchro test
  • [MOTOR-406] - Windows tox failure: InterpreterNotFound: c:/python/Python36/python.exe
  • [MOTOR-407] - Fix test.test_database.TestDatabaseAggregation.test_database_aggregation_unsupported
  • [MOTOR-409] - Test failure - test_cmap_wait_queue_timeout_must_aggressively_timeout_threads_enqueued_longer_than_waitQueueTimeoutMS
  • [MOTOR-439] - AgnosticGridFSBucket parameters do not match PyMongo's GridFSBucket
  • [MOTOR-442] - Test failures because ASYNC_TEST_TIMEOUT environment variable is not converted to an int/float
  • [MOTOR-467] - AgnosticBaseCursor error when killing an aggregation query in process.
  • [MOTOR-478] - Do not build universal wheels

Epic

New Feature

  • [MOTOR-198] - Support Windows via asyncio and Tornado 5
  • [MOTOR-262] - Test only the initial command in a transaction includes readConcern
  • [MOTOR-279] - Implement Unified URI Options
  • [MOTOR-280] - Implement Convenient API for Transactions
  • [MOTOR-281] - Implement Connection Monitoring and Pooling spec
  • [MOTOR-282] - Support mongos pinning for sharded transactions
  • [MOTOR-283] - Retryable Reads
  • [MOTOR-284] - Support polling SRV records for mongos discovery
  • [MOTOR-286] - Connections survive primary stepdown
  • [MOTOR-288] - Support sharded transactions recovery token
  • [MOTOR-289] - Aggregate command must be sent to a primary if it uses $out
  • [MOTOR-297] - Support 'startAfter' option to the $changeStream stage
  • [MOTOR-298] - Add support for Zstandard compression
  • [MOTOR-299] - Disable TLS renegotiation when possible
  • [MOTOR-305] - Drivers should use majority write concern when retrying commitTransaction
  • [MOTOR-309] - Support Retryable Writes on by Default
  • [MOTOR-311] - Support postBatchResumeToken in change streams
  • [MOTOR-318] - Add support for majority read concern level to Aggregation $out
  • [MOTOR-344] - Allow applications to set maxTimeMS for commitTransaction
  • [MOTOR-364] - Raise an actionable error message when retryWrites fails due to using an unsupported storage engine
  • [MOTOR-376] - Add try_next to core.AgnosticChangeStream
  • [MOTOR-381] - Add missing helpers to AgnosticChangeStream
  • [MOTOR-389] - Update GridFS classes to have the necessary attributes
  • [MOTOR-390] - Update Database class to have aggregate and with_options methods
  • [MOTOR-401] - Add MotorClient.get_default_database
  • [MOTOR-440] - Add session parameter to GridOut class

Task

  • [MOTOR-240] - Allow unencoded subdelimiters in usernames and passwords
  • [MOTOR-265] - Causal Consistency Examples for the Manual
  • [MOTOR-273] - Bump wire protocol version for 4.2
  • [MOTOR-322] - countDocuments should use group with _id: 1
  • [MOTOR-339] - Don't obfuscate full module name when generating framework-specific API classes
  • [MOTOR-347] - Documentation for countDocuments MUST mention estimatedDocumentCount
  • [MOTOR-355] - Update change stream docs example for resume token access
  • [MOTOR-370] - Provide transaction example using new withTransaction API
  • [MOTOR-378] - Motor 2.1 should require 4.0>PyMongo>=3.9
  • [MOTOR-385] - Get existing transactions spec tests to pass with PyMongo 3.9
  • [MOTOR-386] - Test MOTOR with Tornado 6.x
  • [MOTOR-391] - Add retry_reads attribute to MotorClient
  • [MOTOR-398] - Update motor docstrings for PyMongo 3.9
  • [MOTOR-408] - Only send fullDocument field with $changeStream pipeline stage when specified by user
  • [MOTOR-412] - Remove motor transaction spec test runner
  • [MOTOR-413] - Run enterprise auth tests with Python 3
  • [MOTOR-418] - Enable PyMongo's change stream tests via Synchro
  • [MOTOR-443] - Implement prose tests for convenient API for Transactions
  • [MOTOR-444] - Start using ClientSession.in_transaction
  • [MOTOR-459] - TimeoutError changed in Python 3.8
  • [MOTOR-460] - Python 3.8 TypeError: descriptor '__dict__' for 'AgnosticGridFSBucket' objects doesn't apply to a 'MotorGridFSBucket' object
  • [MOTOR-461] - Test Python 3.8 in Evergreen
  • [MOTOR-462] - Add xunit output to synchrotests
  • [MOTOR-464] - Test failure - asyncio_tests.test_example.TestExamples.test_transactions
  • [MOTOR-471] - Update docs for Python 3.8 support
  • [MOTOR-472] - Indicate support for PyPy in setup.py

Improvement

  • [MOTOR-228] - Port Synchrotest to Python 3
  • [MOTOR-237] - Add option for applications to register a custom server selector
  • [MOTOR-263] - Create Change Stream Examples
  • [MOTOR-275] - Add test that reads ignore db/collection readConcern in transaction
  • [MOTOR-276] - Test deleteMany and updateMany with retryWrites=true
  • [MOTOR-343] - Discard ServerSessions involved in network errors
  • [MOTOR-352] - Test MongoDB 4.2 in Evergreen
  • [MOTOR-427] - Provide transaction retry examples for Docs
  • [MOTOR-438] - Incorrect example provided in documentation of list_indexes

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.