Skip to content

Commit 3d7d24d

Browse files
[FSSDK-8954] chore: prep 4.1.1 (#422)
* [FSSDK-8954] docs: change full stack to feature experimentation (#420) * [FSSDK-8954] chore: prep for 4.1.1 release (#421)
1 parent 834d09e commit 3d7d24d

File tree

4 files changed

+75
-39
lines changed

4 files changed

+75
-39
lines changed

Diff for: CHANGELOG.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Optimizely Python SDK Changelog
22

3+
## 4.1.1
4+
March 10th, 2023
5+
6+
We updated our README.md and other non-functional code to reflect that this SDK supports both Optimizely Feature Experimentation and Optimizely Full Stack. ([#420](https://github.com/optimizely/python-sdk/pull/420))
7+
38
## 4.1.0
49
July 7th, 2022
510

@@ -30,10 +35,10 @@ January 12th, 2022
3035
September 16th, 2021
3136

3237
### New Features
33-
* Added new public properties to OptimizelyConfig.
38+
* Added new public properties to OptimizelyConfig.
3439
- sdk_key and environment_key [#338] (https://github.com/optimizely/python-sdk/pull/338)
3540
- attributes and events [#339] (https://github.com/optimizely/python-sdk/pull/339)
36-
- experiment_rules, delivery_rules, audiences and audiences in OptimizelyExperiment
41+
- experiment_rules, delivery_rules, audiences and audiences in OptimizelyExperiment
3742
- [#342] (https://github.com/optimizely/python-sdk/pull/342)
3843
- [#351] (https://github.com/optimizely/python-sdk/pull/351/files)
3944
* For details please refer to our documentation page:
@@ -158,7 +163,7 @@ October 28th, 2019
158163
* To configure event batching, set the `batch_size` and `flush_interval` properties when initializing instance of [BatchEventProcessor](https://github.com/optimizely/python-sdk/blob/3.3.x/optimizely/event/event_processor.py#L45).
159164
* Event batching is disabled by default. You can pass in instance of `BatchEventProcessor` when creating `Optimizely` instance to enable event batching.
160165
* Users can subscribe to `LogEvent` notification to be notified of whenever a payload consisting of a batch of user events is handed off to the event dispatcher to send to Optimizely's backend.
161-
* Introduced blocking timeout in `PollingConfigManager`. By default, calls to `get_config` will block for maximum of 10 seconds until config is available.
166+
* Introduced blocking timeout in `PollingConfigManager`. By default, calls to `get_config` will block for maximum of 10 seconds until config is available.
162167

163168
### Bug Fixes:
164169
* Fixed incorrect log message when numeric metric is not used. ([#217](https://github.com/optimizely/python-sdk/pull/217))

Diff for: README.md

+60-30
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,25 @@
33
[![PyPI version](https://badge.fury.io/py/optimizely-sdk.svg)](https://pypi.org/project/optimizely-sdk)
44
[![Build Status](https://travis-ci.org/optimizely/python-sdk.svg?branch=master)](https://travis-ci.org/optimizely/python-sdk)
55
[![Coverage Status](https://coveralls.io/repos/github/optimizely/python-sdk/badge.svg)](https://coveralls.io/github/optimizely/python-sdk)
6-
[![Documentation Status](https://readthedocs.org/projects/optimizely-python-sdk/badge/?version=latest)](https://optimizely-python-sdk.readthedocs.io/en/latest/?badge=latest)
76
[![Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
87

9-
This repository houses the official Python SDK for use with Optimizely
10-
Full Stack and Optimizely Rollouts.
8+
This repository houses the Python SDK for use with Optimizely Feature Experimentation and Optimizely Full Stack (legacy).
119

12-
Optimizely Full Stack is A/B testing and feature flag management for
13-
product development teams. Experiment in any application. Make every
14-
feature on your roadmap an opportunity to learn. Learn more at
15-
<https://www.optimizely.com/platform/full-stack/>, or see the [Full
16-
Stack
17-
documentation](https://docs.developers.optimizely.com/full-stack/docs).
10+
Optimizely Feature Experimentation is an A/B testing and feature management tool for product development teams that enables you to experiment at every step. Using Optimizely Feature Experimentation allows for every feature on your roadmap to be an opportunity to discover hidden insights. Learn more at [Optimizely.com](https://www.optimizely.com/products/experiment/feature-experimentation/), or see the [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome).
1811

19-
Optimizely Rollouts is free feature flags for development teams. Easily
20-
roll out and roll back features in any application without code deploys.
21-
Mitigate risk for every feature on your roadmap. Learn more at
22-
<https://www.optimizely.com/rollouts/>, or see the [Rollouts
23-
documentation](https://docs.developers.optimizely.com/rollouts/docs).
12+
Optimizely Rollouts is [free feature flags](https://www.optimizely.com/free-feature-flagging/) for development teams. You can easily roll out and roll back features in any application without code deploys, mitigating risk for every feature on your roadmap.
2413

25-
## Getting Started
14+
## Get Started
2615

27-
### Installing the SDK
16+
Refer to the [Python SDK's developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/python-sdk) for detailed instructions on getting started with using the SDK.
17+
18+
### Requirements
19+
20+
Version `4.0+`: Python 3.7+, PyPy 3.7+
21+
22+
Version `3.0+`: Python 2.7+, PyPy 3.4+
23+
24+
### Install the SDK
2825

2926
The SDK is available through [PyPi](https://pypi.python.org/pypi?name=optimizely-sdk&:action=display).
3027

@@ -35,9 +32,11 @@ To install:
3532
### Feature Management Access
3633

3734
To access the Feature Management configuration in the Optimizely
38-
dashboard, please contact your Optimizely account executive.
35+
dashboard, please contact your Optimizely customer success manager.
36+
37+
## Use the Python SDK
3938

40-
### Using the SDK
39+
### Initialization
4140

4241
You can initialize the Optimizely instance in three ways: with a datafile, by providing an sdk_key, or by providing an implementation of
4342
[BaseConfigManager](https://github.com/optimizely/python-sdk/tree/master/optimizely/config_manager.py#L32).
@@ -79,7 +78,7 @@ Each method is described below.
7978
config_manager=custom_config_manager
8079
)
8180

82-
#### PollingConfigManager
81+
### PollingConfigManager
8382

8483
The [PollingConfigManager](https://github.com/optimizely/python-sdk/blob/master/optimizely/config_manager.py#L150) asynchronously polls for
8584
datafiles from a specified URL at regular intervals by making HTTP requests.
@@ -120,7 +119,7 @@ used to form the target URL.
120119
You may also provide your own logger, error_handler, or
121120
notification_center.
122121

123-
#### AuthDatafilePollingConfigManager
122+
### AuthDatafilePollingConfigManager
124123

125124
The [AuthDatafilePollingConfigManager](https://github.com/optimizely/python-sdk/blob/master/optimizely/config_manager.py#L375)
126125
implements `PollingConfigManager` and asynchronously polls for authenticated datafiles from a specified URL at regular intervals
@@ -137,7 +136,7 @@ your project and generate an access token for your datafile.
137136

138137
**datafile_access_token** The datafile_access_token is attached to the outbound HTTP request header to authorize the request and fetch the datafile.
139138

140-
#### Advanced configuration
139+
### Advanced configuration
141140

142141
The following properties can be set to override the default
143142
configurations for [PollingConfigManager](#pollingconfigmanager) and [AuthDatafilePollingConfigManager](#authdatafilepollingconfigmanager).
@@ -158,18 +157,18 @@ notifications, use:
158157
notification_center.add_notification_listener(NotificationTypes.OPTIMIZELY_CONFIG_UPDATE, update_callback)
159158
```
160159

161-
For Further details see the Optimizely [Full Stack documentation](https://docs.developers.optimizely.com/full-stack/docs)
160+
For Further details see the Optimizely [Feature Experimentation documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome)
162161
to learn how to set up your first Python project and use the SDK.
163162

164-
## Development
163+
## SDK Development
165164

166165
### Building the SDK
167166

168167
Build and install the SDK with pip, using the following command:
169168

170169
pip install -e .
171170

172-
### Unit tests
171+
### Unit Tests
173172

174173
#### Running all tests
175174

@@ -220,9 +219,40 @@ would be:
220219

221220
Please see [CONTRIBUTING](https://github.com/optimizely/python-sdk/blob/master/CONTRIBUTING.md).
222221

223-
### Additional Code
224-
This software incorporates code from the following open source repos:
225-
requests (Apache-2.0 License: https://github.com/psf/requests/blob/master/LICENSE)
226-
pyOpenSSL (Apache-2.0 License https://github.com/pyca/pyopenssl/blob/main/LICENSE)
227-
cryptography (Apache-2.0 https://github.com/pyca/cryptography/blob/main/LICENSE.APACHE)
228-
idna (BSD 3-Clause License https://github.com/kjd/idna/blob/master/LICENSE.md)
222+
### Credits
223+
224+
This software incorporates code from the following open source projects:
225+
226+
requests (Apache-2.0 License: https://github.com/psf/requests/blob/master/LICENSE)
227+
228+
pyOpenSSL (Apache-2.0 License https://github.com/pyca/pyopenssl/blob/main/LICENSE)
229+
230+
cryptography (Apache-2.0 https://github.com/pyca/cryptography/blob/main/LICENSE.APACHE)
231+
232+
idna (BSD 3-Clause License https://github.com/kjd/idna/blob/master/LICENSE.md)
233+
234+
### Other Optimizely SDKs
235+
236+
- Agent - https://github.com/optimizely/agent
237+
238+
- Android - https://github.com/optimizely/android-sdk
239+
240+
- C# - https://github.com/optimizely/csharp-sdk
241+
242+
- Flutter - https://github.com/optimizely/optimizely-flutter-sdk
243+
244+
- Go - https://github.com/optimizely/go-sdk
245+
246+
- Java - https://github.com/optimizely/java-sdk
247+
248+
- JavaScript - https://github.com/optimizely/javascript-sdk
249+
250+
- PHP - https://github.com/optimizely/php-sdk
251+
252+
- Python - https://github.com/optimizely/python-sdk
253+
254+
- React - https://github.com/optimizely/react-sdk
255+
256+
- Ruby - https://github.com/optimizely/ruby-sdk
257+
258+
- Swift - https://github.com/optimizely/swift-sdk

Diff for: optimizely/version.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2016-2020, Optimizely
1+
# Copyright 2016-2020, 2022-2023, Optimizely
22
# Licensed under the Apache License, Version 2.0 (the "License");
33
# you may not use this file except in compliance with the License.
44
# You may obtain a copy of the License at
@@ -11,5 +11,5 @@
1111
# See the License for the specific language governing permissions and
1212
# limitations under the License.
1313

14-
version_info = (4, 1, 0)
14+
version_info = (4, 1, 1)
1515
__version__ = '.'.join(str(v) for v in version_info)

Diff for: setup.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,17 @@
2424
CHANGELOG = _file.read()
2525

2626
about_text = (
27-
'Optimizely X Full Stack is A/B testing and feature management for product development teams. '
27+
'Optimizely Feature Experimentation is A/B testing and feature management for product development teams. '
2828
'Experiment in any application. Make every feature on your roadmap an opportunity to learn. '
29-
'Learn more at https://www.optimizely.com/products/full-stack/ or see our documentation at '
30-
'https://docs.developers.optimizely.com/full-stack/docs. '
29+
'Learn more at https://www.optimizely.com/products/experiment/feature-experimentation/ or see our documentation at '
30+
'https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome. '
3131
)
3232

3333
setup(
3434
name='optimizely-sdk',
3535
version=__version__,
36-
description='Python SDK for Optimizely X Full Stack.',
36+
description='Python SDK for Optimizely Feature Experimentation, Optimizely Full Stack (legacy), '
37+
'and Optimizely Rollouts.',
3738
long_description=about_text + README + CHANGELOG,
3839
long_description_content_type='text/markdown',
3940
author='Optimizely',

0 commit comments

Comments
 (0)