From fa6c2605b4147c93ca6bb7c3203ae37d7625f3fd Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2026 16:58:48 +0000 Subject: [PATCH 1/2] feat: Report provider name and version to LaunchDarkly Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com> --- launchdarkly-openfeature-server-sdk.gemspec | 2 +- lib/ldclient-openfeature/provider.rb | 5 ++++- spec/provider_spec.rb | 13 +++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/launchdarkly-openfeature-server-sdk.gemspec b/launchdarkly-openfeature-server-sdk.gemspec index d329cf8..89f6bc5 100644 --- a/launchdarkly-openfeature-server-sdk.gemspec +++ b/launchdarkly-openfeature-server-sdk.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_runtime_dependency "launchdarkly-server-sdk", "~> 8.4" + spec.add_runtime_dependency "launchdarkly-server-sdk", ">= 8.15.0", "< 9.0" spec.add_runtime_dependency "openfeature-sdk", "~> 0.6.0" # For more information and examples about making a new gem, check out our diff --git a/lib/ldclient-openfeature/provider.rb b/lib/ldclient-openfeature/provider.rb index f339d43..664c34c 100644 --- a/lib/ldclient-openfeature/provider.rb +++ b/lib/ldclient-openfeature/provider.rb @@ -25,13 +25,16 @@ class Provider NUMERIC_TYPES = %i[integer float number].freeze private_constant :NUMERIC_TYPES + WRAPPER_NAME = "open-feature-ruby-server" + private_constant :WRAPPER_NAME + # # @param sdk_key [String] # @param config [LaunchDarkly::Config] # @param wait_for_seconds [Float] # def initialize(sdk_key, config = LaunchDarkly::Config.default, wait_for_seconds = 5) - @client = LaunchDarkly::LDClient.new(sdk_key, config, wait_for_seconds) + @client = LaunchDarkly::LDClient.new(sdk_key, config.with_wrapper_information(WRAPPER_NAME, VERSION), wait_for_seconds) @context_converter = Impl::EvaluationContextConverter.new(config.logger) @details_converter = Impl::ResolutionDetailsConverter.new diff --git a/spec/provider_spec.rb b/spec/provider_spec.rb index e704e0b..8b72df4 100644 --- a/spec/provider_spec.rb +++ b/spec/provider_spec.rb @@ -18,6 +18,19 @@ expect(provider.client).to be_a LaunchDarkly::LDClient end + it "reports itself as the wrapper to LaunchDarkly" do + allow(LaunchDarkly::LDClient).to receive(:new).and_return(instance_double(LaunchDarkly::LDClient)) + + described_class.new("example-key", config) + + expect(LaunchDarkly::LDClient).to have_received(:new).with( + "example-key", + having_attributes(wrapper_name: "open-feature-ruby-server", wrapper_version: LaunchDarkly::OpenFeature::VERSION), + 5 + ) + expect(config.wrapper_name).to be_nil + end + it "not providing context returns error" do resolution_details = provider.fetch_boolean_value(flag_key: "flag-key", default_value: true) From 89013eba8d0d2e42f10c934deb460f31e67b5f39 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 21:54:47 +0000 Subject: [PATCH 2/2] chore: Require the released launchdarkly-server-sdk 8.15 Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com> --- launchdarkly-openfeature-server-sdk.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launchdarkly-openfeature-server-sdk.gemspec b/launchdarkly-openfeature-server-sdk.gemspec index 89f6bc5..501ce8f 100644 --- a/launchdarkly-openfeature-server-sdk.gemspec +++ b/launchdarkly-openfeature-server-sdk.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_runtime_dependency "launchdarkly-server-sdk", ">= 8.15.0", "< 9.0" + spec.add_runtime_dependency "launchdarkly-server-sdk", "~> 8.15" spec.add_runtime_dependency "openfeature-sdk", "~> 0.6.0" # For more information and examples about making a new gem, check out our