Spec Change
- [PYTHON-4575] - Allow valid SRV hostnames with less than 3 parts
- [PYTHON-4936] - Test operations may be an empty array
- [PYTHON-4938] - Clarify write concern rules in the transactions spec
- [PYTHON-4942] - Add test to ensure network errors match isClientError
- [PYTHON-4960] - Update SDAM spec to include error messages for electionId/setVersion mismatches
- [PYTHON-5208] - Test that wait queue timeout errors do not clear the pool
Build Failure
- [PYTHON-5058] - Wheel builds that use Qemu are seg faulting
- [PYTHON-5134] - [BuildFailure] AWS ECS test fails to create temp directory
- [PYTHON-5146] - [Build Failure] AWS ECS Could not find user
- [PYTHON-5147] - [Build Failure] OCSP should not be tested on MongoDB 4.2
- [PYTHON-5155] - Linkcheck failing on FAQ page
- [PYTHON-5164] - Test Failure - mockupdb TestClusterTime
- [PYTHON-5173] - Test Failure - test_continuous_network_errors
- [PYTHON-5178] - Test Failure - test_async_cancellation_closes_change_stream
- [PYTHON-5182] - [Build Failure] OCSP failing to start server
- [PYTHON-5192] - [Build Failure] Tests fail to start server
- [PYTHON-5193] - [Build Failure] mod-wsgi tests are missing c extensions
- [PYTHON-5198] - test_encryption.TestAutomaticDecryptionKeys.test_03_invalid_keyid incorrect regex error
- [PYTHON-5199] - All tests are running with "latest" server
- [PYTHON-5210] - [Build Failure] Unable to install server on Win32 builds
- [PYTHON-5232] - [Build Failure] AWS Lambda test failing on test setup
- [PYTHON-5241] - [Build Failure] AWS Lambda failing due to missing _timeout attribute
- [PYTHON-5255] - OIDC test is failing due to delayed URI parsing
- [PYTHON-5260] - [Build Failure] OCSP SSL handshake failed
- [PYTHON-5268] - Tests using the newest Python version and not their configured one
Bug
- [PYTHON-5166] - db.command({bulkwrite: 1, ...}) throws because 1 is not iterable
- [PYTHON-5172] - Add __repr__ and __eq__ to bson.binary.BinaryVector
- [PYTHON-5202] - WaitQueueTimeoutError causes pool to be cleared
- [PYTHON-5226] - SRV polling dns lookup blocks the asyncio loop
- [PYTHON-5242] - MongoClient does not define all attributes in __init__
- [PYTHON-5270] - Server selection logs remainingTimeMS in seconds not milliseconds
New Feature
- [PYTHON-4580] - Add option to configure DEK cache lifetime
- [PYTHON-4946] - GridFS spec: Add performant "rename all revisions by filename" feature - rename_by_name
- [PYTHON-4947] - GridFS spec: Add performant "delete revisions by filename" feature - delete_by_name
- [PYTHON-5046] - Support $lookup in CSFLE and QE
Task
- [PYTHON-3674] - Simplify transaction options in convenient API doc example code
- [PYTHON-3712] - Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- [PYTHON-4020] - Drivers should unpin connections when ending a session
- [PYTHON-4540] - Use a separate test setup phase written in python
- [PYTHON-4724] - Prohibit AsyncMongoClient from being used across multiple event loops
- [PYTHON-4745] - Document and Test Behavior when User Cancels Async Operation
- [PYTHON-4833] - Add Collection bulk_write benchmarks
- [PYTHON-4939] - Fix bug in CSOT runCursorCommand test
- [PYTHON-5047] - Improve testing of publish workflows
- [PYTHON-5053] - AsyncMongoClient.close() should await all background tasks
- [PYTHON-5062] - Add GitHub Actions CodeQL scanning
- [PYTHON-5071] - Async tests should all share a single event loop
- [PYTHON-5111] - Update datetime_conversion docs
- [PYTHON-5112] - Fix just install
- [PYTHON-5115] - Type validation errors should include the invalid type name
- [PYTHON-5120] - Reduce configureFailPoint duplication in the test suite
- [PYTHON-5129] - Async transaction documentation does not align with actual behavior
- [PYTHON-5131] - Migrate off of Ubuntu 20.04 GitHub Actions Runners
- [PYTHON-5137] - Handle libmongocrypt download in python
- [PYTHON-5138] - Convert setup_tests.py to a cli
- [PYTHON-5142] - Skip non-lb-connection-establishment test on server >=8.1
- [PYTHON-5148] - Update workflows and release process for Kondukto
- [PYTHON-5149] - Convert run-tests.sh to a Python script
- [PYTHON-5151] - Convert kms tests to use python scripts
- [PYTHON-5157] - Convert aws tests to use python scripts
- [PYTHON-5169] - Deprecate Hedged Reads option
- [PYTHON-5180] - Ensure all python projects in mongodb are running nightly
- [PYTHON-5181] - Make it easier to set debugging logging in an Evergreen patch
- [PYTHON-5183] - Fix C Extension building for Windows spawn hosts
- [PYTHON-5184] - Revert skip to non-lb-connection-establishment
- [PYTHON-5185] - Use stable version of Python for perf tests
- [PYTHON-5187] - Add scripts to start and stop a server
- [PYTHON-5189] - Explicitly test drivers on Graviton processors
- [PYTHON-5194] - Test IPv6 literal in SDAM
- [PYTHON-5195] - Convert OCSP tests to use new test scripts
- [PYTHON-5196] - Convert OIDC tests to use new test scripts
- [PYTHON-5203] - Use stable toolchain versions for uv and just binaries
- [PYTHON-5204] - Convert Serverless tests to use new test scripts
- [PYTHON-5205] - Documentation links should use https not http
- [PYTHON-5206] - Convert Atlas Connect and Enterprise Auth tests to use new test scripts
- [PYTHON-5207] - Convert mod_wsgi tests to use the new test runner
- [PYTHON-5213] - Convert AWS Lambda and Search Index tests to use new test scripts
- [PYTHON-5216] - Convert perf tests to use new scripts
- [PYTHON-5217] - Convert Atlas Data Lake Tests to use New Test Scripts
- [PYTHON-5220] - Convert remaining tests to use standard test setup
- [PYTHON-5231] - Finish up test scripts and add documentation for creating a new test suite
- [PYTHON-5233] - Allow python version to be set at the task level
- [PYTHON-5234] - Clean up load balancer variants
- [PYTHON-5236] - Test sharded clusters with requireApiVersion=1
- [PYTHON-5239] - Audit bash scripts for consistency
- [PYTHON-5240] - Add pre-commit hook for config generation
- [PYTHON-5243] - Migrate remaining variants to generated config
- [PYTHON-5245] - Convert remaining tasks to generated config
- [PYTHON-5252] - Add dependency on pymongocrypt 1.13
- [PYTHON-5261] - Clean up compression variants
- [PYTHON-5263] - Convert s3-related functions to generated config
Improvement
- [PYTHON-3636] - MongoClient should perform SRV resolution lazily
- [PYTHON-4471] - Logging records should have a standard field order
- [PYTHON-4493] - Use asyncio protocols instead of sockets for network IO
- [PYTHON-4557] - Add log message for retried commands
- [PYTHON-4579] - Gossiping the cluster time from monitoring connections can result in loss of availability
- [PYTHON-4940] - Add index hint support for distinct command
- [PYTHON-5054] - Investigate changes in SERVER-97071: Ensure stability of resumeTokens across versions
- [PYTHON-5168] - Use logging for client background task errors
- [PYTHON-5219] - Avoid awaiting coroutines while holding pool locks
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.