|
1 | 1 | # Optimizely Python SDK Changelog |
2 | 2 |
|
| 3 | +## 5.3.0 |
| 4 | +November 13th, 2025 |
| 5 | + |
| 6 | +This release introduces **Contextual Multi-Armed Bandit (CMAB)** support in the Optimizely Python SDK along with several enhancements, bug fixes, and infrastructure improvements. |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +### New Features |
| 11 | + |
| 12 | +#### **CMAB Support** |
| 13 | + |
| 14 | +A major addition in this release is support for **Contextual Multi-Armed Bandit (CMAB)**, enabling adaptive experimentation based on contextual user data. |
| 15 | + |
| 16 | +The CMAB feature includes: |
| 17 | + |
| 18 | +- CMAB Client and Service implementations to communicate with CMAB APIs ([#453](https://github.com/optimizely/python-sdk/pull/453), [#455](https://github.com/optimizely/python-sdk/pull/455)) |
| 19 | +- Decision Service updates to handle CMAB-based decisioning ([#457](https://github.com/optimizely/python-sdk/pull/457)) |
| 20 | +- Impression event updates to include CMAB UUID ([#458](https://github.com/optimizely/python-sdk/pull/458)) |
| 21 | +- Cache system enhancements including a new `remove()` method for CMAB cache ([#454](https://github.com/optimizely/python-sdk/pull/454)) |
| 22 | +- Configuration options to customize CMAB cache parameters ([#463](https://github.com/optimizely/python-sdk/pull/463)) |
| 23 | +- Exposure of CMAB prediction endpoint for programmatic access ([#466](https://github.com/optimizely/python-sdk/pull/466)) |
| 24 | + |
| 25 | +These updates collectively enable Python SDK users to leverage machine learning–driven bandit optimization strategies within Optimizely Feature Experimentation. |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +#### **Multi-Region Data Hosting** |
| 30 | + |
| 31 | +- Added SDK support for multi-region data hosting, allowing projects to specify their data residency region ([#459](https://github.com/optimizely/python-sdk/pull/459)). |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +### Security Fixes |
| 36 | + |
| 37 | +- Addressed a CSRF security warning by properly importing and registering `CSRFProtect` |
| 38 | + ([#448](https://github.com/optimizely/python-sdk/pull/448), [#450](https://github.com/optimizely/python-sdk/pull/450), [#452](https://github.com/optimizely/python-sdk/pull/452)). |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +### Enhancements |
| 43 | + |
| 44 | +- Updated project configuration to track CMAB properties ([#451](https://github.com/optimizely/python-sdk/pull/451)). |
| 45 | +- Removed unused `testapp` folder from tests as part of maintenance cleanup ([#461](https://github.com/optimizely/python-sdk/pull/461)). |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +### Bug Fixes |
| 50 | + |
| 51 | +- Fixed concurrency issues in CMAB service to ensure thread-safe cache and decision logic ([#462](https://github.com/optimizely/python-sdk/pull/462)). |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +### New Contributors |
| 56 | + |
| 57 | +- [@esrakartalOpt](https://github.com/esrakartalOpt) made their first contribution in [#459](https://github.com/optimizely/python-sdk/pull/459). |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | + |
3 | 62 | ## 5.2.0 |
4 | 63 | February 26, 2025 |
5 | 64 |
|
|
0 commit comments