Spec Change
- [PYTHON-3967] - SDAM unit test sharded/too_new needs to defined wireVersions for host b
- [PYTHON-4605] - Test serverMonitoringMode=poll waits after a successful heartbeat
Build Failure
- [PYTHON-4182] - [Build Failure] test_unpin_after_TransientTransactionError_error_on_abort
- [PYTHON-4398] - [Build Failure] RuntimeError: can't start new thread on Windows Hosts
- [PYTHON-4448] - Stop testing macOS 10.14
- [PYTHON-4509] - Python 3.8 missing on FIPS hosts
- [PYTHON-4538] - Test Failure - coroutine 'AsyncClientContext._check_user_provided' was never awaited
- [PYTHON-4560] - Test failure: test.test_bulk.TestBulkWriteConcern.test_write_concern_failure_unordered
- [PYTHON-4586] - [Build Failure] Invalid hatch invocation
- [PYTHON-4601] - [Build Failure] Azure KMS and GCP KMS setup failures
- [PYTHON-4607] - Test Failure - 'LogRecord' object has no attribute 'message'
- [PYTHON-4613] - Eventlet tests failing with Runner.run() cannot be called from a running event loop
- [PYTHON-4614] - Test Failure - OpenSSL 1.0.2 PyPy 3.10 fails to install hatch
- [PYTHON-4617] - Test Failure - Storage MMAPv1
- [PYTHON-4637] - Azure KMS Build Failure
- [PYTHON-4641] - TestClientBulkWriteTimeout.test_timeout_in_multi_batch_bulk_write failure
- [PYTHON-4643] - Test failure - test_to_list_tailable
- [PYTHON-4644] - Test Failure - cannot remove 'hatchenv/Scripts/python.exe': Permission denied
- [PYTHON-4650] - Test Failure - test_no_batch_splits_if_new_namespace_is_not_too_large
- [PYTHON-4671] - ClientBulkWrite failures on Serverless
- [PYTHON-4701] - Topology logging should use suppress_event
- [PYTHON-4706] - [Build Failure] Cannot install hatch on RHEL 8.3 (zSeries)
- [PYTHON-4735] - Test Failure - TestUnifiedLoggingLoadbalanced
- [PYTHON-4736] - Test Failure - macOS Too many open files
- [PYTHON-4739] - Async TestEncryptedBulkWrite should use AsyncBulkTestBase
- [PYTHON-4753] - [Build Failure] Async tests missing awaits
- [PYTHON-4768] - Test Failure - Atlas connect tests are failing due to unclosed client
Bug
- [PYTHON-2052] - PyMongo does not truncate client metadata document to 512 bytes
- [PYTHON-4532] - Docs pages for unasync generated modules are blank
- [PYTHON-4585] - Cursor.to_list does not apply client's timeoutMS setting
- [PYTHON-4588] - Connection string parser allows invalid passwords, prints passwords
- [PYTHON-4600] - bugfix: handle round trip time being negative because time.monotonic() is not monotonic #1758
- [PYTHON-4640] - ObjectID computation is inefficient when used in a multi-threaded environment
- [PYTHON-4648] - Async is broken on Windows
- [PYTHON-4660] - bulk_write fails with AttributeError when a batch fails with InvalidBSON
- [PYTHON-4663] - dateutil timezones do not work with DATETIME_CLAMP/DATETIME_AUTO
- [PYTHON-4666] - client.bulk_write does not properly check for large documents
- [PYTHON-4667] - client.bulk_write does not handle $clusterTime from error responses
- [PYTHON-4672] - Clarify Reauthentication and Speculative Authentication combination behavior
- [PYTHON-4691] - non-UTC timezones break DATETIME_CLAMP/DATETIME_AUTO
- [PYTHON-4695] - Fix test event loop policy and improve error traceback for ClientBulkWriteException
- [PYTHON-4730] - Failing Async Bulk Tests
- [PYTHON-4740] - Catch and Re-raise Async Timeout error
- [PYTHON-4756] - Optional `pymongo[srv]` extra requirement breaks in 4.8,0
- [PYTHON-4758] - MongoClient with connect=False still generates a resource warning
Epic
- [PYTHON-3079] - Async PyMongo Beta
- [PYTHON-3113] - Easier debugging with standardized logging
- [PYTHON-3233] - Improved Bulk Write API
New Feature
- [PYTHON-3472] - Add log messages to SDAM spec
- [PYTHON-4164] - CSFLE/QE KMIP support "delegated" protocol
- [PYTHON-4206] - QE Range Protocol V2
- [PYTHON-4584] - Add length option to Cursor.to_list for motor compat
Task
- [PYTHON-2925] - Change pymongo so that motor no longer needs to access private cursor apis
- [PYTHON-4021] - Publish TopologyDescriptionChangedEvent on topology close
- [PYTHON-4025] - Update PyMongo Release instructions
- [PYTHON-4150] - Document that server version 3.6 is EOL and will be dropped in the next release
- [PYTHON-4226] - Docs example request: Projection with aggregation expressions
- [PYTHON-4242] - Convert retryable writes spec tests to unified test format
- [PYTHON-4245] - Convert CRUD v1 spec tests to unified test format
- [PYTHON-4249] - Convert retryable reads spec tests to unified test format
- [PYTHON-4266] - Migrate Atlas Data Lake tests to unified test format
- [PYTHON-4267] - Convert read/write concern spec tests to unified test format
- [PYTHON-4392] - Support Range Indexes as GA
- [PYTHON-4396] - Enable tests that require failCommand with appName on initial handshake before 4.9
- [PYTHON-4458] - Test against Python 3.13 beta
- [PYTHON-4480] - Deprecate create=True for Collection
- [PYTHON-4483] - Use hatch as task runner
- [PYTHON-4518] - Clean up EVG S3 handling
- [PYTHON-4524] - Bump maxWireVersion for MongoDB 8.0
- [PYTHON-4526] - Document that DRIVERS_TOOLS needs to be set to run some tox tests
- [PYTHON-4527] - pymongocrypt range GA changes breaks support for rangePreview for existing pymongo versions
- [PYTHON-4529] - Bump minimum pymongocrypt version req to >=1.10 for range v2 and async support
- [PYTHON-4531] - RANGEPREVIEW constant is missing
- [PYTHON-4536] - Fix param doc strings for various methods
- [PYTHON-4551] - Remove Serverless Proxy Incremental Rollout Tests
- [PYTHON-4556] - Migrate macOS tests from MacStadium to AWS
- [PYTHON-4558] - Fix coverage and XML results for async tests
- [PYTHON-4590] - Add type guards to async API methods
- [PYTHON-4596] - Only encode each operation document once for MongoClient.bulk_write
- [PYTHON-4609] - Test suite is taking a long time to run
- [PYTHON-4610] - test_to_list_tailable takes 20 seconds
- [PYTHON-4615] - Compile warning building python 3.8 manylinux wheel
- [PYTHON-4616] - Remove EVG release scripts
- [PYTHON-4630] - Add documentation for MongoClient.bulk_write()
- [PYTHON-4632] - test_connection_timeout_message takes 30 seconds
- [PYTHON-4633] - TestCollectionChangeStream.test_uuid_representations takes 11 seconds
- [PYTHON-4639] - Try migrating Motor tests to PyMongo Async tests
- [PYTHON-4649] - Skip CSOT tests on EVG on MacOS and Windows
- [PYTHON-4651] - Migrate test_client_context.py to async
- [PYTHON-4652] - Remove duplicate async tests in github actions
- [PYTHON-4654] - Clean up Async API to match Motor
- [PYTHON-4656] - Enterprise auth tests are no longer running
- [PYTHON-4659] - Async does not work with PyOpenSSL
- [PYTHON-4661] - Release 4.9
- [PYTHON-4662] - Ensure we are capturing metadata when AsyncMongoClient is used
- [PYTHON-4669] - Update More APIs for Motor Compatibility
- [PYTHON-4673] - Add Async Encryption Tests
- [PYTHON-4692] - Skip clientBulkWrite CSOT tests on MacOS and Windows
- [PYTHON-4698] - Rename the async ClientEncryption to AsyncClientEncryption
- [PYTHON-4704] - Migrate test_bulk.py to async
- [PYTHON-4712] - Docs for encoding/decoding Python types to BSON types is out of date
- [PYTHON-4727] - Migrate test_monitoring.py to async
- [PYTHON-4731] - Explicitly close all MongoClients opened during tests
- [PYTHON-4732] - Migrate test_auth_spec.py to async
- [PYTHON-4733] - Migrate test_auth.py to async
- [PYTHON-4747] - Restore git blame for synchronous files
- [PYTHON-4749] - Add Script to Cherry-Pick PRs
- [PYTHON-4750] - Add support for Python 3.13
- [PYTHON-4752] - Migrate docs links to Internal Docs Where Possible
- [PYTHON-4763] - Migrate test_change_stream.py to async
Improvement
- [PYTHON-3193] - Add ResourceWarning for unclosed MongoClients in __del__
- [PYTHON-4240] - Update test definition in Client-Side encryption tests
- [PYTHON-4279] - Ensure openssl legacy unsafe renegotiation can be configured via the MongoClient
- [PYTHON-4379] - Test that durations are included on relevant pool events
- [PYTHON-4478] - Use single mongos in racy unacknowledged write tests
- [PYTHON-4611] - cryptography deprecation: Properties that return a naïve datetime object have been deprecated. Please switch to this_update_utc
- [PYTHON-4668] - Improve performance of client.bulk_write
- [PYTHON-4690] - Add repr support to bson.tz_util.FixedOffset
- [PYTHON-4703] - MongoClient should default to connect=False on FaaS environments
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.