Skip to content

Conversation

@munya
Copy link

@munya munya commented Oct 7, 2024

Summary

  • The "what"; a concise description of each logical change
  • Another change

The "why", or other context.

Test plan

Issues

mikechu-optimizely and others added 30 commits August 8, 2023 17:06
* Add devcontainer config * Add Ruby flavor GH Issue templates * Add gitlens to devcontainer * Add PR #298 doc fix * Add GitLense to devcontainer * Testing updates to ruby CI * Fix linting item * Rollback CI changes * Add suggested setup from @andrewleap-optimizely * fix for solargraph extension --------- Co-authored-by: Andy Leap <104936100+andrewleap-optimizely@users.noreply.github.com>
…ing about polling interval < 30s (#338) * Update http_project_config_manager.rb Add soft warning that polling interval under 30 s is not recommended. * Update w single quotes * Update http_project_config_manager.rb * Update WARNING to WARN * Update lib/optimizely/config_manager/http_project_config_manager.rb Co-authored-by: Andy Leap <104936100+andrewleap-optimizely@users.noreply.github.com> --------- Co-authored-by: Andy Leap <104936100+andrewleap-optimizely@users.noreply.github.com>
* feat: include object id/key in invalid object errors - Include object `id`/`key` in errors when objects not found in datafile - Modifies invalid object `id`/`key` log messages to make them consistent Include object `id`/`key` in errors when an object is not found makes them available to the user or the custom error handler. One example of why this is useful is that the `key` of an experiment could be used within a custom error handler to fetch the details of the experiment. This would indicate whether the experiment has been paused (in which case the error could be ignored) or archived (in which case the code referencing the experiment should be removed from the application). * feat: expose object identifiers as error properties - Expose the object identifiers as error properties so that they are easier to use in error handlers. - Encapsulate the error messages within the error objects to enforce consistency and to simplify initialization - Use the messages of the error objects as log messages to enforce consistency and to simplify logging * Update lib/optimizely/exceptions.rb typo identifier * identifier typo * identifier typo * identifier typo * identifier typo * identifier typo --------- Co-authored-by: Matjaz Pirnovar <Mat001@users.noreply.github.com>
* bump version and update changelog * fix license
* add ruby 3.3.0 * add rb 3.3.0 to devcontainer.json
…orKeys (#353) * user profile tracker created * lib/optimizely.rb -> Added user_profile_tracker require lib/optimizely.rb -> Updated decide_for_keys method lib/optimizely.rb -> Enhanced decision-making logic lib/optimizely.rb -> Integrated UserProfileTracker usage lib/optimizely.rb -> Refined decision reasons handling lib/optimizely/user_profile_tracker.rb -> New user profile tracker class * Implementation complete. Unit Tests are failing. * lib/optimizely.rb -> Made optional parameter explicit lib/optimizely/decision_service.rb -> Added user profile tracker usage lib/optimizely/decision_service.rb -> Clarified handling of user profiles lib/optimizely/user_profile_tracker.rb -> Fixed user ID reference in error spec/decision_service_spec.rb -> Adjusted tests for user profile tracker * lib/optimizely/decision_service.rb -> Simplified decision logging lib/optimizely/user_profile_tracker.rb -> Improved user profile lookup handling spec/project_spec.rb -> Updated mocks for decision service calls * lib/optimizely/decision_service.rb -> Removed user profile tracker instantiation. lib/optimizely/user_profile_tracker.rb -> Improved error logging message. spec/decision_service_spec.rb -> Refactored user profile tracking in tests. spec/project_spec.rb -> Updated decision service method stubs. spec/user_profile_tracker.rb -> Updated lookup, update and save tests for user_profile_tracker * spec/user_profile_tracker_spec.rb -> Updated error messages in tests. * spec/user_profile_tracker_spec.rb -> linting fix * linting fixes * Update README.md * Update README.md * Trigger checks * Trigger checks * Trigger checks * Trigger checks * lib/optimizely/user_profile_tracker.rb -> Added user profile init check. * lib/optimizely/decision_service.rb -> Updated user profile tracker initialization. * lib/optimizely/decision_service.rb -> Update user profile save method --------- Co-authored-by: Matjaz Pirnovar <Mat001@users.noreply.github.com>
* chore: preparing for release 5.1.0 * Trigger checks * rubocop autocorrectable linting errors corrected
#361) * optimizely.rb -> added variation id and experiment id to notification listerner payload optimizely_user_context_spec.rb -> fixed unit tests * -unit tests updated -rubocop autocorrection * chore: trigger CI * fix: rubocop corrections
) * [FSSDK-11140] Ruby: Update project config to track CMAB properties * Fix errors * Fix errors * Fix test * Correct the experiment * Add new test cases related CMAB * Implement comments * Correct the type * Fix lint
* [FSSDK-11149] Ruby: Implement CMAB Client * Implement copilot review * Implement comments * correct the name * correct the sleep * Correct the sleep
…#366) * update: Extend LRUCache with remove method and corresponding tests * update: Clean up whitespace in LRUCache implementation and tests * update: Extend copyright notice to include 2025
* update: Extend LRUCache with remove method and corresponding tests * update: Clean up whitespace in LRUCache implementation and tests * update: Extend copyright notice to include 2025 * update: Implement Default CMAB Service * update: Enable keyword initialization for CmabDecision and CmabCacheValue structs (otherwise breaks in ruby version change)
) * [FSSDK-11459] Ruby - Add SDK Multi-Region Support for Data Hosting * Fix lint issues * Fix lint * Fix test * Add with region * Fix lint * Fix lint issue * Correct the Region default value * Fix failed tests * Fix lint * Fix test cases * Fix event builder * Fix the issue * Fix typo * Correct the event name * Fix errors * Fix errors * Fix test cases * Fix test cases * Implement copilot review comments * Fix lint * Implement changes and add new tests * Fix lint issue * Remove unnecessary region params * Remove region from expected param * Remove region from impression expected * Add region to builder * Add region to as_json * Implement * Update region EU * Fix test
…AB (#369) * update: Extend LRUCache with remove method and corresponding tests * update: Clean up whitespace in LRUCache implementation and tests * update: Extend copyright notice to include 2025 * update: Implement Default CMAB Service * update: Enable keyword initialization for CmabDecision and CmabCacheValue structs (otherwise breaks in ruby version change) * update: Refactor bucketing logic to handle empty traffic ranges and improve logging * update: Add support for CMAB traffic allocation in bucketing logic * update: Enhance DecisionService to support CMAB traffic allocation and decision retrieval * update: Integrate CMAB decision logic into DecisionService and update related tests * update: Refactor DecisionService to return DecisionResult struct instead of Decision struct * update: Integrate CMAB components into Project class and enhance decision handling * update: Refactor CMAB traffic allocation handling and enhance decision service error logging * update: Refactor OptimizelyDecision instantiation to use keyword arguments for clarity * update: Remove commented debug output from Optimizely user context spec * Trigger CI build --------- Co-authored-by: Matjaz Pirnovar <Mat001@users.noreply.github.com>
* update: change Ruby version from 3.0.0 to 3.0.1 in CI workflow * update: revert Ruby version to 3.0.0 in CI workflow and pin rubocop version * update: add auto-correction step for rubocop in CI workflow
* update: Extend LRUCache with remove method and corresponding tests * update: Clean up whitespace in LRUCache implementation and tests * update: Extend copyright notice to include 2025 * update: Implement Default CMAB Service * update: Enable keyword initialization for CmabDecision and CmabCacheValue structs (otherwise breaks in ruby version change) * update: Refactor bucketing logic to handle empty traffic ranges and improve logging * update: Add support for CMAB traffic allocation in bucketing logic * update: Enhance DecisionService to support CMAB traffic allocation and decision retrieval * update: Integrate CMAB decision logic into DecisionService and update related tests * update: Refactor DecisionService to return DecisionResult struct instead of Decision struct * update: Integrate CMAB components into Project class and enhance decision handling * update: Refactor CMAB traffic allocation handling and enhance decision service error logging * update: Refactor OptimizelyDecision instantiation to use keyword arguments for clarity * update: Enhance send_impression method to include CMAB UUID and add tests for CMAB experiments * update: Refactor CMAB client initialization and enhance audience conditions parsing * update: Refactor attribute filtering logic and improve test attribute structure * update: Handle errors in decision result to prevent fallback to next experiment * update: Improve error message formatting for CMAB decision failures * update: fix error message for CMAB decision fetching * update: fix error message * update: fix key naming for variation_id in CMAB response handling * update: fix key naming for variation_id in CMAB response handling in spec file * update: fix argument order in CMAB traffic allocation method * update: refactor decision variation access in Optimizely project * update: handle nil variation_id in get_variation method
…te project config (#373) * [FSSDK-11575][FSSDK-11576] Ruby: Parsing holdout to datafile and update project config * Fix lint issues * Fix lint issues * Fix lint * Fix lint * Move holdout before the private * Fix tests * Fix lint * Fix test and add debug * Fix lint * Fix lint * Fix lint whitespace * Fix failed tests * Update the schema * Implement comment
…n DefaultDecisionService (#374) * [FSSDK-11577] Ruby: Add holdout support and refactor decision logic in DefaultDecisionService * Fix lint issues * Fix lint problems * Fix last lint problems * Fix test errors related to test data * Fix test data issue * Fix data mismatch and audience errors * Fix lint * Fix test issues of bucketter and datafile config * Remove whitespace * Correct the bucket value test function * Fix all failed test cases * Fix lint issues * Implement suggested removal * Add holdout logic to get_decision_for_flag * Fix whitespace lint issues * Revert decision result update * Correct the assertion
* feat: Implement lock striping for decision retrieval in CMAB service * fix: Replace built-in hash method with MurmurHash3 for consistent lock index calculation
…ation for global holdout (#376) * [FSSDK-11578] Ruby: Update impression event handling and send notification for global holdout * Fix lint issues * Fix lint issue * Fix lint and test case errors * Update the "get_holdouts_for_flag" comment
FarhanAnjum-opti and others added 2 commits October 23, 2025 23:23
1. cacheSize, cacheTtl, and customCache are exposed to public 2. logs and reasons added in DefaultCmabService 3. Default_max_retry set to 1
* expose cmab prediction endpoint in url template * fix: use keyword arguments for DefaultCmabClient to resolve Rubocop linting error - Changed initialize method to use keyword arguments instead of positional arguments - Updated all call sites to use keyword arguments - Fixes Metrics/ParameterLists offense (too many optional parameters) - All tests passing (11 examples, 0 failures)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

8 participants