From 71b3c41361b55bad47e829ffbecb82f6a87d2671 Mon Sep 17 00:00:00 2001 From: Tyler Roach Date: Mon, 20 Jul 2026 23:40:39 -0400 Subject: [PATCH] release(openfeature): pin mixpanel-ruby ~> 3.3 for fallback_reason (SDK-126) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DO NOT MERGE until mixpanel-ruby 3.3.0 is released. Bundler will refuse to resolve until then — that failure is the point. The wrapper's provider.rb dispatches on SelectedVariant#fallback_reason, which was introduced in the SDK-79 merge (PR #153). Both previously published mixpanel-ruby versions in the ~> 3.1 range (3.1.0, 3.2.0) lack that method, so an install pairing v0.1.0 of this gem with a pre-SDK-79 3.x mixpanel-ruby would raise NoMethodError on every evaluation past the existing rescue block. Bumping the constraint to ~> 3.3 (the next unreleased minor) forces the correct release sequencing: 1. This PR sits red on CI until mixpanel-ruby 3.3.0 ships with SDK-79 included. 2. Once mixpanel-ruby 3.3.0 is published, this PR's CI turns green and it can be merged + released as mixpanel-ruby-openfeature 0.2.0. Also bumps this gem's version 0.1.0 -> 0.2.0 (new capability surface) and adds a CHANGELOG entry. --- openfeature-provider/CHANGELOG.md | 7 +++++++ openfeature-provider/lib/mixpanel/openfeature/version.rb | 2 +- openfeature-provider/mixpanel-ruby-openfeature.gemspec | 9 ++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/openfeature-provider/CHANGELOG.md b/openfeature-provider/CHANGELOG.md index 377b7458..ef908961 100644 --- a/openfeature-provider/CHANGELOG.md +++ b/openfeature-provider/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## openfeature/v0.2.0 + +- Dispatch on `SelectedVariant#fallback_reason` so `MISSING_CONTEXT_KEY`, + `NO_ROLLOUT_MATCH`, and `BACKEND_ERROR` map to distinct OpenFeature + responses instead of every fallback collapsing to `FLAG_NOT_FOUND`. + Requires `mixpanel-ruby >= 3.3.0`. + ## [openfeature/v0.1.0](https://github.com/mixpanel/mixpanel-ruby/tree/openfeature/v0.1.0) (2026-05-13) Initial release of the Mixpanel OpenFeature provider for Ruby. diff --git a/openfeature-provider/lib/mixpanel/openfeature/version.rb b/openfeature-provider/lib/mixpanel/openfeature/version.rb index ab13e2ca..c7bb626f 100644 --- a/openfeature-provider/lib/mixpanel/openfeature/version.rb +++ b/openfeature-provider/lib/mixpanel/openfeature/version.rb @@ -2,6 +2,6 @@ module Mixpanel module OpenFeature - VERSION = '0.1.0' + VERSION = '0.2.0' end end diff --git a/openfeature-provider/mixpanel-ruby-openfeature.gemspec b/openfeature-provider/mixpanel-ruby-openfeature.gemspec index 79cdb10f..c370cfd6 100644 --- a/openfeature-provider/mixpanel-ruby-openfeature.gemspec +++ b/openfeature-provider/mixpanel-ruby-openfeature.gemspec @@ -17,7 +17,14 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.add_runtime_dependency 'openfeature-sdk', '~> 0.5' - spec.add_runtime_dependency 'mixpanel-ruby', '~> 3.1' + # SDK-126: pinned to `~> 3.3` because the wrapper's provider.rb calls + # `SelectedVariant#fallback_reason`, which was introduced in the + # SDK-79 merge and will ship in the next mixpanel-ruby release + # (3.3.0). Any earlier 3.x release lacks that method and would raise + # NoMethodError on every evaluation. Do NOT loosen this constraint + # unless the mixpanel-ruby version being permitted also exposes + # fallback_reason. + spec.add_runtime_dependency 'mixpanel-ruby', '~> 3.3' spec.add_development_dependency 'rspec', '~> 3.0' spec.add_development_dependency 'simplecov'