Build Failure
- [PYTHON-3829] - Certificate typecast in encryption breaking build
- [PYTHON-3917] - [Build Failure] Fix handling of warnings in connection string tests
Bug
- [PYTHON-3798] - add error checking and visit for _type_marker_str
- [PYTHON-3800] - An error occurs when the SRV record contains uppercase letters.
- [PYTHON-3831] - Remove references to `_DocumentIn`
- [PYTHON-3904] - NameError: name 'socket' is not defined. Did you mean: '_socket'?
- [PYTHON-3909] - OIDC reauth does not work for bulk write operations
Epic
- [PYTHON-2967] - Modernize Packaging
- [PYTHON-3665] - Ability to create and manage Atlas search indexes in the database
- [PYTHON-3697] - Add type hints for internal pymongo apis
- [PYTHON-3819] - Optimize BSON encoding/decoding performance
New Feature
- [PYTHON-3723] - Add search index management helpers
Task
- [PYTHON-694] - Test mod_wsgi sub interpreters
- [PYTHON-2523] - Reevaluate our dependence on bson-stdint-win32.h
- [PYTHON-2871] - Consider removing custom setup.py doc command
- [PYTHON-2963] - Migrate away from setup.py test
- [PYTHON-2964] - Migrate away from calling setup.py directly to "build" PyMongo
- [PYTHON-2965] - Migrate to a PEP517 compliant build system
- [PYTHON-3511] - Remove Python 2 references from the docs
- [PYTHON-3588] - Expose an API to create a cursor from a command response
- [PYTHON-3681] - Build wheels for Python 3.12 beta
- [PYTHON-3715] - Migrate off of Arch Linux for EG Testing
- [PYTHON-3721] - Stop Testing on AWS Linux 2018
- [PYTHON-3727] - Switch to pytest
- [PYTHON-3729] - Speed up C BSON encoding by using PyObject_GetAttr instead of PyObject_GetAttrString
- [PYTHON-3738] - Migrate to tox from setup.py doc
- [PYTHON-3740] - Add types to helpers.py
- [PYTHON-3749] - Handle sphinx doc build warnings
- [PYTHON-3750] - Add types to server.py
- [PYTHON-3752] - Add types to bulk.py
- [PYTHON-3755] - Add types to aggregation.py
- [PYTHON-3756] - Pin mypy version used in test suite
- [PYTHON-3760] - Add C extension building as part of tox test environment
- [PYTHON-3761] - Add e2e testing against Atlas to the search index management API
- [PYTHON-3762] - Remove global code owners
- [PYTHON-3764] - Add types to settings.py
- [PYTHON-3765] - Add types to server_api.py
- [PYTHON-3766] - Add types to ocsp_cache.py
- [PYTHON-3767] - Add types to ocsp_support.py
- [PYTHON-3769] - Add types to auth_aws.py
- [PYTHON-3770] - Add types to auth_oidc.py
- [PYTHON-3771] - Add types to client_options.py
- [PYTHON-3772] - Add types to change_stream.py
- [PYTHON-3773] - Add types to client_session.py
- [PYTHON-3774] - Update Evergreen run-atlas-tests to use tox + pytest
- [PYTHON-3776] - Add types to collection.py
- [PYTHON-3777] - Add types to command_cursor.py
- [PYTHON-3778] - Add types to common.py
- [PYTHON-3779] - Add types to compression_support.py
- [PYTHON-3780] - Add types to cursor.py
- [PYTHON-3781] - update type for server_selector in TopologySettings
- [PYTHON-3782] - Add types to lock.py
- [PYTHON-3783] - Add types to compression_support.py
- [PYTHON-3784] - Add types to daemon.py
- [PYTHON-3785] - Add types to response.py
- [PYTHON-3786] - Add types to srv_resolver.py
- [PYTHON-3787] - Add types to max_staleness_selectors.py
- [PYTHON-3788] - Add types to server_selectors.py
- [PYTHON-3789] - Use tox for Evergreen mockupdb tests
- [PYTHON-3790] - Standardize Evergreen tox setup
- [PYTHON-3791] - fix access to last_write_date
- [PYTHON-3793] - tox succeeds even with invalid environment
- [PYTHON-3795] - Simplify db.cursor_command api arguments
- [PYTHON-3796] - Typo in FLE queryable encryption example
- [PYTHON-3802] - Add types to database.py
- [PYTHON-3803] - Add types to encryption.py
- [PYTHON-3804] - Add types to errors.py
- [PYTHON-3805] - Add types to hello.py
- [PYTHON-3806] - Add types to message.py
- [PYTHON-3807] - Add types to mongo_client.py
- [PYTHON-3808] - Add types to monitor.py
- [PYTHON-3809] - Add types to monitoring.py
- [PYTHON-3810] - Add types to network.py
- [PYTHON-3811] - Add types to operations.py
- [PYTHON-3812] - Add types to periodic_executor.py
- [PYTHON-3813] - Add types to pool.py
- [PYTHON-3814] - Add types to pyopenssl_context.py
- [PYTHON-3818] - QE automatic encryption example omits the unique index on the key vault
- [PYTHON-3857] - Verify mod_wsgi subinterpreters still work with BSON perf optimizations
- [PYTHON-3859] - Add types to read_concern.py
- [PYTHON-3860] - Add types to read_preferences.py
- [PYTHON-3861] - Add types to results.py
- [PYTHON-3862] - Add types to server_description.py
- [PYTHON-3863] - Add types to server_selectors.py
- [PYTHON-3864] - Add types to socket_checker.py
- [PYTHON-3865] - Add types to ssl_support.py
- [PYTHON-3866] - Add types to topology_description.py
- [PYTHON-3867] - Add types to topology.py
- [PYTHON-3868] - Add types to typings.py
- [PYTHON-3869] - Add types to uri_parser.py
- [PYTHON-3870] - Add types to write_concern.py
- [PYTHON-3877] - Test Python 3.12 on MacOS and build wheel
- [PYTHON-3884] - Replace uses of run-test.sh with tox
- [PYTHON-3887] - Remove custom test command in setup.py
- [PYTHON-3896] - Drop support for pypy3.7
- [PYTHON-3907] - use --disallow-untyped-defs flag in mypy
- [PYTHON-3914] - Release 4.5
Improvement
- [PYTHON-3461] - Test FaaS (AWS Lambda) Behavior Per Driver
- [PYTHON-3758] - Support overflow integers in fallback_encoder
- [PYTHON-3797] - Cache commonly used strings in C extensions
- [PYTHON-3816] - Use PyObject_GetItem instead of PyMapping_GetItemString
- [PYTHON-3817] - Optimize BSON encoding of standard Python dict
- [PYTHON-3820] - Optimize PyObject_CallMethod calls
- [PYTHON-3821] - use overload pattern for _DocumentType
- [PYTHON-3824] - Optimize BSON encoding of standard Python list and tuples
- [PYTHON-3846] - Optimize BSON encoding of large ints
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.