Bug
- [PYTHON-1665] - PyMongo should send aggregate commands with $out to primary nodes
- [PYTHON-1686] - URI Parser fails when some options have invalid values
- [PYTHON-1701] - Test failure test_unpin_for_non_transaction_operation
- [PYTHON-1722] - Test failure - test_test_uri_options_compression-options_Multiple_compressors_are_parsed_correctly
- [PYTHON-1738] - Length field of gridfs files collection documents stored as Int32 instead of int64
- [PYTHON-1739] - Test failure - test_change_stream.TestCollectionChangeStream.test_raises_error_on_missing_id
- [PYTHON-1759] - Command failures on find/getMore do not reset the server's SDAM state
- [PYTHON-1760] - Driver accepts two and one part hostnames in SRV URIs
- [PYTHON-1772] - Test failure - test_transactions.TestTransactionsConvenientAPI mock timer prose tests
- [PYTHON-1831] - Test failure - Spec tests for findAndModify fail
- [PYTHON-1841] - ChangeStream should not resume after errors with NonRetryableChangeStreamError label
- [PYTHON-1843] - BSON C module directly accesses private attributes.
- [PYTHON-1859] - Test failure - Ubuntu 12.04 | serverVersion 3.6 | Sharded
- [PYTHON-1867] - AttributeError: 'Cursor' object has no attribute '_Cursor__killed'
- [PYTHON-1871] - ChangeStreams do not honor user-specified batch_size on the initial aggregate command
- [PYTHON-1872] - Tests: AttributeError: 'SrvMonitor' object has no attribute '_seedlist'
- [PYTHON-1873] - Test failure - TestCMAP
- [PYTHON-1874] - Test failure - MockupDB aggregate tests fails
- [PYTHON-1875] - Improper parsing of json $date without time-offset or time-secfrac
- [PYTHON-1877] - Fix result assertion in change stream spec test
- [PYTHON-1897] - Topology.close can open sockets and background threads
- [PYTHON-1898] - Close topology events executor faster after the topology is garbage collected
- [PYTHON-1901] - Avoid using readConcern snapshot in sharded transaction tests
- [PYTHON-1902] - Connect Timeout not working for DNS timeout (mongodb+srv)
- [PYTHON-1914] - MongoClient.is_locked uses the deprecated Database.current_op method
- [PYTHON-1916] - C message module write_dict encodes and decodes RawBSONDocument
- [PYTHON-1921] - A MongoClient configured for auto encryption cannot be re-used after close()
- [PYTHON-1930] - Pure python BSON decoders don't support memoryviews with offsets
- [PYTHON-1935] - Test failure - test_v2_db_aggregate_Aggregate_with__listLocalSessions_and_allowDiskUse
- [PYTHON-1959] - Key vault operations must use read_concern and write_concern majority
Epic
- [PYTHON-1612] - Python MongoDB 4.2 Support
- [PYTHON-1672] - Implement Connection Monitoring and Pooling spec
- [PYTHON-1676] - Support Client-side Field Level Encryption
- [PYTHON-1694] - Python 4.2 Transactions Support
New Feature
- [PYTHON-1648] - Binary should accept memoryviews/buffer objects
- [PYTHON-1670] - Implement Unified URI Options
- [PYTHON-1671] - Implement Convenient API for Transactions
- [PYTHON-1673] - Support mongos pinning for sharded transactions
- [PYTHON-1674] - Retryable Reads
- [PYTHON-1675] - Support polling SRV records for mongos discovery
- [PYTHON-1677] - Connections survive primary stepdown
- [PYTHON-1684] - Support sharded transactions recovery token
- [PYTHON-1698] - Resync transactions tests to include test with session1 in APM expectations
- [PYTHON-1699] - Support running commands as aggregation
- [PYTHON-1713] - Resync change stream tests to test all new notification types
- [PYTHON-1718] - Resync CRUD spec tests to use transaction spec test format
- [PYTHON-1720] - Support 'startAfter' option to the $changeStream stage
- [PYTHON-1723] - Add support for Zstandard compression
- [PYTHON-1730] - Drivers should use majority write concern when retrying commitTransaction
- [PYTHON-1733] - Regenerate test certificates with SHA256 signatures
- [PYTHON-1737] - Add support for Split-Horizon Topology
- [PYTHON-1740] - Support Retryable Writes on by Default
- [PYTHON-1742] - Support postBatchResumeToken in change streams
- [PYTHON-1754] - Add support for majority read concern level to Aggregation $out
- [PYTHON-1785] - Provide utility encode and decode methods in BSON module
- [PYTHON-1797] - Require retryable writes network error tests to run on mongos 4.2+
- [PYTHON-1798] - Add the ability to specify a pipeline to an update command
- [PYTHON-1803] - Document connection string and URI option precedence rules
- [PYTHON-1829] - Support maxTimeMS for commitTransaction
- [PYTHON-1842] - Add Connection Pool Monitoring events
- [PYTHON-1882] - Add FLE AutoEncryptionOpts class
- [PYTHON-1883] - Support explicit encryption of fields
- [PYTHON-1884] - Support auto encryption for commands
- [PYTHON-1934] - Raise an actionable error message when retryWrites fails due to using an unsupported storage engine
- [PYTHON-1944] - Mark the FLE feature as "Beta" in driver docs
- [PYTHON-1947] - Add codec_options to ClientEncryption class
Task
- [PYTHON-1649] - Bump wire protocol version for 4.2
- [PYTHON-1653] - Resync CRUD tests for new bulkWrite() tests
- [PYTHON-1729] - Update Transactions Retry Example 3 to include read preference
- [PYTHON-1774] - Evergreen XML unit test reporting fails with "no test results found"
- [PYTHON-1793] - countDocuments should use group with _id: 1
- [PYTHON-1794] - Use runOn syntax to specify transaction test requirements
- [PYTHON-1795] - Update transactions test runner to workaround StaleDbVersion distinct bug
- [PYTHON-1801] - Update Transactions count test for MongoDB >= 4.0.7
- [PYTHON-1815] - Add tests for postBatchResumeToken support
- [PYTHON-1816] - Test writes in transactions do not send writeConcern when collection write concern is w=0
- [PYTHON-1817] - Amend change stream missing resume token tests for wire version 8+
- [PYTHON-1827] - Unified URI options follow on work
- [PYTHON-1828] - Send recoveryToken on abortTransaction
- [PYTHON-1830] - Test MongoDB latest on amazon1-2018-test
- [PYTHON-1839] - Deprecate waitQueueMultiple option
- [PYTHON-1845] - Clarify resume token used in resuming and getResumeToken
- [PYTHON-1847] - Documentation for countDocuments MUST mention estimatedDocumentCount
- [PYTHON-1849] - Gevent doctest fails because monkey.patch_all() now returns a boolean
- [PYTHON-1851] - Test that mapReduce fails in a causally consistent session in 4.2
- [PYTHON-1866] - Spec: Finer-grained updates from aggregation via $merge
- [PYTHON-1869] - OS removals for MongoDB 4.2
- [PYTHON-1885] - Update change stream docs example for resume token access
- [PYTHON-1887] - Stop testing 'latest' on archlinux
- [PYTHON-1892] - Database-level aggregation should be tested on server versions 3.6+
- [PYTHON-1905] - Only send fullDocument field with $changeStream pipeline stage when specified by user
- [PYTHON-1906] - Skip new SRV test if dnspython isn't available
- [PYTHON-1926] - Raise an error when attempting to auto encrypt a command if the maxWireVersion is less than 8
- [PYTHON-1939] - [FLE] Implement prose tests for BSON size limits and batch splitting
- [PYTHON-1940] - [FLE] Implement prose tests for views
- [PYTHON-1941] - [FLE] Implement prose tests for Data key and double encryption
- [PYTHON-1942] - [FLE] Implement prose tests for External Key Vault
- [PYTHON-1946] - Rename encryption.Algorithm enum members
- [PYTHON-1950] - ClientEncryption.encrypt should accept key_id as Binary subtype 4 and reject native UUID
- [PYTHON-1955] - Add evergreen testing for client side encryption
- [PYTHON-1957] - Don't use unix socket in default mongocryptd_uri
Improvement
- [PYTHON-1659] - Test deleteMany and updateMany with retryWrites=true
- [PYTHON-1761] - Report invalid SRV records
- [PYTHON-1789] - Support index all paths: update documentation
- [PYTHON-1838] - Discard ServerSessions involved in network errors
- [PYTHON-1858] - Deprecate Database.current_op helper
- [PYTHON-1863] - Mention ObjectId machine/PID bytes removal in 3.8.0 changelog
- [PYTHON-1876] - Test MongoDB 4.2 in Evergreen
- [PYTHON-1890] - Use runOn syntax to specify CRUD test requirements
- [PYTHON-1899] - [FLE] Add a corpus test that exhaustively enumerates all ways to encrypt all BSON value types
- [PYTHON-1900] - Add "connectionError" as a valid "reason" for a ConnectionCheckOutFailedEvent when connection set up fails
- [PYTHON-1909] - Test suite should log tracebacks after a segfault
- [PYTHON-1951] - Cap dnspython dependency at 1.16 on Python 2
- [PYTHON-1952] - Add tests for ClientEncryption.close()
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.