Release Notes - Python Driver - Version 4.2 - HTML format

Spec Change

Build Failure

  • [PYTHON-3260] - Test Failure - test_transaction_starts_with_batched_write
  • [PYTHON-3310] - Test Failure - query_type must be str or None, not: <enum 'QueryType'>
  • [PYTHON-3335] - Test Failure - crypt_shared FLE tests fail on Windows/macos
  • [PYTHON-3336] - Test Failure - test_load_balancer failing
  • [PYTHON-3337] - Test Failure - mmapv1 TestUnifiedTestFormatValidPassCollectionDataCreateOptions

Bug

  • [PYTHON-1552] - CorruptGridFile with gridfs after disk is full
  • [PYTHON-2110] - pymongo segfaults when running with mpi4py
  • [PYTHON-2885] - Namespace xyz is a view, not a collection
  • [PYTHON-3048] - BSON C extensions allow encoding a Regex with invalid utf-8
  • [PYTHON-3065] - SRV polling check may incorrectly removes hosts after topology is discovered to be a replica set
  • [PYTHON-3257] - Facing " connection pool paused" issue after upgrading pymongo from 3.12.3 to python 4.1.0
  • [PYTHON-3283] - Remove Generic Typing from the ClientSession Class
  • [PYTHON-3311] - Module "pymongo" does not explicitly export attribute "MongoClient"; implicit reexport disabled
  • [PYTHON-3333] - count_documents and distinct helpers fail in a transaction with directConnection=True
  • [PYTHON-3345] - CSOT rtt heuristic is incompatible with loadBalanced=True mode

Epic

New Feature

  • [PYTHON-3093] - Change streams support for user-facing PIT pre- and post-images
  • [PYTHON-3179] - Add ClientEncryption entity and Key Management API operations to Unified Test Format
  • [PYTHON-3189] - Change Stream event document missing "to" field for rename events
  • [PYTHON-3276] - [pymongo] FLE 1.0 shared library
  • [PYTHON-3288] - [csot] Add pymongo.timeout() context manager API
  • [PYTHON-3289] - [csot] Automatically apply timeoutMS URI option to every operation
  • [PYTHON-3290] - [csot] Define behavior of nesting pymongo.timeout
  • [PYTHON-3298] - Add flag to create_collection to skip listCollections pre-check

Task

  • [PYTHON-2459] - Add support for GridFS to unified test runner
  • [PYTHON-2924] - Server selection load balancing algorithm prose test is flaky
  • [PYTHON-2986] - Update serverless testing for load balancer fronting single proxy
  • [PYTHON-3038] - The doc should clarify that the resulting documents that are produced with upserts are constructed from both the filter and the update params
  • [PYTHON-3153] - Update initial DNS seedlist discovery tests to support dedicated load balancer port
  • [PYTHON-3167] - Use the count command instead of collStats to implement estimatedDocumentCount
  • [PYTHON-3220] - Add CSFLE spec test for auto encryption on a collection with no jsonSchema
  • [PYTHON-3228] - _tmp_session should validate session input
  • [PYTHON-3235] - Drop support for Python 3.6
  • [PYTHON-3242] - Test against MongoDB 6.0
  • [PYTHON-3243] - Pin version of mypy used
  • [PYTHON-3247] - Mitigate user issues caused by change in directConnection defaults in 4.x
  • [PYTHON-3250] - Speed up tests that use majority writeConcern
  • [PYTHON-3253] - Provide FLE 2.0 API example for docs team
  • [PYTHON-3277] - Replace public references to "FLE2" with "Queryable Encryption".
  • [PYTHON-3278] - Builders Fest Demo for MongoDB World
  • [PYTHON-3279] - Replace Broken Software Collection Library Links
  • [PYTHON-3286] - Update expected FLE 2 find payloads in tests
  • [PYTHON-3291] - [csot] Implement timeout error transformation
  • [PYTHON-3292] - Remove ElectionInProgress (216) from ResumableChangeStreamError
  • [PYTHON-3293] - Document Queryable Encryption API as "Public Technical Preview"
  • [PYTHON-3294] - Bump minimum pymongocrypt version to 1.3.0
  • [PYTHON-3297] - Test auto decryption occurs after CommandSucceeded events
  • [PYTHON-3299] - Add Automatic Queryable Encryption Example to Docs
  • [PYTHON-3300] - Add Explicit Queryable Encryption Example to Docs
  • [PYTHON-3309] - Explicit Queryable Encryption doc example needs to utilize index_key_Id
  • [PYTHON-3315] - Remove index_key_id option from ClientEncryption::encrypt
  • [PYTHON-3316] - Add Type Check Test for Transactions
  • [PYTHON-3319] - Require contentionFactor for "Indexed" explicit encryption
  • [PYTHON-3338] - Add versionadded to docs for key management APIs
  • [PYTHON-3339] - Ignore Sourceforge link that is giving 403 Error
  • [PYTHON-3349] - Don't clear entire load balanced pool when serviceId is unknown
  • [PYTHON-3359] - [csot] Remove Database and Collection level timeout override
  • [PYTHON-3362] - [csot] Ignore wtimeout when timeoutMS is configured

Improvement

  • [PYTHON-2683] - Convert change stream spec tests to unified test format
  • [PYTHON-3097] - Language specific examples for AWS Lambda
  • [PYTHON-3187] - Avoid tight poll() loop on pyopenssl connections
  • [PYTHON-3194] - Adopt doc8 checker
  • [PYTHON-3230] - Platform Support: Add Enterprise RHEL 8 (zSeries)
  • [PYTHON-3251] - Make trailing whitespace visible in invalid port exception
  • [PYTHON-3254] - Bump maxWireVersion for MongoDB 6.0
  • [PYTHON-3353] - Improve reliability of SDAM heartbeat error spec tests.
  • [PYTHON-3363] - [csot] Allow change stream to be resumed after a timeout

Edit/Copy Release Notes

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