Skip to content

feat(openfeature): add future-experiments-only opt-out mode - #6542

Merged
leoromanovsky merged 1 commit into
leoromanovsky/experimentation-opt-out-immediatefrom
leoromanovsky/experimentation-opt-out-future
Oct 23, 2026
Merged

leoromanovsky merged 1 commit into
leoromanovsky/experimentation-opt-out-immediatefrom
leoromanovsky/experimentation-opt-out-future

Conversation

@leoromanovsky

@leoromanovsky leoromanovsky commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Why

Customers need to exclude subjects from future experiments while retaining allocations activated before their opt-out cutoff.

What

This change is included in the combined Ruby opt-out PR #6521.

Risk

Enabled modes require libdatadog #2698 in a released native package before the combined Ruby PR merges.

@leoromanovsky leoromanovsky added the AI Generated Largely based on code generated by an AI or LLM. This label is the same across all dd-trace-* repos label Oct 22, 2026
@dd-octo-sts dd-octo-sts Bot added the openfeature A new component that provider an ability to configure feature flags label Oct 22, 2026
@dd-octo-sts

dd-octo-sts Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Typing analysis

Note: Ignored files are excluded from the next sections.

Untyped methods

This PR introduces 4 partially typed methods, and clears 3 partially typed methods. It decreases the percentage of typed methods from 72.99% to 72.97% (-0.02%).

Partially typed methods (+4-3) ❌ Introduced:
sig/datadog/core/feature_flags.rbs:25
└── def get_assignment_with_opt_out_mode: (
          String flag_key,
          Symbol expected_type,
          Hash[String, untyped] context,
          Symbol experimentation_opt_out_mode
        ) -> ResolutionDetails
sig/datadog/open_feature/evaluation_engine.rbs:20
└── def fetch_value: (
        ::String flag_key,
        default_value: untyped,
        expected_type: ::Symbol,
        ?evaluation_context: ::OpenFeature::SDK::EvaluationContext?,
        ?experimentation_opt_out_mode: Provider::experimentation_opt_out_mode
      ) -> ResolutionDetails
sig/datadog/open_feature/native_evaluator.rbs:14
└── def get_assignment: (
        ::String flag_key,
        default_value: untyped,
        context: ::OpenFeature::SDK::EvaluationContext::fields_t,
        expected_type: ::Symbol,
        ?experimentation_opt_out_mode: Provider::experimentation_opt_out_mode
      ) -> ResolutionDetails
sig/datadog/open_feature/noop_evaluator.rbs:6
└── def get_assignment: (
        ::String flag_key,
        default_value: untyped,
        context: ::OpenFeature::SDK::EvaluationContext::fields_t,
        expected_type: ::Symbol,
        ?experimentation_opt_out_mode: Provider::experimentation_opt_out_mode
      ) -> ResolutionDetails
✅ Cleared:
sig/datadog/open_feature/evaluation_engine.rbs:20
└── def fetch_value: (
        ::String flag_key,
        default_value: untyped,
        expected_type: ::Symbol,
        ?evaluation_context: ::OpenFeature::SDK::EvaluationContext?,
        ?experimentation_opt_out_immediate: bool
      ) -> ResolutionDetails
sig/datadog/open_feature/native_evaluator.rbs:14
└── def get_assignment: (
        ::String flag_key,
        default_value: untyped,
        context: ::OpenFeature::SDK::EvaluationContext::fields_t,
        expected_type: ::Symbol,
        ?experimentation_opt_out_immediate: bool
      ) -> ResolutionDetails
sig/datadog/open_feature/noop_evaluator.rbs:6
└── def get_assignment: (
        ::String flag_key,
        default_value: untyped,
        context: ::OpenFeature::SDK::EvaluationContext::fields_t,
        expected_type: ::Symbol,
        ?experimentation_opt_out_immediate: bool
      ) -> ResolutionDetails

If you believe a method or an attribute is rightfully untyped or partially typed, you can add # untyped:accept on the line before the definition to remove it from the stats.

@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
• Patch Coverage: 97.22%
• Overall Coverage: 92.56%

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 08d6375 | Docs | View more details | Give us feedback!

@leoromanovsky
leoromanovsky merged commit ec6165a into leoromanovsky/experimentation-opt-out-immediate Oct 23, 2026
620 checks passed
@leoromanovsky
leoromanovsky deleted the leoromanovsky/experimentation-opt-out-future branch October 23, 2026 14:56
@dd-octo-sts dd-octo-sts Bot added this to the 2.47.0 milestone Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Generated Largely based on code generated by an AI or LLM. This label is the same across all dd-trace-* repos openfeature A new component that provider an ability to configure feature flags

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant