Skip to content

[AI-FSSDK] [FSSDK-12337] Add Feature Rollout support#626

Open
FarhanAnjum-opti wants to merge 1 commit intomasterfrom
ai/farhananjum-opti/FSSDK-12337-feature-rollouts
Open

[AI-FSSDK] [FSSDK-12337] Add Feature Rollout support#626
FarhanAnjum-opti wants to merge 1 commit intomasterfrom
ai/farhananjum-opti/FSSDK-12337-feature-rollouts

Conversation

@FarhanAnjum-opti
Copy link
Contributor

@FarhanAnjum-opti FarhanAnjum-opti commented Mar 17, 2026

Summary

Adds Feature Rollout support to the Swift SDK. Feature Rollouts are a new experiment rule type that combines Targeted Delivery simplicity with A/B test measurement capabilities. During project config parsing, the "everyone else" variation from the flag's rollout is injected into any experiment with type "fr", enabling correct evaluation without changes to decision logic.

Changes

  • Added optional type field (ExperimentType enum) to the Experiment model with valid values: ab, mab, cmab, td, fr
  • Added config parsing logic to inject the "everyone else" rollout variation into feature rollout experiments
  • Added traffic allocation entry (endOfRange=10000) for the injected variation
  • Added getEveryoneElseVariation helper method to extract the last rollout rule's first variation
  • Updated experiment lookup maps (experimentKeyMap, experimentIdMap) after injection so decisions use updated data
  • Added 10 unit tests covering feature rollout injection, edge cases, and backward compatibility

Jira Ticket

FSSDK-12337

Add Feature Rollout support to the Swift SDK. Feature Rollouts are a new
experiment rule type that combines Targeted Delivery simplicity with A/B
test measurement capabilities.

- Add optional `type` field (ExperimentType enum) to the Experiment model
  with valid values: ab, mab, cmab, td, fr
- Add config parsing logic to inject the "everyone else" rollout variation
  into feature rollout experiments (type == .featureRollout)
- Add traffic allocation entry (endOfRange=10000) for the injected variation
- Add `getEveryoneElseVariation` helper to extract the last rollout rule's
  first variation
- Rebuild experiment lookup maps after injection so decisions use updated data
- Add 10 unit tests covering injection, edge cases, and backward compatibility
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