feat: Update to 0.6.x openfeature-sdk.#16
Conversation
Update launchdarkly-server-sdk from ~> 8.4.0 to ~> 8.4 (allows 8.12.3) Update openfeature-sdk from ~> 0.4.0 to ~> 0.6.0 (allows 0.6.4) Update required_ruby_version from >= 3.1 to >= 3.4 (required by openfeature-sdk 0.6.x) Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
The openfeature-sdk 0.6.x requires Ruby >= 3.4, so CI matrix must be updated to use compatible Ruby versions. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
JRuby 9.4 targets Ruby 3.1 compatibility which is incompatible with openfeature-sdk 0.6.x requiring Ruby >= 3.4. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
|
This PR is ready for review. It updates the Ruby OpenFeature provider to work with the latest OpenFeature SDK (0.6.4) and LaunchDarkly Server SDK (8.12.3). Summary of changes:
All 54 tests pass, rubocop is clean, and end-to-end validation with the hello app against a live LaunchDarkly environment was successful. No source code changes were needed — the provider API surface is unchanged between SDK versions. |
JRuby 10.0.x targets Ruby 3.4 compatibility, so it can be used with the new minimum Ruby version requirement. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
| spec.add_runtime_dependency "launchdarkly-server-sdk", "~> 8.4.0" | ||
| spec.add_runtime_dependency "openfeature-sdk", "~> 0.4.0" | ||
| spec.add_runtime_dependency "launchdarkly-server-sdk", "~> 8.4" | ||
| spec.add_runtime_dependency "openfeature-sdk", "~> 0.6.0" |
There was a problem hiding this comment.
Dependency on non-existent gem version breaks installation
High Severity
The openfeature-sdk gem version 0.6.x does not exist on RubyGems — the latest published version is 0.5.0 (January 2026). The constraint ~> 0.6.0 will cause bundle install to fail for every user, making the gem completely unusable. The OpenFeature specification has a 0.6.0 release, but the Ruby SDK gem has not reached that version. The required_ruby_version bump to >= 3.4 is also based on the false premise that openfeature-sdk 0.6.x requires Ruby 3.4; the actual latest (0.5.0) only requires >= 3.1.
Additional Locations (1)
There was a problem hiding this comment.
This is a false positive. The openfeature-sdk gem does have version 0.6.4 published on RubyGems:
$ gem search openfeature-sdk --remote --versions
*** REMOTE GEMS ***
openfeature-sdk (0.6.4)
CI (bundle install) succeeds on all three matrix entries (Ruby 3.4, JRuby 10.0, Windows), confirming the gem resolves and installs correctly. The Ruby 3.4 requirement also comes from the gem itself — openfeature-sdk 0.6.0 added spec.required_ruby_version = ">= 3.4" in its changelog.
🤖 I have created a release *beep* *boop* --- ## [0.2.0](0.1.0...0.2.0) (2026-04-02) ### Features * Update to 0.6.x openfeature-sdk. ([#16](#16)) ([31e7222](31e7222)) --- 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] > **Low Risk** > Low risk release bookkeeping only: updates version strings and release documentation without changing runtime behavior. > > **Overview** > Bumps the gem version from `0.1.0` to `0.2.0` across the release manifest and `lib/ldclient-openfeature/version.rb`. > > Updates release documentation by adding the `0.2.0` section to `CHANGELOG.md` and adjusting `PROVENANCE.md` examples to reference `0.2.0`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c5268a4. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
**Requirements** - [ ] I have added test coverage for new or changed functionality - [x] I have followed the repository's [pull request submission guidelines](../blob/main/CONTRIBUTING.md#submitting-pull-requests) - [x] I have validated my changes against all supported platform versions **Related issues** - [Failing CI job](https://github.com/launchdarkly/openfeature-ruby-server/actions/runs/23911603051/job/69734764063) — `Bundler found conflicting requirements for the Ruby version` when running with Ruby 3.1.7. **Describe the solution you've provided** The `openfeature-sdk ~> 0.6.0` dependency requires Ruby >= 3.4, and the gemspec's `required_ruby_version` was already updated to `>= 3.4` in #16. However, three workflows and the README still referenced Ruby 3.1: 1. **`release-please.yml`** — used `ruby-version: 3.1` for the CI step during release → updated to `3.4` 2. **`manual-publish.yml`** — used `ruby-version: 3.1` for the build-and-test step → updated to `3.4` 3. **`manual-publish-docs.yml`** — used `ruby-version: 3.1` for `setup-ruby` → updated to `3.4` 4. **`README.md`** — stated "Ruby 3.1 and above" → updated to "Ruby 3.4 and above" **Describe alternatives you've considered** - **Widening `openfeature-sdk` to `~> 0.4`** to restore Ruby 3.1 support: Rejected per reviewer feedback — the intent is to keep `openfeature-sdk ~> 0.6.0` and require Ruby 3.4+. **Additional context** The `ci.yml` workflow was already updated to Ruby 3.4 in #16; only the release/publish workflows were missed. **Human review checklist** - [ ] Verify no other files still reference Ruby 3.1 (e.g. grep for `3.1` across `.github/`) Link to Devin session: https://app.devin.ai/sessions/0a8e066ab2c447618bcefa0be007594a Requested by: @kinyoklion <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: updates only CI/release GitHub Actions configuration and README text, with no runtime code changes. Main risk is CI/publish failures if Ruby 3.4 environment assumptions differ from prior runs. > > **Overview** > Aligns automation and documentation with the project’s Ruby 3.4+ requirement by updating GitHub Actions workflows to run build/test, release, and docs publishing using Ruby `3.4` instead of `3.1`. > > Updates the README to state support for Ruby `3.4` and above. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 53daf5e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>


Requirements
Related issues
N/A — routine dependency update to ensure compatibility with the latest OpenFeature SDK and LaunchDarkly Server SDK.
Describe the solution you've provided
Updates the gemspec dependency constraints so the provider works with the latest releases of both SDKs:
launchdarkly-server-sdk~> 8.4.0(only 8.4.x)~> 8.4(any 8.x ≥ 8.4)openfeature-sdk~> 0.4.0(only 0.4.x)~> 0.6.0(0.6.x)Because
openfeature-sdk0.6.0 requires Ruby ≥ 3.4, the gem'srequired_ruby_versionis also raised from>= 3.1to>= 3.4.The CI workflow is updated to match the new Ruby version floor:
All 54 existing tests pass and rubocop is clean with the updated dependencies. No source code changes were required — the provider API surface used (
ResolutionDetails,Reason,ErrorCode,ProviderMetadata) is unchanged between OF SDK 0.4.x and 0.6.x. End-to-end validation was also performed using thehello-openfeature-ruby-serverapp against a live LaunchDarkly environment.Key items for review
openfeature-sdk0.6.x and narrows the set of supported Ruby versions.>= 3.4. JRuby 10.0.x targets Ruby 3.4 and CI passes, but it is a relatively new release — worth a sanity check.setProvidertimeout; this provider does not use that API, so no code changes needed, but worth a quick sanity check.Describe alternatives you've considered
openfeature-sdk ~> 0.5.0instead of~> 0.6.0to keep Ruby 3.1 support. This was rejected because the task requires compatibility with the latest OpenFeature SDK (0.6.4).Additional context
Devin session | Requested by @kinyoklion
Note
Medium Risk
Dependency and Ruby version floor bumps can introduce compatibility issues for consumers and CI coverage changes may miss regressions on older Rubies/JRuby variants.
Overview
Updates the gem's runtime dependency constraints to allow newer
launchdarkly-server-sdk8.x (>= 8.4) and to requireopenfeature-sdk~> 0.6.0.Raises the minimum supported Ruby from
>= 3.1to>= 3.4and aligns CI to test Ruby3.4(Linux/Windows) with JRuby updated tojruby-10.0(docs build still skipped on JRuby).Written by Cursor Bugbot for commit 825d954. This will update automatically on new commits. Configure here.