Skip to content

chore: update sdk readmes#1394

Open
openfeaturebot wants to merge 1 commit into
mainfrom
update-sdk-readmes
Open

chore: update sdk readmes#1394
openfeaturebot wants to merge 1 commit into
mainfrom
update-sdk-readmes

Conversation

@openfeaturebot

@openfeaturebot openfeaturebot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

The PR was automatically generated via the update-sdk-docs GitHub workflow.

@openfeaturebot openfeaturebot requested review from a team as code owners June 9, 2026 09:19
@netlify

netlify Bot commented Jun 9, 2026

Copy link
Copy Markdown

Deploy Preview for openfeature ready!

Name Link
🔨 Latest commit 0607158
🔍 Latest deploy log https://app.netlify.com/projects/openfeature/deploys/6a3e4370ed68210008b66a74
😎 Deploy Preview https://deploy-preview-1394--openfeature.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request updates the PHP SDK documentation to version 2.2.0, introducing comprehensive documentation for the new MultiProvider feature, its evaluation strategies, error handling, and custom strategy implementation. It also updates the SDK compatibility dataset and auto-generated timestamps across multiple SDK documentation files. The review feedback suggests correcting the spelling of 'behaviour' to 'behavior' in two instances within the PHP documentation to maintain consistency.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.


By default, the Multi-Provider will evaluate all underlying providers in order and return the **first successful result**. If a provider indicates it does not have a flag (`FLAG_NOT_FOUND` error code), then it will be skipped and the next provider will be evaluated. If any provider throws or returns an error result, the operation will fail and the error will be returned. If no provider returns a successful result, the operation will fail with a `FLAG_NOT_FOUND` error code.

To change this behaviour, a different "strategy" can be provided:

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.

medium

To maintain spelling consistency with the rest of the document (which uses "behavior"), please use the American spelling "behavior" here.

To change this behavior, a different "strategy" can be provided:


1. **FirstMatchStrategy** (default): Evaluates all providers in order and returns the first successful result. Providers that indicate `FLAG_NOT_FOUND` error will be skipped and the next provider will be evaluated. Any other error will cause the operation to fail and the error to be returned.
2. **FirstSuccessfulStrategy**: Evaluates all providers in order and returns the first successful result. Any error will cause that provider to be skipped. If no successful result is returned, the set of errors will be returned.
3. **ComparisonStrategy**: Evaluates all providers at one time. If every provider returns a successful result with the same value, then that result is returned. Otherwise, an error is returned immediately if any provider errors. When values do not agree, an optional callback will be executed to notify you of the mismatch, and the configured "fallback provider" value will be used. This can be useful when migrating between providers that are expected to contain identical configuration. You can easily spot mismatches in configuration without affecting flag behaviour.

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.

medium

To maintain spelling consistency with the rest of the document (which uses "behavior"), please use the American spelling "behavior" here.

3. **ComparisonStrategy**: Evaluates all providers at one time. If every provider returns a successful result with the same value, then that result is returned. Otherwise, an error is returned immediately if any provider errors. When values do not agree, an optional callback will be executed to notify you of the mismatch, and the configured "fallback provider" value will be used. This can be useful when migrating between providers that are expected to contain identical configuration. You can easily spot mismatches in configuration without affecting flag behavior.

@openfeaturebot openfeaturebot force-pushed the update-sdk-readmes branch 4 times, most recently from 5ba5db0 to 0f60132 Compare June 15, 2026 10:17
@beeme1mr beeme1mr enabled auto-merge June 15, 2026 21:39
@openfeaturebot openfeaturebot force-pushed the update-sdk-readmes branch 4 times, most recently from 96ae992 to 8a3c0f7 Compare June 19, 2026 09:42
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Multiple SDK reference pages were regenerated with refreshed timestamps and release badges. Angular, Go, Java, .NET, and PHP docs also changed content, and the SDK compatibility dataset was updated for five release entries.

Changes

SDK Documentation Refresh

Layer / File(s) Summary
SDK version badge and compatibility data bumps
src/datasets/sdks/sdk-compatibility.json, docs/reference/sdks/client/web/index.mdx, docs/reference/sdks/client/web/react.mdx, docs/reference/sdks/server/javascript/index.mdx, docs/reference/sdks/server/javascript/nestjs.mdx, docs/reference/sdks/server/php.mdx, docs/reference/sdks/server/dotnet.mdx, docs/reference/sdks/server/java.mdx
Release badge links and displayed versions were updated for Web, React, Node.js, NestJS, PHP, .NET, and Java; matching release.href and release.version fields were updated in the SDK compatibility JSON for Java, Node.js, .NET, PHP, and Web.
Angular SDK: standalone vs NgModule configuration
docs/reference/sdks/client/web/angular.mdx
Angular SDK reference updated with a new badge version, Quick start TOC entries for standalone and NgModule paths, a reworked Usage section introducing provideOpenFeature() with ApplicationConfig and bootstrapApplication, and evaluation context examples rewritten for the standalone appConfig pattern.
Go SDK: NewDefaultClient and Boolean API corrections
docs/reference/sdks/server/go.mdx
Go SDK docs updated so client construction examples use NewDefaultClient(), and boolean evaluation examples in targeting, hooks, tracking, and transaction context propagation use Boolean() instead of BooleanValue().
Java SDK: code corrections in Targeting, Domains, and Hooks
docs/reference/sdks/server/java.mdx
Java SDK docs updated with a refreshed timestamp, release badge bump to v1.21.0, dependency version updates, a corrected Targeting example using System.getenv() and updated API/client evaluation-context wiring, a Domains example using new LocalProvider(), and a generic Hook<Object> example with typed method signatures.
.NET SDK: OpenTelemetry TraceEnricherHook guidance
docs/reference/sdks/server/dotnet.mdx
.NET SDK docs updated with a version badge bump, a warning about native OpenTelemetry span emission in v2.14, guidance to register .AddSource("OpenFeature") on TracerProviderBuilder, and a TraceEnricherHook example updated to use "OpenFeature" as the source.
PHP SDK: MultiProvider feature and documentation
docs/reference/sdks/server/php.mdx
PHP SDK docs updated with a refreshed timestamp and v2.2.0 badge, a MultiProvider row in the Features table, and a Providers section covering MultiProvider initialization, evaluation strategies, provider naming, comparison behavior, error aggregation, example usage, custom strategies, and known limitations.
Timestamp-only refreshes
docs/reference/sdks/client/kotlin.mdx, docs/reference/sdks/client/swift.mdx, docs/reference/sdks/client/web/index.mdx, docs/reference/sdks/client/web/react.mdx, docs/reference/sdks/server/cpp.mdx, docs/reference/sdks/server/dart.mdx, docs/reference/sdks/server/javascript/index.mdx, docs/reference/sdks/server/javascript/nestjs.mdx, docs/reference/sdks/server/python.mdx, docs/reference/sdks/server/ruby.mdx, docs/reference/sdks/server/rust.mdx
Last-updated timestamps refreshed across the remaining SDK reference pages with no other content changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the SDK documentation update, though "readmes" is a bit imprecise.
Description check ✅ Passed The description is related to the PR because it says the docs were auto-updated by the workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/reference/sdks/server/php.mdx`:
- Around line 216-218: The strategy behavior descriptions contain conflicting
language about execution models that creates ambiguity. Review the descriptions
for FirstMatchStrategy, FirstSuccessfulStrategy, and ComparisonStrategy and
reconcile the inconsistent execution terminology. For each strategy, establish
one clear execution model: clarify whether providers are evaluated sequentially
or simultaneously, establish when results are returned (immediately on first
success vs. after all evaluations), and specify how errors are handled during
that execution flow. Ensure each strategy description uses unambiguous language
so readers understand exactly when and how providers are evaluated, and when
results or errors are returned.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1a059395-c3b7-4b46-818a-31656d931e8c

📥 Commits

Reviewing files that changed from the base of the PR and between 70dd1c4 and 8a3c0f7.

📒 Files selected for processing (17)
  • docs/reference/sdks/client/kotlin.mdx
  • docs/reference/sdks/client/swift.mdx
  • docs/reference/sdks/client/web/angular.mdx
  • docs/reference/sdks/client/web/index.mdx
  • docs/reference/sdks/client/web/react.mdx
  • docs/reference/sdks/server/cpp.mdx
  • docs/reference/sdks/server/dart.mdx
  • docs/reference/sdks/server/dotnet.mdx
  • docs/reference/sdks/server/go.mdx
  • docs/reference/sdks/server/java.mdx
  • docs/reference/sdks/server/javascript/index.mdx
  • docs/reference/sdks/server/javascript/nestjs.mdx
  • docs/reference/sdks/server/php.mdx
  • docs/reference/sdks/server/python.mdx
  • docs/reference/sdks/server/ruby.mdx
  • docs/reference/sdks/server/rust.mdx
  • src/datasets/sdks/sdk-compatibility.json

Comment thread docs/reference/sdks/server/php.mdx
@openfeaturebot openfeaturebot force-pushed the update-sdk-readmes branch 2 times, most recently from 8fe761a to 969ca0f Compare June 23, 2026 09:19

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
docs/reference/sdks/server/php.mdx (1)

293-330: 📐 Maintainability & Code Quality | 🟠 Major | ⚖️ Poor tradeoff

Unresolved contradiction in ComparisonStrategy execution model.

This issue was flagged in a previous review but remains unaddressed. Lines 295 and 324 describe ComparisonStrategy's execution in contradictory terms:

  • Line 295: "Evaluates all providers at one time" (implies parallel/simultaneous)
  • Line 324: "Evaluates ALL providers sequentially" (implies sequential)

These statements cannot both be true. Given the custom strategies section (lines 440–442) distinguishes between RunMode::SEQUENTIAL and RunMode::EVALUATE_ALL, ComparisonStrategy must use one or the other. The intro and behavior section must be reconciled to clearly state which execution model is actually used.

Additionally, three style improvements from static analysis:

  • Line 173: "in order to" → "to"
  • Line 201: Three consecutive sentences start with "If" (refactor for flow)
  • Line 315: "in the event that" → "if"
Suggested reconciliation for ComparisonStrategy

Determine the actual execution mode from the PHP SDK implementation, then apply one of these patterns:

Option A (if using RunMode::EVALUATE_ALL):

-Evaluates **all providers** at one time. If every provider returns...
+Evaluates **all providers** in parallel. If every provider returns...
-Evaluates **ALL providers** sequentially
+Evaluates **ALL providers** in parallel

Option B (if using RunMode::SEQUENTIAL):

-Evaluates **all providers** at one time. If every provider returns...
+Evaluates **all providers** in order. If every provider returns...
-Evaluates **ALL providers** sequentially
+Evaluates **ALL providers** to completion before comparing results

Then apply the style fixes:

-in order to determine
+to determine

-in the event that
+if
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/sdks/server/php.mdx` around lines 293 - 330, Resolve the
contradiction in the ComparisonStrategy documentation by first determining the
actual execution mode from the PHP SDK implementation, then update both the
introductory description and the Behavior section to consistently describe
whether ComparisonStrategy evaluates all providers sequentially or all at once
to match the actual implementation. Additionally, apply three style
improvements: on the line describing the ComparisonStrategy evaluation behavior
at the start of the section, replace "in order to" with "to"; on the line with
multiple consecutive "If" statements describing callback behavior, refactor the
sentence structure for better flow; and on the line mentioning the fallback
provider condition, replace "in the event that" with "if".
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@docs/reference/sdks/server/php.mdx`:
- Around line 293-330: Resolve the contradiction in the ComparisonStrategy
documentation by first determining the actual execution mode from the PHP SDK
implementation, then update both the introductory description and the Behavior
section to consistently describe whether ComparisonStrategy evaluates all
providers sequentially or all at once to match the actual implementation.
Additionally, apply three style improvements: on the line describing the
ComparisonStrategy evaluation behavior at the start of the section, replace "in
order to" with "to"; on the line with multiple consecutive "If" statements
describing callback behavior, refactor the sentence structure for better flow;
and on the line mentioning the fallback provider condition, replace "in the
event that" with "if".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cdcaa145-3ff5-4e4b-b080-75b92927c331

📥 Commits

Reviewing files that changed from the base of the PR and between 8fe761a and 969ca0f.

📒 Files selected for processing (17)
  • docs/reference/sdks/client/kotlin.mdx
  • docs/reference/sdks/client/swift.mdx
  • docs/reference/sdks/client/web/angular.mdx
  • docs/reference/sdks/client/web/index.mdx
  • docs/reference/sdks/client/web/react.mdx
  • docs/reference/sdks/server/cpp.mdx
  • docs/reference/sdks/server/dart.mdx
  • docs/reference/sdks/server/dotnet.mdx
  • docs/reference/sdks/server/go.mdx
  • docs/reference/sdks/server/java.mdx
  • docs/reference/sdks/server/javascript/index.mdx
  • docs/reference/sdks/server/javascript/nestjs.mdx
  • docs/reference/sdks/server/php.mdx
  • docs/reference/sdks/server/python.mdx
  • docs/reference/sdks/server/ruby.mdx
  • docs/reference/sdks/server/rust.mdx
  • src/datasets/sdks/sdk-compatibility.json
✅ Files skipped from review due to trivial changes (13)
  • docs/reference/sdks/server/python.mdx
  • docs/reference/sdks/server/cpp.mdx
  • docs/reference/sdks/client/kotlin.mdx
  • docs/reference/sdks/client/swift.mdx
  • docs/reference/sdks/server/rust.mdx
  • docs/reference/sdks/server/ruby.mdx
  • docs/reference/sdks/client/web/react.mdx
  • docs/reference/sdks/client/web/index.mdx
  • docs/reference/sdks/client/web/angular.mdx
  • docs/reference/sdks/server/javascript/nestjs.mdx
  • docs/reference/sdks/server/javascript/index.mdx
  • docs/reference/sdks/server/dart.mdx
  • docs/reference/sdks/server/go.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/reference/sdks/server/dotnet.mdx
  • docs/reference/sdks/server/java.mdx

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
docs/reference/sdks/server/php.mdx (1)

216-218: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Inconsistent strategy execution wording is still present.

Line 216 says “evaluates all providers in order” but also “returns the first successful result,” and Line 295 (“at one time”) conflicts with Line 324 (“sequentially”). Please make each strategy’s execution model unambiguous and consistent.

Suggested wording tweak
-1. **FirstMatchStrategy** (default): Evaluates all providers in order and returns the first successful result.
+1. **FirstMatchStrategy** (default): Evaluates providers in order and returns the first successful result.

-3. **ComparisonStrategy**: Evaluates all providers at one time.
+3. **ComparisonStrategy**: Evaluates all providers before determining the final result.

-- Evaluates **ALL providers** sequentially
+- Evaluates **ALL providers** before selecting a final result

Also applies to: 295-295, 324-324

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/sdks/server/php.mdx` around lines 216 - 218, The strategy
descriptions in the php SDK docs use conflicting execution wording, so make each
one explicit and consistent. Update the FirstMatchStrategy,
FirstSuccessfulStrategy, and ComparisonStrategy text to clearly state whether
providers are evaluated sequentially or in parallel, and avoid phrases like “all
providers in order” or “at one time” unless they match the actual behavior. Use
the strategy names themselves to keep the wording aligned across the section.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@docs/reference/sdks/server/php.mdx`:
- Around line 216-218: The strategy descriptions in the php SDK docs use
conflicting execution wording, so make each one explicit and consistent. Update
the FirstMatchStrategy, FirstSuccessfulStrategy, and ComparisonStrategy text to
clearly state whether providers are evaluated sequentially or in parallel, and
avoid phrases like “all providers in order” or “at one time” unless they match
the actual behavior. Use the strategy names themselves to keep the wording
aligned across the section.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1369d0f3-7d40-41fd-aa65-b0dc6d53b839

📥 Commits

Reviewing files that changed from the base of the PR and between 969ca0f and 0e4b9a4.

📒 Files selected for processing (17)
  • docs/reference/sdks/client/kotlin.mdx
  • docs/reference/sdks/client/swift.mdx
  • docs/reference/sdks/client/web/angular.mdx
  • docs/reference/sdks/client/web/index.mdx
  • docs/reference/sdks/client/web/react.mdx
  • docs/reference/sdks/server/cpp.mdx
  • docs/reference/sdks/server/dart.mdx
  • docs/reference/sdks/server/dotnet.mdx
  • docs/reference/sdks/server/go.mdx
  • docs/reference/sdks/server/java.mdx
  • docs/reference/sdks/server/javascript/index.mdx
  • docs/reference/sdks/server/javascript/nestjs.mdx
  • docs/reference/sdks/server/php.mdx
  • docs/reference/sdks/server/python.mdx
  • docs/reference/sdks/server/ruby.mdx
  • docs/reference/sdks/server/rust.mdx
  • src/datasets/sdks/sdk-compatibility.json
✅ Files skipped from review due to trivial changes (13)
  • docs/reference/sdks/server/ruby.mdx
  • docs/reference/sdks/client/swift.mdx
  • docs/reference/sdks/server/cpp.mdx
  • docs/reference/sdks/server/python.mdx
  • docs/reference/sdks/client/web/react.mdx
  • docs/reference/sdks/server/rust.mdx
  • docs/reference/sdks/client/web/index.mdx
  • docs/reference/sdks/client/kotlin.mdx
  • docs/reference/sdks/server/dart.mdx
  • src/datasets/sdks/sdk-compatibility.json
  • docs/reference/sdks/server/javascript/index.mdx
  • docs/reference/sdks/server/javascript/nestjs.mdx
  • docs/reference/sdks/server/dotnet.mdx
🚧 Files skipped from review as they are similar to previous changes (3)
  • docs/reference/sdks/server/java.mdx
  • docs/reference/sdks/client/web/angular.mdx
  • docs/reference/sdks/server/go.mdx

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
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