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
- [MOTOR-258] - MongoDB 4.2 Support
- [MOTOR-290] - MongoDB 4.2 Transactions Support
- [MOTOR-375] - MongoDB 4.2 ChangeStream Support
- [MOTOR-384] - Port Python documentation examples to Motor
- [MOTOR-400] - Fix synchro tests with PyMongo 3.9
- [MOTOR-458] - Support Python 3.8
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.