Spec Change
- [PYTHON-2554] - Support $merge and $out executing on secondaries
- [PYTHON-2863] - Allow hint for unacknowledged writes using OP_MSG when supported by the server
- [PYTHON-2931] - Server selection lacks guidance on using $readPreference global command argument for OP_MSG
- [PYTHON-2956] - Drivers should check out an implicit session only after checking out a connection
- [PYTHON-2957] - Support 'let' option for multiple CRUD commands
- [PYTHON-3119] - getMore helper should explicitly send inherited comment
Bug
- [PYTHON-3041] - Cannot initiate a replica set with pymongo>=4
- [PYTHON-3075] - bulk_write does not apply CodecOptions to upserted_ids result
- [PYTHON-3078] - Remove Use of Unsupported NoReturn Type Class
- [PYTHON-3084] - Collection is defined like Iterable but actually isn’t
- [PYTHON-3137] - Handle falsey values for "let" parameter
- [PYTHON-3164] - Outdated link from PyMongo docs to community forum
- [PYTHON-3186] - AWS Lambda/FaaS pause and resume behavior causes SDAM heartbeats to timeout
Epic
- [PYTHON-2432] - Add support for inline type hints
- [PYTHON-3139] - Python Code Formatting
New Feature
- [PYTHON-2682] - Add support for the comment field to all helpers
- [PYTHON-3061] - Add 'let' option to ReplaceOptions
- [PYTHON-3068] - Add 'let' option to bulk_write models (UpdateOne, ReplaceOne, etc)
- [PYTHON-3092] - Add Type Discovery Files
Task
- [PYTHON-1596] - Test on RHEL 7 FIPS
- [PYTHON-1643] - Resync read write concern tests to add new read concern levels
- [PYTHON-1834] - Use a code formatter
- [PYTHON-2086] - Verify max set version and max election id on topologies in SDAM spec tests
- [PYTHON-2147] - OCSP callback should use the verified peer certificate chain to find the cert issuer
- [PYTHON-2160] - Find alternative to Google Groups email addresses
- [PYTHON-2353] - Update create_collection docs with more options
- [PYTHON-2473] - Migrate community pull request testing to github actions
- [PYTHON-2585] - Remove legacy multi-auth code (__all_credentials)
- [PYTHON-2763] - Cleanup check_keys and remove $clusterTime workarounds
- [PYTHON-2858] - Use OP_MSG to authenticate if server supports OP_MSG
- [PYTHON-2888] - Migrate uses of json.send to perf.send in Evergreen project YAML
- [PYTHON-2951] - Drivers should retry operations if connection handshake fails
- [PYTHON-3026] - Test Failure - Windows Python 3.6 fails to install cryptography
- [PYTHON-3040] - Remove srvMaxHosts tests expecting an error for invalid values
- [PYTHON-3042] - Migrate OCSP testing to Ubuntu 20.04
- [PYTHON-3043] - Test mod_wsgi with Python 3.10
- [PYTHON-3046] - Document support for more unicode_decode_error_handler values
- [PYTHON-3049] - Test with PyPy 3.8
- [PYTHON-3058] - Bump maxWireVersion for MongoDB 5.2
- [PYTHON-3071] - [DevOps] Merge and improve resync_specs.sh
- [PYTHON-3072] - Add an Address Type Alias
- [PYTHON-3073] - Copy the unit tests from pymongo-stubs into pymongo
- [PYTHON-3074] - Add documentation for type hints
- [PYTHON-3109] - Test against latest rapid releases
- [PYTHON-3110] - Remove use of example.com in Client Side Encryption prose tests
- [PYTHON-3111] - Rename "Versioned API" to "Stable API" in documentation
- [PYTHON-3123] - Convert sessions spec tests to unified test format
- [PYTHON-3127] - Snapshot Query Examples for the Manual
- [PYTHON-3131] - Test Failure - test_mypy on macos + auth
- [PYTHON-3136] - [DevOps] Resync-specs.sh removes ignored files from working tree
- [PYTHON-3138] - Remove or update Copying a Database example
- [PYTHON-3141] - Add slotscheck to pre-commit checks
- [PYTHON-3142] - Test Failure - test_pooling.TestPooling.test_maxConnecting
- [PYTHON-3146] - Test Failure - Could not import extension sphinxcontrib.shellcheck
- [PYTHON-3147] - Test Failure - MONGODB-AWS Auth Ubuntu 18.04
- [PYTHON-3155] - Sync CRUD spec tests - server version incompatibility for bulkWrite updateOne and updateMany server-side error tests
- [PYTHON-3159] - AttributeError: 'ZlibContext' object has no attribute 'compress'
- [PYTHON-3160] - Test Failure - mmapv1
- [PYTHON-3171] - Add usage of NoReturn annotation
- [PYTHON-3172] - Drop support for Python 3.6.0 and 3.6.1, require >=3.6.2
- [PYTHON-3173] - Test Failure - test_examples.TestVersionedApiExamples.test_versioned_api_migration
- [PYTHON-3174] - Remove noisy Topology has THREADS RUNNING check for main test client
- [PYTHON-3180] - Perf test are failing due to using Python 3.6.0
- [PYTHON-3185] - Pre-Commit Needs an Upgrade
- [PYTHON-3190] - Test Failure - doctests failing cannot import name 'TypedDict'
- [PYTHON-3191] - Test Failure - Versioned API requireApiVersion1
Improvement
- [PYTHON-1864] - Don't send $readPreference to standalone servers
- [PYTHON-2203] - Add tests for allowed cases when authSource is given but username is not
- [PYTHON-2406] - Clean up of tools documentation page
- [PYTHON-2952] - Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY
- [PYTHON-3052] - Add Typings to PyMongo Itself
- [PYTHON-3060] - Add typings to pymongo package
- [PYTHON-3062] - Make Regex generic
- [PYTHON-3064] - Add typings to test package
- [PYTHON-3085] - Audit consistent and correct types for _DocumentOut
- [PYTHON-3086] - Fix bulk_write typing
- [PYTHON-3088] - Update load balancer tests to support dedicated load balancer port
- [PYTHON-3090] - Clean up Database Command Typing
- [PYTHON-3120] - Set up flake8 linting
- [PYTHON-3124] - _WriteResult subclasses redefine "__acknowledged" slot
- [PYTHON-3157] - Update Release Documentation to Include Github Releases
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.