Skip to content

[AI-FSSDK] [FSSDK-12760] Add localHoldouts datafile section for backward compat#517

Open
jaeopt wants to merge 3 commits into
masterfrom
ai/jaeopt/FSSDK-12760-local-datafile
Open

[AI-FSSDK] [FSSDK-12760] Add localHoldouts datafile section for backward compat#517
jaeopt wants to merge 3 commits into
masterfrom
ai/jaeopt/FSSDK-12760-local-datafile

Conversation

@jaeopt

@jaeopt jaeopt commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds support for the new top-level localHoldouts datafile section so a single datafile can serve every SDK generation safely. Older SDKs ignore the unknown key; this SDK now parses it as the source of truth for rule-scoped (local) holdouts, while holdouts is treated as global-only — section membership is the sole signal for scope.

Changes

  • Parse localHoldouts as a separate top-level array; entries register against each rule in includedRules.
  • Treat every entry in holdouts as global; any includedRules field on those entries is stripped and ignored.
  • Reject invalid local-holdout entries (missing or null includedRules) with an error log instead of silently promoting them to global.
  • Preserve backward compatibility: datafiles without the localHoldouts key continue to behave exactly as before.

Jira Ticket

FSSDK-12760

jaeopt added 3 commits June 12, 2026 10:59
Update stale docstrings/comments that described holdout scope as being
determined by the includedRules field. After FSSDK-12760, scope is
determined by which top-level datafile section the entity is parsed
from ('holdouts' = global, 'localHoldouts' = local). The entity-level
is_global property continues to compute from included_rules for code
holding direct entity references.

No behavior change.
Condense the spec §5 cleanup comments to one-line/short-docstring form
per updated spec guidance. Same content, more compact.
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