diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e22b8df..304fc378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,29 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/#semantic-versioning-200). +## [2.0.0] - 2026-01-14 +### :crab: Breaking Changes +> [!WARNING] +> - 2.0 removes support for Python 3.8 and 3.9. + +### :magic_wand: Added +* Python 3.12 and 3.13 support ([PR #1052](https://github.com/aws/aws-advanced-python-wrapper/pull/1052)). +* [Simple Read/Write Splitting Plugin](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheSimpleReadWriteSplittingPlugin.md) (`srw`). This plugin adds functionality to switch between endpoints via calls to the Connection#setReadOnly method. It does not rely on cluster topology. It relies purely on the provided endpoints and their DNS resolution ([PR #1048](https://github.com/aws/aws-advanced-python-wrapper/pull/1048)). +* Wrapper resource cleanup method `aws_advanced_python_wrapper.release_resources()`. This method should be called at program exit to properly clean up background threads and resources ([PR #1066](https://github.com/aws/aws-advanced-python-wrapper/pull/1066)). + +### :bug: Fixed +* Sliding expiration cache bug which causes delay upon exit ([PR #1043](https://github.com/aws/aws-advanced-python-wrapper/pull/1043)). +* Unnecessary boto3 call to verify region in IAM plugin which causes performance issues ([PR #1042](https://github.com/aws/aws-advanced-python-wrapper/pull/1042)). +* MySQL connections hanging during garbage collection ([PR #1063](https://github.com/aws/aws-advanced-python-wrapper/pull/1063)). +* Incorrect MySQL host alias query ([PR #1051](https://github.com/aws/aws-advanced-python-wrapper/pull/1051)). +* `ImportError` when MySQL Connector/Python C Extension isn't available ([PR #1038](https://github.com/aws/aws-advanced-python-wrapper/pull/1038)). +* Background threads being created at import time ([PR #1066](https://github.com/aws/aws-advanced-python-wrapper/pull/1066)). + +### :crab: Changed +* Refactor host list provider ([PR #1065](https://github.com/aws/aws-advanced-python-wrapper/pull/1065)). +* Performance optimizations ([PR #1072](https://github.com/aws/aws-advanced-python-wrapper/pull/1072)). +* Update documentation with required db user permissions for Multi-AZ DB Cluster and Blue/Green support ([PR #1061](https://github.com/aws/aws-advanced-python-wrapper/pull/1061)). + ## [1.4.0] - 2025-10-17 ### :magic_wand: Added * [EFM v2](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheHostMonitoringPlugin.md#host-monitoring-plugin-v2), an improved alternate version of the `efm` plugin which addresses issues such as garbage collection and monitoring stability, is now live! @@ -59,6 +82,7 @@ The Amazon Web Services (AWS) Advanced Python Wrapper allows an application to t * Support for PostgreSQL * Support for MySQL +[2.0.0]: https://github.com/aws/aws-advanced-python-wrapper/compare/1.4.0...2.0.0 [1.4.0]: https://github.com/aws/aws-advanced-python-wrapper/compare/1.3.0...1.4.0 [1.3.0]: https://github.com/aws/aws-advanced-python-wrapper/compare/1.2.0...1.3.0 [1.2.0]: https://github.com/aws/aws-advanced-python-wrapper/compare/1.1.1...1.2.0 diff --git a/Maintenance.md b/Maintenance.md index 268afe05..f72f8303 100644 --- a/Maintenance.md +++ b/Maintenance.md @@ -8,6 +8,7 @@ | December 12, 2024 | [Release 1.2.0](https://github.com/aws/aws-advanced-python-wrapper/releases/tag/1.2.0) | | July 28, 2025 | [Release 1.3.0](https://github.com/aws/aws-advanced-python-wrapper/releases/tag/1.3.0) | | October 17, 2025 | [Release 1.4.0](https://github.com/aws/aws-advanced-python-wrapper/releases/tag/1.4.0) | +| January 14, 2026 | [Release 2.0.0](https://github.com/aws/aws-advanced-python-wrapper/releases/tag/2.0.0) | `aws-advanced-python-wrapper` [follows semver](https://semver.org/#semantic-versioning-200) which means we will only release breaking changes in major versions. Generally speaking patches will be released to fix existing problems without @@ -36,7 +37,7 @@ to releases, so you should be able to upgrade to the latest minor version of tha software without encountering incompatible changes (e.g., 1.1.0 → 1.4.x). Sometimes an incompatible change is unavoidable. When this happens, the software’s maintainers will increment -the major version number (e.g., increment from `aws-advanced-python-wrapper` 1.4.0 to `aws-advanced-python-wrapper` 2.0.0). +the major version number (e.g., increment from `aws-advanced-python-wrapper` 2.0.0 to `aws-advanced-python-wrapper` 3.0.0). The last minor version of the previous major version of the software will then enter a maintenance window (e.g., 1.4.x). During the maintenance window, the software will continue to receive bug fixes and security patches, but no new features. @@ -58,6 +59,7 @@ That said, PRs with said back-ports are welcome and will follow the project's re No new releases will result from these changes, but interested parties can create their own distribution from the updated source after the PRs are merged. -| Major Version | Latest Minor Version | Status | Initial Release | Maintenance Window Start | Maintenance Window End | -|---------------|----------------------|---------|-----------------|--------------------------|------------------------| -| 1 | 1.4.0 | Current | May 16, 2024 | May 16, 2024 | N/A | +| Major Version | Latest Minor Version | Status | Initial Release | Maintenance Window Start | Maintenance Window End | +|---------------|----------------------|-------------|---------------------|------------------------------|------------------------| +| 1 | 1.4.0 | Maintenance | May 16, 2024 | January 14, 2026 | January 14, 2027 | +| 2 | 2.0.0 | Current | January 14, 2026 | N/A | N/A | diff --git a/aws_advanced_python_wrapper/driver_info.py b/aws_advanced_python_wrapper/driver_info.py index 64a83a70..049b557f 100644 --- a/aws_advanced_python_wrapper/driver_info.py +++ b/aws_advanced_python_wrapper/driver_info.py @@ -15,4 +15,4 @@ class DriverInfo: DRIVER_NAME = "aws_advanced_python_wrapper" - DRIVER_VERSION = "1.4.0" + DRIVER_VERSION = "2.0.0" diff --git a/pyproject.toml b/pyproject.toml index 1bd93584..84ba6836 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "aws_advanced_python_wrapper" -version = "1.4.0" +version = "2.0.0" description = "Amazon Web Services (AWS) Advanced Python Wrapper" authors = ["Amazon Web Services"] readme = "README.md"