Skip to content

feat: Update to 0.6.x openfeature-sdk.#16

Merged
kinyoklion merged 4 commits intomainfrom
devin/1773048008-update-ruby-deps
Mar 13, 2026
Merged

feat: Update to 0.6.x openfeature-sdk.#16
kinyoklion merged 4 commits intomainfrom
devin/1773048008-update-ruby-deps

Conversation

@kinyoklion
Copy link
Copy Markdown
Member

@kinyoklion kinyoklion commented Mar 9, 2026

Requirements

  • I have added test coverage for new or changed functionality
  • I have followed the repository's pull request submission guidelines
  • I have validated my changes against all supported platform versions

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:

Dependency Before After Latest resolved
launchdarkly-server-sdk ~> 8.4.0 (only 8.4.x) ~> 8.4 (any 8.x ≥ 8.4) 8.12.3
openfeature-sdk ~> 0.4.0 (only 0.4.x) ~> 0.6.0 (0.6.x) 0.6.4

Because openfeature-sdk 0.6.0 requires Ruby ≥ 3.4, the gem's required_ruby_version is also raised from >= 3.1 to >= 3.4.

The CI workflow is updated to match the new Ruby version floor:

  • Linux matrix: Ruby 3.1, 3.2 replaced with Ruby 3.4
  • Windows job: Ruby 3.1 → 3.4
  • JRuby 9.4 upgraded to JRuby 10.0 (10.0.x targets Ruby 3.4 compatibility)

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 the hello-openfeature-ruby-server app against a live LaunchDarkly environment.

Key items for review

  1. Ruby version floor bump (3.1 → 3.4): This is the most impactful change. It is required by openfeature-sdk 0.6.x and narrows the set of supported Ruby versions.
  2. JRuby 9.4 → 10.0: JRuby 9.4 targets Ruby 3.1 and cannot satisfy >= 3.4. JRuby 10.0.x targets Ruby 3.4 and CI passes, but it is a relatively new release — worth a sanity check.
  3. OF SDK 0.5.0 breaking change skipped: 0.5.0 removed setProvider timeout; this provider does not use that API, so no code changes needed, but worth a quick sanity check.
  4. No new tests added: The existing test suite covers the provider interface adequately and passes against the new SDK versions. No behavioral changes are expected.

Describe alternatives you've considered

  • Targeting openfeature-sdk ~> 0.5.0 instead of ~> 0.6.0 to 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-sdk 8.x (>= 8.4) and to require openfeature-sdk ~> 0.6.0.

Raises the minimum supported Ruby from >= 3.1 to >= 3.4 and aligns CI to test Ruby 3.4 (Linux/Windows) with JRuby updated to jruby-10.0 (docs build still skipped on JRuby).

Written by Cursor Bugbot for commit 825d954. This will update automatically on new commits. Configure here.

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-integration
Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

devin-ai-integration bot and others added 2 commits March 9, 2026 09:26
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>
@devin-ai-integration devin-ai-integration bot added the devin-pr PRs created by Devin label Mar 9, 2026
@devin-ai-integration
Copy link
Copy Markdown
Contributor

devin-ai-integration bot commented Mar 9, 2026

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:

  • launchdarkly-server-sdk constraint relaxed from ~> 8.4.0 to ~> 8.4 (allows 8.4+)
  • openfeature-sdk updated from ~> 0.4.0 to ~> 0.6.0
  • Minimum Ruby version bumped from 3.1 to 3.4 (required by openfeature-sdk 0.6.x)
  • CI updated to test Ruby 3.4 only; JRuby removed (incompatible with Ruby 3.4 requirement)

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.

@kinyoklion kinyoklion marked this pull request as ready for review March 9, 2026 15:43
@kinyoklion kinyoklion requested a review from a team as a code owner March 9, 2026 15:43
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>
@kinyoklion kinyoklion changed the title chore: Update dependencies to latest SDK versions feat: Update dependencies to latest SDK versions Mar 9, 2026
@kinyoklion kinyoklion changed the title feat: Update dependencies to latest SDK versions feat: Update to 0.6.x openfeature-sdk. Mar 9, 2026
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Fix in Cursor Fix in Web

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@kinyoklion kinyoklion merged commit 31e7222 into main Mar 13, 2026
11 checks passed
@kinyoklion kinyoklion deleted the devin/1773048008-update-ruby-deps branch March 13, 2026 15:40
kinyoklion pushed a commit that referenced this pull request Apr 2, 2026
🤖 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>
kinyoklion added a commit that referenced this pull request Apr 2, 2026
**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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devin-pr PRs created by Devin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants