Skip to content

v0.19.0 - #226

Merged
bengl merged 20 commits into
v0.xfrom
bengl/v0.19.0-proposal
Aug 31, 2026
Merged

v0.19.0#226
bengl merged 20 commits into
v0.xfrom
bengl/v0.19.0-proposal

Conversation

@bengl

@bengl bengl commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

Releases 0.19.0, bringing every merged-but-unreleased main PR onto v0.x.

Shape follows the existing v0.x convention: one cherry-picked commit per merged PR that isn't in a release yet, oldest first, then release housekeeping and the version bump. The branch is linear off b152efa (v0.18.1) with no merge parent, so rebase-merge works as usual.

Cherry-picked (18 commits, oldest first):

commit PR
8e5588e chore(deps): bump the gh-actions-packages group across 1 directory with 3 updates (#139)
eae9a3f chore(deps): bump libdd-crashtracker from v35.0.0 to v37.0.0 (#147)
16a51ad chore(deps-dev): bump the minor-updates group across 1 directory with 3 updates (#142)
4a617fe chore(deps): bump express from 4.22.1 to 5.2.1 in /test/crashtracker (#141)
588c931 ADMS: vuln patch: brace-expansion, flatted, picomatch (#133)
1a718a8 feat: added file capability APMSP-3780 (#177)
b1dca31 feat: added env capability APMSP-3780 (#176)
f8107be feat: add DDSketch WASM bindings (#198)
617af2a build: simplify WASM build script (#199)
1bc95f6 feat: Adopt TraceExporter's Telemetry stuff (#183)
4f1808e ADMS: vuln brace-expansion (patch → 5.0.9) (#201)
7224cbc Add remote config wasm layer (#197)
1c98707 feat(libdatadog): add universal core and optional extras packages (#207)
a67eca7 feat(libdatadog): add apm data pipeline (#205)
50cf32b ci(libdatadog): add artifact dependency and size reports (#208)
717ec96 refactor(libdatadog): keep data pipeline on WASM (#216)
3197ab6 refactor(libdatadog): remove N-API backend (#218)
90b9ef6 feat(libdatadog): add dedicated remote config WASM (#217)

All 18 applied without conflict.

Plus two commits of release housekeeping:

  • 14c0b30 chore(release): adopt main's http_transport test and lockfilesv0.x's copy of the wasm request-body test predates the connectionPooling parameter, so replaying it here calls httpRequest with the old nine-argument signature and reads wasm_memory from the wrong slot (TypeError: Cannot read properties of undefined (reading 'buffer')). Takes main's version, the one fix(capabilities): copy wasm request bodies before send #225 landed with the extra argument. Also takes main's Cargo.lock and yarn.lock, where replaying the dependency bumps left only cosmetic dedupe-key differences (libdd-common 5.0.0 vs libdd-common).
  • 20e775a v0.19.0 — bumps the root, packages/libdatadog, and packages/libdatadog/wasm versions plus the @datadog/libdatadog-wasm dependency pin and lockfile. packages/libdatadog/test/package.test.js asserts all four match, so a root-only bump fails.

Deliberately excluded — four main commits whose content already shipped on v0.x under different SHAs: e97ba3e (#159, released as 441d070 in v0.12.2), 0e96992 (Bun transport head, released as 9dbfe14 in v0.15.0), d99947f (#173, released as e2487aa in v0.17.0), and ae6f3bc (#225, released as 5c2e31d in v0.18.1).

Relationship to main

The resulting tree matches origin/main except for test/pipeline.js, which keeps 29 lines that v0.x has and main dropped when it rewrote that harness: the refreshes change-buffer views when string interning grows memory test and a datadog-client-computed-stats header assertion. Both pass here (52 pass / 0 fail with the pipeline wasm built), so this release ships slightly more coverage than main rather than less.

Breaking changes for consumers

  • @datadog/libdatadog changes API surface entirely. 0.18.1 exported { find, load, maybeLoad } from load.js; 0.19.0 exports the WASM API (createAgentlessExporter, backend, zstd_compress, DDSketch). Consumers that used find/load must move to @datadog/libdatadog-extras, published from the repo root.
  • Two new package names publish for the first time at 0.19.0: @datadog/libdatadog-extras and @datadog/libdatadog-wasm.
  • The standalone datadog-js-zstd crate is gone. Zstd moved into crates/libdatadog-wasm/src/zstd/, surfaced as zstd_compress from @datadog/libdatadog. Anything loading prebuilds/datadog-js-zstd needs updating.
  • The N-API backend is removed; native pieces (crashtracker, process_discovery) ship in @datadog/libdatadog-extras.

Release mechanics

Merging this pushes v0.x, which triggers .github/workflows/release.yml: publishes @datadog/libdatadog-wasm@0.19.0, @datadog/libdatadog@0.19.0, @datadog/libdatadog-extras@0.19.0 under the latest tag, then pushes tag v0.19.0.

How to test the change?

Run locally in a worktree at this branch:

  • npx eslint . — clean
  • npm run build:wasm --prefix packages/libdatadog — builds libdatadog_wasm + remote_config, no errors
  • npm test --prefix packages/libdatadog — 37 pass, 0 fail
  • npm run test:package --prefix packages/libdatadog — 2 pass, 0 fail
  • node scripts/build-wasm.js ./crates/pipeline ./prebuilds/pipeline then node --test-force-exit test/pipeline.js — 52 pass, 0 fail
  • node --test-force-exit test/http_transport.js — 21 pass, 0 fail
  • yarn check:dependencies — no duplicates, tokio limited to the remote config artifact
  • git diff --stat origin/main HEAD — only the test/pipeline.js extras noted above

Not run locally: the root native suite (yarn test), which needs a full cargo prebuild; CI covers it via action-prebuildify.

Follow-up

v0.x's merge base with main is still 6dfdd90 (2024-09-03), since this branch takes content by cherry-pick rather than by merge. v0.20.0 will need the same cherry-pick pass.

dependabot Bot and others added 20 commits August 31, 2026 13:55
…th 3 updates (#139)

Bumps the gh-actions-packages group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-node](https://github.com/actions/setup-node) and [DataDog/dd-octo-sts-action](https://github.com/datadog/dd-octo-sts-action).


Updates `actions/checkout` from 6.0.2 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@de0fac2...9c091bb)

Updates `actions/setup-node` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@53b8394...48b55a0)

Updates `DataDog/dd-octo-sts-action` from 1.0.3 to 1.0.4
- [Release notes](https://github.com/datadog/dd-octo-sts-action/releases)
- [Commits](DataDog/dd-octo-sts-action@acaa02e...96a2546)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: gh-actions-packages
- dependency-name: actions/setup-node
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gh-actions-packages
- dependency-name: DataDog/dd-octo-sts-action
  dependency-version: 1.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gh-actions-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [libdd-crashtracker](https://github.com/DataDog/libdatadog) from v35.0.0 to v37.0.0.
- [Release notes](https://github.com/DataDog/libdatadog/releases)
- [Commits](DataDog/libdatadog@aa78483...86b7f57)

---
updated-dependencies:
- dependency-name: libdd-crashtracker
  dependency-version: b2a83ff19a2f4760d180bd9eb9e91f41566ba5b9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… 3 updates (#142)

Bumps the minor-updates group with 3 updates in the / directory: [eslint](https://github.com/eslint/eslint), [eslint-plugin-import-x](https://github.com/un-ts/eslint-plugin-import-x) and [globals](https://github.com/sindresorhus/globals).


Updates `eslint` from 10.0.3 to 10.6.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v10.0.3...v10.6.0)

Updates `eslint-plugin-import-x` from 4.16.2 to 4.17.1
- [Release notes](https://github.com/un-ts/eslint-plugin-import-x/releases)
- [Changelog](https://github.com/un-ts/eslint-plugin-import-x/blob/master/CHANGELOG.md)
- [Commits](un-ts/eslint-plugin-import-x@v4.16.2...v4.17.1)

Updates `globals` from 17.4.0 to 17.7.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v17.4.0...v17.7.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-updates
- dependency-name: eslint-plugin-import-x
  dependency-version: 4.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-updates
- dependency-name: globals
  dependency-version: 17.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…141)

Bumps [express](https://github.com/expressjs/express) from 4.22.1 to 5.2.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](expressjs/express@v4.22.1...v5.2.1)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 5.2.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: gh-worker-campaigns-3e9aa4[bot] <244854796+gh-worker-campaigns-3e9aa4[bot]@users.noreply.github.com>
* feat: added file capability

* fix: JS tomfoolery

* chore: change input to main now that libdatadog's side was merged

* fix: post bump fixes

* fix: review

* fix: address comments

* fix: detached buffer thing

* fix: transport for files renamed, uniform lazy loading
* feat: added env capability

* feat: respect envcapabilities method unsafedness

* feat: validate before saying it's ok

* revert: remove set/unset since they would be dangerous APIs in libdatadog (and are most likely not useful in the near/middel future in dd-trace-js)

* chore: change input to main's commit that has the change

* docs: update doc to remove specific references to the capabilities

* fix: remove extra checks

* fix: cache env beforehand
* feat: add DDSketch WASM bindings
* feat: added env capability

* feat: respect envcapabilities method unsafedness

* feat: validate before saying it's ok

* revert: remove set/unset since they would be dangerous APIs in libdatadog (and are most likely not useful in the near/middel future in dd-trace-js)

* chore: change input to main's commit that has the change

* docs: update doc to remove specific references to the capabilities

* fix: remove extra checks

* fix: cache env beforehand

* feat: Adopt TraceExporter's Telemetry stuff

* docs: fix libdatadog's behavior when 0 is passed

* chore: js tomfoolery

* fix: comments

* fix: use Cells uniformaly

* feat: make the losslessness obvious
Co-authored-by: gh-worker-campaigns-3e9aa4[bot] <244854796+gh-worker-campaigns-3e9aa4[bot]@users.noreply.github.com>
* Add remote config wasm layer

Also consistently upgrades to v40.0.0 instead of multiple revs being pinned.

* Address codex comments

* Fix node v18 test

* Update to agentless rc

* Drop webcrypto polyfill
* feat(libdatadog): add universal core and optional extras packages

* refactor: restructure libdatadog packages

* test: tighten wasm size budgets

* ci(libdatadog): fix cross-platform builds and tests

* fix(libdatadog): address package compatibility issues
* feat(libdatadog): add apm data pipeline

* test(libdatadog): load pipeline wasm artifact

* docs(libdatadog): document cancellable sleep follow-up

* test(libdatadog): stabilize timeout retry assertion

* fix(libdatadog): expose pipeline API to ESM

* refactor(libdatadog): share agentless pipeline adapter

* chore(libdatadog): update data pipeline revision

* chore(libdatadog): update data pipeline revision

* chore(libdatadog): use merged data pipeline revision
* ci(libdatadog): add artifact dependency and size reports

* ci(libdatadog): fix wasm report artifact path
* refactor(libdatadog): keep data pipeline on WASM

The agentless exporter has no native consumer yet, so its N-API implementation duplicates the WASM exporter and its lifecycle. The default entry point now loads the WASM binding only when it creates an exporter.

Refs: #205

* refactor(libdatadog): isolate native backend

The native facade exposed the agentless exporter even though every export used WASM, which kept a false backend-parity contract.

* fix(libdatadog): defer agentless implementation loading

The shared exporter imported the WASM workspace package directly, which root lint cannot resolve. Keeping binding ownership in the WASM facade also defers agentless transport loading until exporter creation.
The package has no native-only consumer, so platform artifacts add build and release work without providing a required capability.
* feat(libdatadog): add dedicated remote config WASM

Remote Config pulls in TUF, cryptography, and HTTP dependencies that existing users do not need. Keeping its artifact separate preserves the existing universal WASM load and compile cost.

* ci(libdatadog): validate remote config entry point

The lint job runs before generated Remote Config modules exist, so fresh checkouts reject both wrapper imports. The request test also verifies that the storage hook wraps the HTTP request.

* refactor(libdatadog): simplify remote config packaging

Package export maps can target the canonical CommonJS artifacts directly, so forwarding files own no format or compatibility boundary.
v0.x's copy of the wasm request-body test predates the connectionPooling
parameter, so replaying it here calls httpRequest with the old
nine-argument signature and reads wasm_memory from the wrong slot. Take
main's version, which #225 landed with the extra argument.

Also take main's Cargo.lock and yarn.lock; replaying the dependency
bumps produced only cosmetic dedupe-key differences from the tree those
commits were reviewed against.
Bump the root, packages/libdatadog, and packages/libdatadog/wasm
versions in lockstep, as packages/libdatadog/test/package.test.js
requires.
@bengl
bengl force-pushed the bengl/v0.19.0-proposal branch from fecc9fb to 20e775a Compare August 31, 2026 17:57
@github-actions

Copy link
Copy Markdown

Overall package size

Self size: 31.66 MB
Deduped: 31.66 MB
No deduping: 31.66 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------|

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@bengl
bengl marked this pull request as ready for review August 31, 2026 18:01
@bengl
bengl requested review from a team as code owners August 31, 2026 18:01
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-31T18:06:02.571388Z 20e775a Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@BridgeAR BridgeAR left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

RSLGTM

@bengl
bengl merged commit 251875a into v0.x Aug 31, 2026
51 checks passed
@bengl
bengl deleted the bengl/v0.19.0-proposal branch August 31, 2026 18:07
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.

6 participants