Skip to content

Version Packages - #793

Merged
roncohen merged 1 commit into
mainfrom
changeset-release/main
Nov 5, 2026
Merged

roncohen merged 1 commit into
mainfrom
changeset-release/main

Conversation

@roncohen

@roncohen roncohen commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@reflag/flag-evaluation@2.0.0

Major Changes

  • d7078e0: Introduce a v2-only compiled-variant evaluator:

    • newEvaluator({ flags, segments }) prepares a complete collection and returns evaluateAll(context) and evaluateFlag(context, flagKey) methods. The batch result contains shared normalized context and per-flag results without repeated context. Single-flag evaluation visits only the requested flag and its dependencies. Unresolved batch entries do not prevent other flags from being evaluated. Remove the v1 value-rule APIs and the one-shot evaluateFlag wrapper.
    • Preserve flag and segment reference nodes instead of inlining their filters. Flag references explicitly match variant keys; segments remain reusable predicates. Resolve references recursively without dependency-result caching or memoization.
    • Preserve diagnostics from unsuccessful referenced rules without suppressing a valid matching selection. Invalid nonmatches remain fail-closed through negation. Propagated diagnostics identify their source flag or segment.
    • Reject duplicate keys, missing references, unknown referenced variant keys and cycles at preparation, including mixed flag/segment cycles. Evaluating an unknown flag key throws.
    • Preserve arbitrary variant value types through CompiledFlag<T> and EvaluationResult<T> (default any). resolved: true | false distinguishes a selected value, including undefined, from failure. Successful results require the variant key and matched rule ID.
    • Keep membership Sets and prepared percentage bounds private. ANY_OF / NOT_ANY_OF use cached Set lookups, including under groups and negations; percentage distributions use precomputed bounds and a simple scan.
    • Evaluate rules sequentially with explicit fallthrough and source-version/rule/allocation diagnostics.
    • Return structured INVALID_COMPARISON errors for invalid numeric/date comparisons instead of logging context values. Invalid conditions cannot match through negation.
    • Retain the original hash function and threshold rollout filter for boolean cohort compatibility. The inclusive maximum distribution bucket selects the last nonzero allocation.

    The runtime exports are newEvaluator, flattenContext, and hashInt. Removed APIs include evaluateFlagRules, newFlagEvaluator, evaluateFlag, the scalar evaluate helper, and the legacy flattenJSON / unflattenJSON helpers.

@reflag/node-sdk@1.8.3

Patch Changes

  • d7078e0: Keep the existing Node SDK on evaluator 1.1.2 through the @reflag/flag-evaluation-v1 npm alias. This preserves its legacy protocol and prevents the evaluator's v2 workspace release from automatically upgrading its dependency before SDK migration.

@reflag/openfeature-node-provider@1.2.8

Patch Changes

  • Updated dependencies [d7078e0]
    • @reflag/node-sdk@1.8.3

Copilot AI balanced review requested due to automatic review settings November 4, 2026 18:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the release metadata and dependency updates.

No open issues 🎉

What changed in this PR

This Changesets release PR prepares the stable v2 evaluator release and patch releases for the Node SDK and OpenFeature provider. It updates release metadata without changing runtime code.

Changes:

  • Bumps the evaluator to 2.0.0, Node SDK to 1.8.3, and OpenFeature provider to 1.2.8.
  • Updates the provider’s Node SDK dependency and corresponding lockfile entries.
  • Adds release notes and removes the consumed changesets.
File Description
yarn.lock Aligns Node SDK dependency entries with 1.8.3.
packages/​openfeature-node-provider/​package.json Bumps provider version and Node SDK dependency.
packages/​openfeature-node-provider/​CHANGELOG.md Records the dependency update for 1.2.8.
packages/​node-sdk/​package.json Bumps Node SDK to 1.8.3.
packages/​node-sdk/​CHANGELOG.md Documents the legacy evaluator alias pin.
packages/​flag-evaluation/​package.json Promotes the evaluator prerelease to stable 2.0.0.
packages/​flag-evaluation/​CHANGELOG.md Documents v2 behavior and breaking API changes.
.changeset/​pin-legacy-node-evaluator.md Removes the consumed Node SDK changeset.
.changeset/​multivariate-evaluation.md Removes the consumed evaluator changeset.

Review effort: Balanced

@roncohen
roncohen added this pull request to the merge queue Nov 5, 2026
Merged via the queue into main with commit b4fe5b3 Nov 5, 2026
8 checks passed
@roncohen
roncohen deleted the changeset-release/main branch November 5, 2026 06:55
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.

2 participants