Skip to content

👷 chore: release browser 2.2.0, Node.js 2.6.0, and core 3.3.0 - #440

Merged
leoromanovsky merged 1 commit into
mainfrom
release/browser-node-core-minor-20261027
Oct 27, 2026
Merged

leoromanovsky merged 1 commit into
mainfrom
release/browser-node-core-minor-20261027

Conversation

@leoromanovsky

Copy link
Copy Markdown
Collaborator

Motivation

Published browser packages do not yet offer the merged flag-selection and opt-out controls. The Node provider also needs the configuration withdrawal and recovery fix so applications stop evaluating stale configuration and recover when configuration returns.

Changes

Prepare the next minor release of each package from main at b6ba93b444f017c546df5fc69fe8cc33513bd3b9:

Package Current Release
@datadog/flagging-core 3.2.0 3.3.0
@datadog/openfeature-browser 2.1.0 2.2.0
@datadog/openfeature-node-server 2.5.0 2.6.0

Both providers pin core 3.3.0 exactly. Applications that consume core directly, including React Native applications, can adopt 3.3.0. The separate @datadog/mobile-react-native-openfeature package is outside this release. The Node provider's experimentation opt-out controls remain outside this release; #420 is still open.

The changelog describes the customer-facing changes and backend requirements. Publish core first, then browser and Node.js through their individual package tags and the existing GitHub Release workflow. Merge this PR with a merge commit as required by the release process.

Test instructions

Validated under Node.js 24.22.1 with BUILD_MODE=release: immutable install, lint/format, version and exact-dependency checks, licenses, 124 build-script tests, build/typecheck, 2,235 unit tests (6 existing skips), and package creation all passed.

Packed-package checks passed: 43 Chromium tests, Node installation without OpenFeature and with latest/minimum supported OpenFeature versions, and all six React Native Metro combinations (iOS/Android with modern, legacy CJS, and legacy ESM resolution). The Metro bundles execute under Node with TextEncoder, TextDecoder, and BigInt removed; this is not a Hermes/device runtime check. Staging and production were not tested.

This PR only updates release metadata and notes; it reuses the existing unit and integration coverage.

Checklist

  • Updated Documentation
  • Tested locally
  • Tested on staging
  • Added unit tests for this change.
  • Added e2e/integration tests for this change.

@github-actions

Copy link
Copy Markdown

OpenFeature Browser Provider Bundle Sizes

Measured from the Vite production output after installing packed @datadog/flagging-core and @datadog/openfeature-browser tarballs.

Both scenarios initialize an OpenFeature provider, evaluate a boolean flag, change context, and evaluate again. Telemetry is disabled for DatadogProvider; no tracking hooks are registered for DatadogCoreProvider. DatadogProvider fetches precomputed assignments for each context; DatadogCoreProvider receives rules from fetchRulesConfiguration once and evaluates locally.

Sizes include OpenFeature and the same small scenario harness. Configuration responses are supplied by Playwright and are not bundled. These are complete scenario JS sizes, not configuration payload sizes or isolated provider/Protobuf costs; the difference between rows is not a decoder-only delta.

Scenario HTML JS Assets Raw JS Gzip JS Protobuf Markers
DatadogProvider (precomputed fetching) provider.html 18 101.4 KiB 37.3 KiB no
DatadogCoreProvider + fetchRulesConfiguration core-provider.html 15 170.5 KiB 53.9 KiB yes

Dependency checks passed: no Protobuf markers in default/precomputed scenarios; markers present in rules-based scenarios.

OpenFeature Browser Tracking Hook Bundle Sizes

Synthetic entrypoints import and call tracking hook factories from the packed @datadog/openfeature-browser/rules-based ESM package. Deltas are measured against the no-hook baseline from the same Vite production build.

Scenario HTML JS Assets Raw JS Raw Δ Gzip JS Gzip Δ
tracking hook baseline tracking-baseline.html 6 2.7 KiB 0 B 1.6 KiB 0 B
exposure logging hook tracking-exposure.html 13 68.8 KiB +66.1 KiB 26.2 KiB +24.6 KiB
evaluation logging hook tracking-evaluation.html 13 65.1 KiB +62.4 KiB 24.8 KiB +23.2 KiB
RUM tracking hook tracking-rum.html 9 6.7 KiB +4.1 KiB 3.6 KiB +2.0 KiB
all tracking hooks tracking-all.html 16 73.1 KiB +70.4 KiB 28.2 KiB +26.6 KiB

OpenFeature Node Server Bundle Sizes

Independent Webpack production builds of the installed core and Node SDK tarballs, targeting Node 18 with ESM (module export condition). Node built-ins remain external. OpenFeature, dd-trace, and configuration fixtures are not bundled.

Scenario Raw JS Gzip JS Protobuf Modules
Node provider only 39.3 KiB 12.5 KiB no
SSR helpers only (fetch client rules + serialize) 80.8 KiB 23.4 KiB yes
Node provider + SSR helpers 119.0 KiB 34.7 KiB yes

Adding SSR helpers to the provider adds 79.7 KiB raw / 22.2 KiB gzip in this build. This includes fetching, parsing, and serialization, not just the decoder. SSR helpers fetch rules for the browser, not for configuring that provider (which uses its existing JSON API).

These are bundler sizes, not npm install sizes, unbundled Node require/import costs, payload sizes, or latency. Gzip compares compressed artifacts. The browser scenarios include OpenFeature and a different harness, so their sizes are not directly comparable.

Dependency checks passed: no Protobuf runtime or generated schema modules in the provider-only bundle; present in both SSR bundles (checked using Webpack module statistics).

This report shows current PR artifact sizes only; it does not compare against the base branch.

@leoromanovsky
leoromanovsky marked this pull request as ready for review October 27, 2026 18:30
@leoromanovsky
leoromanovsky requested a review from a team as a code owner October 27, 2026 18:30
@leoromanovsky
leoromanovsky merged commit d569ba5 into main Oct 27, 2026
5 checks passed
@leoromanovsky
leoromanovsky deleted the release/browser-node-core-minor-20261027 branch October 27, 2026 18:42
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