[FSSDK-11544] Parsing holdout configuration from datafile + project config holdout impl.#384
Conversation
There was a problem hiding this comment.
Pull Request Overview
Implements holdout functionality for the Optimizely SDK by adding datafile parsing support and project configuration integration. This enables holdout experiments that can be applied globally or targeted to specific feature flags.
- Added comprehensive holdout entity model with flag inclusion/exclusion logic
- Introduced holdout configuration manager for efficient flag-to-holdout relationship mapping
- Extended project configuration interface to support holdout operations and queries
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| OptimizelySDK/Utils/HoldoutConfig.cs | Core holdout configuration manager with caching and flag relationship logic |
| OptimizelySDK/Entity/Holdout.cs | Complete holdout entity implementation with audience and variation support |
| OptimizelySDK/Entity/IExperimentCore.cs | Shared interface for common experiment/holdout functionality |
| OptimizelySDK/Entity/ExperimentCoreExtensions.cs | Extension methods for shared experiment/holdout operations |
| OptimizelySDK/Entity/Experiment.cs | Updated to implement IExperimentCore interface |
| OptimizelySDK/ProjectConfig.cs | Added holdout-related interface methods |
| OptimizelySDK/Config/DatafileProjectConfig.cs | Integrated holdout parsing and configuration management |
| Various project files | Added new entity and utility files to compilation |
| Test files | Comprehensive test coverage for holdout functionality |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
mikechu-optimizely
left a comment
There was a problem hiding this comment.
I've reviewed and provided comments around performance and consistency. I do not see any security problems. I'm providing a non-blocking approval but suggest consideration of the comments from me and Copilot. Good work. Welcome to C#. 😁
muzahidul-opti
left a comment
There was a problem hiding this comment.
Updated architecture looks good to me.
Leave a comment to remove the duplicate logic.
Summary
Datafile Parsing to support holdout + ProjectConfig holdout change
Test plan
Tests have been added to support the changes
Issues
FSSDK-11544
FSSDK-11545