Skip to content

chore(openfeature): pin mixpanel-ruby ~> 3.3 for fallback_reason (SDK-126) - #166

Merged
tylerjroach merged 4 commits into
masterfrom
fix/sdk-126-pin-mixpanel-ruby-dep
Jul 28, 2026
Merged

chore(openfeature): pin mixpanel-ruby ~> 3.3 for fallback_reason (SDK-126)#166
tylerjroach merged 4 commits into
masterfrom
fix/sdk-126-pin-mixpanel-ruby-dep

Conversation

@tylerjroach

@tylerjroach tylerjroach commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Bundler will refuse to resolve mixpanel-ruby ~> 3.3 until that version exists on RubyGems. That failure is the point of this PR — it enforces the correct two-step release sequencing.

Summary

  • Bump openfeature-provider/mixpanel-ruby-openfeature.gemspec runtime dep: ~> 3.1~> 3.3.
  • Bump mixpanel-ruby-openfeature version: 0.1.00.2.0.
  • Add openfeature/v0.2.0 CHANGELOG entry.

Why

The wrapper's openfeature-provider/lib/mixpanel/openfeature/provider.rb:81 dispatches on SelectedVariant#fallback_reason, which was introduced by the SDK-79 merge in #153. Both published mixpanel-ruby versions in the previous ~> 3.1 range — 3.1.0 and 3.2.0 — predate SDK-79 and lack fallback_reason. Any install that paired mixpanel-ruby-openfeature 0.1.0 with those would raise NoMethodError on every evaluation past the existing rescue StandardError block. Greptile caught this on #153 immediately post-merge.

Release sequencing

  1. This PR (now): red on CI because mixpanel-ruby ~> 3.3 isn't published.
  2. Release mixpanel-ruby 3.3.0 with the SDK-79 changes:
    • Bump lib/mixpanel-ruby/version.rb3.3.0 on master
    • Cut the RubyGems release via the existing release-rubygems.yml workflow
  3. This PR flips green → merge + cut mixpanel-ruby-openfeature 0.2.0.

Verified locally

bundle install in openfeature-provider/:

Could not find compatible versions
Because mixpanel-ruby >= 3.3, < 4.A could not be found in source at `..`
and every version of mixpanel-ruby-openfeature depends on mixpanel-ruby ~> 3.3,
  mixpanel-ruby-openfeature cannot be used.

Exactly the error CI should produce.

Linear: SDK-126

…DK-126)

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.
@tylerjroach
tylerjroach requested review from a team and efahk July 21, 2026 03:40
@linear-code

linear-code Bot commented Jul 21, 2026

Copy link
Copy Markdown

SDK-126

@tylerjroach tylerjroach changed the title release(openfeature): pin mixpanel-ruby ~> 3.3 for fallback_reason (SDK-126) chore(openfeature): pin mixpanel-ruby ~> 3.3 for fallback_reason (SDK-126) Jul 21, 2026
@greptile-apps

greptile-apps Bot commented Jul 21, 2026

Copy link
Copy Markdown

Confidence Score: 5/5

This looks safe to merge.

  • The dependency constraint matches the provider API requirement.
  • The previously reported release-notes change is no longer present.
  • No blocking issues remain in the changed code.

Important Files Changed

Filename Overview
openfeature-provider/mixpanel-ruby-openfeature.gemspec Raises the runtime dependency from mixpanel-ruby ~> 3.1 to ~> 3.3.

Reviews (4): Last reviewed commit: "Drop rationale comment above mixpanel-ru..." | Re-trigger Greptile

Comment thread openfeature-provider/CHANGELOG.md Outdated
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.16%. Comparing base (3c54747) to head (8c9c8c9).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #166   +/-   ##
=======================================
  Coverage   97.16%   97.16%           
=======================================
  Files          15       15           
  Lines         775      775           
=======================================
  Hits          753      753           
  Misses         22       22           
Flag Coverage Δ
openfeature 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

tylerjroach and others added 3 commits July 27, 2026 14:39
The Ruby release-prep workflow (invoked separately per the Go/Ruby
runbook pattern) generates CHANGELOG entries from conventional commit
messages and bumps VERSION when the release is cut. Landing them
manually in this PR pre-empts the workflow and duplicates work.

Scope of this PR is now solely the gemspec pin bump (~> 3.1 → ~> 3.3).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@tylerjroach
tylerjroach merged commit 52b7d04 into master Jul 28, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants