Skip to content

Validate experimentation opt-out with shared assignment fixtures - #8075

Draft
leoromanovsky wants to merge 1 commit into
mainfrom
leoromanovsky/experimentation-opt-out
Draft

leoromanovsky wants to merge 1 commit into
mainfrom
leoromanovsky/experimentation-opt-out

Conversation

@leoromanovsky

@leoromanovsky leoromanovsky commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Customers need consistent experimentation exclusion across SDKs. Value-only assertions cannot distinguish an experimental control from an ordinary fallback with the same value.

Changes and Decisions

  • Add the immutable experimentation opt-out contract from shared fixtures #48, pinned to 5e2430d9ad36644e2cecb6a32ddb8d05d7c98ac6.
  • Expose actual Java evaluation details and explicit provider options through the existing test applications.
  • Preserve large integer context values through the test application's OpenFeature conversion.
  • Check assignment identity and metadata. Keep time-gated cases in fixed-clock SDK tests and guarded application tests.
  • Keep manifest activation pending a released SDK version. Validate the draft with --runxfail; do not invent a release version.

Validation

Candidate implementation: dd-trace-java #12921, commit c4bfecd1555b533cbb95818c887b05886ad8c01d.

The local Java candidate passed all 11 force-enabled groups, covering 116 shared cases with no skips or expected failures. The candidate application run separately passed all 136 cases, including the 20 time-gated cases.

Existing dynamic-evaluation tests passed 24 cases. All 12 evaluation-event cases passed when force-enabled. The large-integer context regression failed on the old application image and passed after the harness correction.

This branch has not been deployed

No deployments
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