Repository navigation
fix: Allow openfeature-sdk 0.7 and 0.8 - #38
Merged
Merged
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
jsonbailey
approved these changes
Oct 26, 2026
keelerm84
approved these changes
Oct 28, 2026
tanderson-ld
pushed a commit
that referenced
this pull request
Oct 29, 2026
🤖 I have created a release *beep* *boop* --- ## [0.3.1](0.3.0...0.3.1) (2026-10-29) ### Bug Fixes * Allow openfeature-sdk 0.7 and 0.8 ([#38](#38)) ([4040bce](4040bce)) * Require launchdarkly-server-sdk 8.19 so data source failures stay recoverable ([#42](#42)) ([53f8e8b](53f8e8b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Overview** > **Release Please** PR that publishes **0.3.1** by bumping the version from **0.3.0** in `.release-please-manifest.json`, `lib/ldclient-openfeature/version.rb`, and the `SDK_VERSION` example in `PROVENANCE.md`. > > `CHANGELOG.md` gains a **0.3.1** section (2026-10-29) under **Bug Fixes**, documenting what ships in this release: wider compatibility with **openfeature-sdk** **0.7** and **0.8**, and a minimum **launchdarkly-server-sdk** **8.19** so data source failures remain recoverable. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 21bdcfc. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
kinyoklion
added a commit
that referenced
this pull request
Nov 6, 2026
…chDarkly Ruby SDK 8.19 (#40) Updates the README feature matrix after the OpenFeature Ruby SDK 0.6.6–0.8.1 releases (2026-10-22/23) and LaunchDarkly Ruby SDK 8.19.0. - **Eventing** goes from ✅ to⚠️ , listing two provider gaps: - A data source update that leaves the provider status unchanged is emitted again (fix in #36). - The provider relies on SDK-emitted `PROVIDER_READY`/`PROVIDER_ERROR`, which OpenFeature Ruby SDK 0.7.0 deprecates (tracked in #39). - **Initialization** notes that since LaunchDarkly Ruby SDK 8.19.0 a rejected SDK key is retried, so the constructor waits the full wait time before initialization fails. - **Domains** notes that the provider is not domain-scoped (`domain_scoped?`, OpenFeature Ruby SDK 0.6.7). <details> <summary>Details</summary> - Duplicate events: LaunchDarkly Ruby SDK's `DataSourceUpdateSinkImpl#update_status` broadcasts again when the state is unchanged but there is a new error. `DataSourceStatusListener` emits every broadcast, so one `INTERRUPTED` period can produce several `PROVIDER_STALE` events (OFP 4.2.2). #36 already adds the status de-duplication. - Deprecation: in OpenFeature Ruby SDK 0.7.0 (open-feature/ruby-sdk#353), a provider with `init` but without `emits_lifecycle_events?` takes the legacy path, and the SDK logs a deprecation warning once per provider class. The gemspec's `~> 0.6.1` keeps 0.7 out of range today, and #38 widens it. #39 describes the follow-up and what blocks it: #38, #36, the Bundler cooldown, and a needed OFP 4.2.5 update. - Rejected key: in 8.19.0 the stream and polling data sources report `INTERRUPTED` and retry after any failure, and they go to `OFF` only from `stop`. `@ready` is set only on success, so a rejected key keeps the constructor waiting for the full `wait_for_seconds`. - Other changes in 0.6.6–0.8.1 need no provider change: - Hook inputs are immutable and flag metadata is frozen. The provider builds a new metadata hash on each evaluation. - Clients resolve their domain's provider on every call. - Isolated API instances are supported. The provider includes `EventEmitter`, so the SDK rejects registering one instance with two APIs. - `PROVIDER_RECONCILING`/`PROVIDER_CONTEXT_CHANGED` are static-context events and don't apply to a server provider. - Docs only, so no changelog entry or release. </details> Link to Devin session: https://app.devin.ai/sessions/b215bd8a675f4cc39541f1741d4013b7 Open in Devin Desktop: https://app.devin.ai/desktop/session/b215bd8a675f4cc39541f1741d4013b7?variant=devin Requested by: @kinyoklion [SDK-3423](https://launchdarkly.atlassian.net/browse/SDK-3423) [SDK-3423]: https://launchdarkly.atlassian.net/browse/SDK-3423?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Overview** > Updates the README **feature matrix** to reflect OpenFeature Ruby SDK 0.7.x and LaunchDarkly Ruby SDK **8.19.0** behavior—documentation only, no code changes. > > **Eventing** is downgraded from fully supported to **partially supported (⚠️ )** with notes on two known gaps: duplicate provider events when the data source status stays the same but errors update ([#36](#36)), and reliance on SDK-emitted init lifecycle events that 0.7.0 deprecates ([#39](#39)). > > **Initialization** now explains that rejected SDK keys are retried in 8.19.0, so `init` may block for the full configured wait before reporting failure. **Domains** clarifies the provider is not domain-scoped, so one provider instance can back multiple OpenFeature domains with a shared LaunchDarkly client. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 7cac07d. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Widen the
openfeature-sdkrequirement so the provider can be installed alongside the latest OpenFeature Ruby SDK (0.7.x / 0.8.x).~> 0.6.1→>= 0.6.1, < 0.9. The floor is unchanged. The cap stays below the next 0.x minor because 0.x minors may break.ResolutionDetails) don't touch APIs the provider uses.openfeature-sdk0.8.1 andlaunchdarkly-server-sdk8.19.1. The hello app also evaluates a real flag correctly with 0.8.1.Implementation details
Requirements
How to test
openfeature-sdk0.7+ is less than 7 days old). Then runbundle exec rspec specandbundle exec rubocopwithopenfeature-sdk0.8.1.hello-openfeature-ruby-serveragainst this branch withopenfeature-sdk0.8.1 and an SDK key.Notes / risks
cooldown: 7inGemfile, CI resolvesopenfeature-sdk0.6.5 for about another week. CI therefore covers the floor, and the local run covers 0.8.1.~> 0.8. This would force every consumer to upgrade, and CI would fail until the cooldown passes.PROVIDER_READY/PROVIDER_ERRORfrominitand defineemits_lifecycle_events?returningtrue(spec Appendix E). Evaluation behavior is unaffected.Link to Devin session: https://app.devin.ai/sessions/4d2f01f383664110b813267040a6403a
Open in Devin Desktop: https://app.devin.ai/desktop/session/4d2f01f383664110b813267040a6403a?variant=devin
Note
Cursor Bugbot is generating a summary for commit 693e036. Configure here.