From 69a9b4487e764c8661e47d7d59e52fc121c4d67e Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2026 14:58:01 +0000 Subject: [PATCH 1/2] docs: Add an OpenFeature feature matrix to the README Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com> --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index f829dd8..8e71bec 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,26 @@ This provider is designed primarily for use in multi-user systems such as web se This version of the LaunchDarkly provider works with Python 3.9 and above. +## Feature matrix + +This matrix mirrors the [feature matrix of the OpenFeature SDK for Python](https://github.com/open-feature/python-sdk#-features) and describes what this provider supports. Rows which are not supported state whether the limitation comes from the OpenFeature Python SDK or from the provider. + +| Status | Feature | Notes | +|--------|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ✅ | Providers | Evaluates boolean, string, integer, float, and object flags through the LaunchDarkly Python SDK. | +| ✅ | Targeting | The `EvaluationContext` is converted to a LaunchDarkly single or multi-context. See [OpenFeature Specific Considerations](#openfeature-specific-considerations). | +| ✅ | Hooks | Hooks are registered on the OpenFeature API and client; the provider requires no additional support and its results are visible to hooks, including [flag metadata](#flag-metadata). | +| ✅ | Logging | The provider logs through the logging configuration of the `Config` it is given. | +| ✅ | Domains | Domains bind clients to providers in the OpenFeature SDK; a separate provider instance may be registered per domain. | +| ✅ | Eventing | LaunchDarkly data source status changes are emitted as `PROVIDER_READY`, `PROVIDER_STALE` and `PROVIDER_ERROR`; flag changes as `PROVIDER_CONFIGURATION_CHANGED` with the changed flag key. | +| ⚠️ | Initialization | The provider's `initialize` reports whether the LaunchDarkly client became ready, and a failure is reported as a non-fatal error so that cached or fallback flag data is still evaluated. It has no timeout of its own and waits until the data source becomes valid or permanently fails: [#55](https://github.com/launchdarkly/openfeature-python-server/issues/55). | +| ✅ | Shutdown | `shutdown` closes the LaunchDarkly client; a closed client cannot be restarted, so a new provider instance is required afterward. | +| ✅ | Transaction Context Propagation | Provided by the OpenFeature SDK, which merges the transaction context into the evaluation context before the provider is called; no provider support is required. | +| ✅ | Extending | The underlying LaunchDarkly client is available through the `client` property. | +| ✅ | Flag metadata | LaunchDarkly evaluation reason details are returned as OpenFeature flag metadata. See [Flag Metadata](#flag-metadata). | + +Supported: ✅ | Partially supported: ⚠️ | Not supported: ❌ + ## Getting started ### Requisites From 5f985fb4d1438004a9272ed941103719e1663017 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2026 15:01:43 +0000 Subject: [PATCH 2/2] docs: Complete the Python OpenFeature feature matrix Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com> --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e71bec..a47bf55 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,8 @@ This matrix mirrors the [feature matrix of the OpenFeature SDK for Python](https | ✅ | Logging | The provider logs through the logging configuration of the `Config` it is given. | | ✅ | Domains | Domains bind clients to providers in the OpenFeature SDK; a separate provider instance may be registered per domain. | | ✅ | Eventing | LaunchDarkly data source status changes are emitted as `PROVIDER_READY`, `PROVIDER_STALE` and `PROVIDER_ERROR`; flag changes as `PROVIDER_CONFIGURATION_CHANGED` with the changed flag key. | -| ⚠️ | Initialization | The provider's `initialize` reports whether the LaunchDarkly client became ready, and a failure is reported as a non-fatal error so that cached or fallback flag data is still evaluated. It has no timeout of its own and waits until the data source becomes valid or permanently fails: [#55](https://github.com/launchdarkly/openfeature-python-server/issues/55). | +| ✅ | Tracking | `track` sends a LaunchDarkly custom event for the evaluation context, with the tracking event value and remaining details attached. | +| ⚠️ | Initialization | `initialize` reports whether the LaunchDarkly client became ready. It has no timeout of its own and waits until the data source becomes valid or permanently fails: [#55](https://github.com/launchdarkly/openfeature-python-server/issues/55). | | ✅ | Shutdown | `shutdown` closes the LaunchDarkly client; a closed client cannot be restarted, so a new provider instance is required afterward. | | ✅ | Transaction Context Propagation | Provided by the OpenFeature SDK, which merges the transaction context into the evaluation context before the provider is called; no provider support is required. | | ✅ | Extending | The underlying LaunchDarkly client is available through the `client` property. |