Skip to content

feat(analytics): Implement semver and date custom ops for flags runtime props - #171

Merged
efahk merged 4 commits into
masterfrom
efahk_custom_operators
Aug 27, 2026
Merged

feat(analytics): Implement semver and date custom ops for flags runtime props#171
efahk merged 4 commits into
masterfrom
efahk_custom_operators

Conversation

@efahk

@efahk efahk commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Adds Semantic Versioning and RFC3339 date comparison support for feature flags runtime event matching. This implements them as extensions to the JSONLogic library that is being used for targeting.

See here for more information about the comparators and golden vector list

@efahk
efahk requested review from a team, tdumitrescu and tylerjroach and removed request for tdumitrescu August 24, 2026 17:47
@efahk efahk changed the title Implement semver and date custom ops for flags runtime props Aug 24, 2026
@greptile-apps

greptile-apps Bot commented Aug 24, 2026

Copy link
Copy Markdown

Confidence Score: 4/5

The PR is not yet safe to merge because negative fractional epoch-millisecond targets can mis-evaluate pre-1970 date rules.

The previously reported rounding mismatch remains: RFC3339 conversion and negative millisecond conversion round equivalent instants in opposite directions.

Files Needing Attention: lib/mixpanel-ruby/flags/custom_operators.rb

Important Files Changed

Filename Overview
lib/mixpanel-ruby/flags/custom_operators.rb Implements custom date and SemVer comparisons; negative fractional epoch milliseconds remain inconsistent with equivalent RFC3339 instants.
lib/mixpanel-ruby/flags/local_flags_provider.rb Registers the custom operators and requires runtime rules to return Boolean true.
mixpanel-ruby.gemspec Updates the JSONLogic runtime dependency to the 0.2 release line.

Reviews (3): Last reviewed commit: "updating tests and adding semver limits" | Re-trigger Greptile

Comment thread lib/mixpanel-ruby/flags/custom_operators.rb
@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.19820% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.28%. Comparing base (35be7ba) to head (8c41ae4).

Files with missing lines Patch % Lines
lib/mixpanel-ruby/flags/custom_operators.rb 98.16% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #171      +/-   ##
==========================================
+ Coverage   97.16%   97.28%   +0.12%     
==========================================
  Files          15       16       +1     
  Lines         775      885     +110     
==========================================
+ Hits          753      861     +108     
- Misses         22       24       +2     
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.
@efahk
efahk merged commit e0f480e into master Aug 27, 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

2 participants