-
Notifications
You must be signed in to change notification settings - Fork 20
[FSSDK-11544] Parsing holdout configuration from datafile + project config holdout impl. #384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FSSDK-11544] Parsing holdout configuration from datafile + project config holdout impl. #384
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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#. 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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