Skip to content

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

Open
tylerjroach wants to merge 1 commit into
masterfrom
fix/sdk-126-pin-mixpanel-ruby-dep
Open

chore(openfeature): pin mixpanel-ruby ~> 3.3 for fallback_reason (SDK-126)#166
tylerjroach wants to merge 1 commit into
masterfrom
fix/sdk-126-pin-mixpanel-ruby-dep

Conversation

@tylerjroach

Copy link
Copy Markdown
Contributor

⚠️ DO NOT MERGE — intentionally red CI

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: 4/5

The changelog header can omit the release notes from the GitHub release.

  • The dependency constraint matches the required SDK API.
  • The provider version matches the planned tag.
  • Direct tagging cannot extract the new changelog section.

openfeature-provider/CHANGELOG.md

Important Files Changed

Filename Overview
openfeature-provider/CHANGELOG.md Adds 0.2.0 release notes, but the header does not match the release workflow's extraction format.
openfeature-provider/lib/mixpanel/openfeature/version.rb Updates the provider version from 0.1.0 to 0.2.0.
openfeature-provider/mixpanel-ruby-openfeature.gemspec Requires the SDK release that provides fallback_reason.

Reviews (1): Last reviewed commit: "release(openfeature): pin mixpanel-ruby ..." | Re-trigger Greptile

@@ -1,5 +1,12 @@
# Changelog

## openfeature/v0.2.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.

P1 Release Notes Section Is Skipped

When openfeature/v0.2.0 is tagged directly, the release workflow searches for a ## [openfeature/v0.2.0] header. This unbracketed header does not match, so the GitHub release receives placeholder text instead of these notes.

Suggested change
## openfeature/v0.2.0
## [openfeature/v0.2.0](https://github.com/mixpanel/mixpanel-ruby/tree/openfeature/v0.2.0)

Context Used: Our developers like concise reviews. Avoid verbose... (source)

@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 96.56%. Comparing base (6a9e75f) to head (71b3c41).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #166      +/-   ##
==========================================
- Coverage   96.97%   96.56%   -0.42%     
==========================================
  Files          15       13       -2     
  Lines         761      669      -92     
==========================================
- Hits          738      646      -92     
  Misses         23       23              
Flag Coverage Δ
openfeature ?

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.

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.

1 participant