Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
341bea8
ci: move root install paths off yarn to bun
BridgeAR May 9, 2026
9dffde3
ci: replace yarn services chain with bun isolated install
BridgeAR May 9, 2026
a2ef0cd
ci: drop yarn run from workflows and the license check
BridgeAR May 9, 2026
bb70a6c
ci(docs): build TypeDoc docs with bun
BridgeAR May 9, 2026
7058d76
chore: remove dead yarn machinery and guard the migration
BridgeAR May 9, 2026
3d4d34d
fix(ci): skip lifecycle scripts in package-size-report bun install
BridgeAR May 9, 2026
b0f01f8
fix(test): switch versions/ workspace to bun's hoisted linker
BridgeAR May 9, 2026
14b5015
fix(test): restore moleculer bluebird transitive
BridgeAR May 9, 2026
04d9470
fix(test): revert versions/ workspace to bun's isolated linker
BridgeAR May 9, 2026
7eeccac
fix(test): inject @grpc/grpc-js into pubsub sandboxes
BridgeAR May 9, 2026
412c879
fix(langchain): pin @langchain/openai at the versions/ workspace root
BridgeAR May 9, 2026
8c71c99
fix(test): drop yarn references from new plugin-fix comments
BridgeAR May 9, 2026
e91cb28
fix(test): adapt versions/ sandboxes to bun isolated linker
BridgeAR May 10, 2026
10ba7bc
ci(licenses): skip dd-license-attribution regen on bun.lock
BridgeAR May 10, 2026
a593e69
fix(test): rebuild versions/ native bindings on Node ABI change
BridgeAR May 10, 2026
def984f
ci(licenses): drop yarn references from skip-comment
BridgeAR May 10, 2026
bd03665
fix(test): drop yarn from Node-ABI cache-bust comment
BridgeAR May 10, 2026
19e578e
fix(test): match yarn classic resolution under bun isolated linker
BridgeAR May 10, 2026
22f3dcc
ci(bench): install bun for the GitLab microbenchmarks
BridgeAR May 10, 2026
af36d82
chore(codeowners): own the install-smoke workflow
BridgeAR May 10, 2026
4ffb67f
ci(licenses): regenerate the CSV from bun.lock and auto-commit via oc…
BridgeAR May 10, 2026
843525a
ci(install-smoke): push results to Test Optimization via dd-sts
BridgeAR May 10, 2026
a9d4afd
fix(test): only prune ambiguous bun central symlinks
BridgeAR May 10, 2026
d6627e6
fix(test): override collections to 5.x for q@2.0.0
BridgeAR May 10, 2026
8bea7e6
fix(licenses): strip name fields without regex on untrusted input
BridgeAR May 10, 2026
3385960
fix(test): inject google-auth-library into vertex-ai sandboxes
BridgeAR May 10, 2026
aa6e52a
ci(bench): install unzip before bun-curl on the GitLab runner
BridgeAR May 10, 2026
12b03ca
chore(codeowners): own the docs/ TypeDoc workspace
BridgeAR May 10, 2026
d402ecf
fix(test): pin the langchain-openai floor for its core transitive
BridgeAR May 10, 2026
47f91ac
fix(test): inject zod into the ai sandbox
BridgeAR May 24, 2026
72dd9b8
ci: fix workflow regressions surfaced by the yarn-to-bun rebase
BridgeAR May 25, 2026
497842e
build(deps): regenerate bun.lock after the devDependency bumps
BridgeAR May 25, 2026
30fb58c
fix(test): scope sandbox dependencies for bun's isolated linker
BridgeAR May 25, 2026
cab8ad7
test(scripts): resolve bun via PATH lookup in the sandbox-install guard
BridgeAR May 25, 2026
8b88347
fix(test): pass --ignore-engines to yarn in sandbox specs
BridgeAR May 25, 2026
e181f50
ci(platform): bound the consumer-install step with a retry
BridgeAR May 25, 2026
6ede16d
test(iast): drop vestigial yarn re-install in sourcemap sandbox
BridgeAR May 25, 2026
d5419a2
ci(install): commit versions/bunfig.toml so the isolated linker is st…
BridgeAR May 25, 2026
be69b6e
ci(datadog-ci): pin the action's npm install with a lockfile
BridgeAR May 25, 2026
0dd9a7a
chore(security): cool down npm installs and freeze the dev lockfile
BridgeAR May 25, 2026
a9926ab
ci: finish yarn-to-bun rebase conflict cleanup
BridgeAR Jul 13, 2026
9badc39
ci(install): fix remaining bun migration failures
BridgeAR Jul 13, 2026
b907570
ci(install): handle legacy locks and incomplete registry metadata
BridgeAR Jul 13, 2026
4794f94
ci(install): normalize legacy GitHub shorthand
BridgeAR Jul 13, 2026
87940d7
bench: preserve baseline package manager in comparisons
BridgeAR Jul 13, 2026
f9aa5c6
build(deps): sync bun lock with master
BridgeAR Jul 14, 2026
3b29864
chore(codeowners): own versions bun config
BridgeAR Jul 14, 2026
e41f4d8
build(docs): sync bun lock with master
BridgeAR Jul 15, 2026
b047c95
ci(install): cache plugin sandbox metadata
BridgeAR Jul 15, 2026
0d315ac
ci(install): close bun migration hardening gaps
BridgeAR Jul 15, 2026
b4373af
chore(licenses): merge attribution across locked versions
BridgeAR Jul 15, 2026
ff02654
ci(install): tighten migration metadata checks
BridgeAR Jul 15, 2026
728a6bf
ci(install): handle release-age races in sandboxes
BridgeAR Jul 15, 2026
fdc64e4
test(install): cover plugin workspace failure paths
BridgeAR Jul 15, 2026
f3d9cfc
ci(lint): stabilize Actions import classification
BridgeAR Jul 16, 2026
4a4385f
test(install): scope sandbox policy to each plugin
BridgeAR Jul 16, 2026
90ba183
test(install): preserve highest bun workspace versions
BridgeAR Jul 16, 2026
b973ff7
test(knex): make sqlite build dependency direct
BridgeAR Jul 16, 2026
f8f24d6
ci(install): freeze all Bun-managed dependency trees
BridgeAR Jul 17, 2026
171b2bb
fix(install): silence Bun prepare output
BridgeAR Jul 17, 2026
6d0dcdf
ci(install): harden Bun artifact packaging
BridgeAR Jul 20, 2026
73912f7
test(install): allow Yarn validation fixtures
BridgeAR Jul 20, 2026
e34ac37
ci(install): bootstrap Bun inside source archives
BridgeAR Jul 20, 2026
bc8b7e5
ci(coverage): isolate patched Bun dependencies
BridgeAR Jul 20, 2026
05a9fae
test(install): cover Bun bootstrap branches
BridgeAR Jul 20, 2026
e731184
test(install): isolate Bun bootstrap PATH fixtures
BridgeAR Jul 21, 2026
36553b2
ci(dependencies): refresh vulnerable Bun lock entries
BridgeAR Jul 21, 2026
ef6f31d
ci: assign vendor lockfile ownership
BridgeAR Jul 21, 2026
7b23d99
ci(dependencies): align Bun lock after rebase
BridgeAR Jul 21, 2026
7dfefa6
ci: fix Bun rebase integration gaps
BridgeAR Jul 29, 2026
66d38df
ci(dependencies): patch brace-expansion and ignore its cross-major ad…
BridgeAR Jul 29, 2026
677fce4
test(install): declare the peer transitives the sandbox specs resolve
BridgeAR Jul 29, 2026
3bf236c
test(llmobs): resolve the agents openai client from the loaded package
BridgeAR Jul 30, 2026
3a77335
ci(licenses): quote the GitHub output writes
BridgeAR Jul 30, 2026
2b5861a
ci(install): close Bun migration validation gaps
BridgeAR Jul 30, 2026
4dde4f9
ci(install): resolve forced transitives from the consuming package's …
BridgeAR Jul 31, 2026
1347722
fix(scripts): reject a non-JavaScript npm_execpath in the Bun bootstrap
BridgeAR Jul 31, 2026
f982f10
fix(vendor): attribute every bundled package's license
BridgeAR Jul 31, 2026
3135773
fix(licenses): attribute the peers of production dependencies
BridgeAR Jul 31, 2026
2a3c7c2
ci(audit): fail on an accepted advisory that is no longer reported
BridgeAR Jul 31, 2026
aa3f99e
docs(llmobs): name the services script the repo actually has
BridgeAR Jul 31, 2026
f7e995b
fix(licenses): keep copied-source attributions out of the dependency …
BridgeAR Jul 31, 2026
bf20060
fix(audit): fail on a severity the wrapper cannot rank
BridgeAR Jul 31, 2026
ff85c3e
ci(audit): run the audit when its own policy changes
BridgeAR Jul 31, 2026
e54588a
ci(install): derive the CI Bun install from the pinned version
BridgeAR Jul 31, 2026
08f343a
test(langchain): drop an override Bun silently ignores
BridgeAR Jul 31, 2026
2567247
ci(codeowners): own the whole .github tree and lint it
BridgeAR Jul 31, 2026
9d965a3
ci(bun): fix rebased migration regressions
BridgeAR Aug 8, 2026
eec315d
ci(bun): fix latest master integration
BridgeAR Aug 10, 2026
08207e5
ci(bun): fix license and dependency audits
BridgeAR Aug 10, 2026
525782b
ci(bun): simplify migration follow-ups
BridgeAR Aug 11, 2026
2548211
ci(audit): restore scheduled Bun checks
BridgeAR Aug 11, 2026
35046b1
test(plugins): remove obsolete Bun dependency workarounds (#9769)
BridgeAR Aug 11, 2026
5149e77
ci(bun): prevent partial-state success
BridgeAR Aug 11, 2026
cd6409b
test(install): restore sandbox install prerequisites
BridgeAR Aug 12, 2026
c2c99ce
ci(instrumentation): cap Confluent tests at Node 24
BridgeAR Aug 12, 2026
ec17155
ci(install): refresh Bun lock after rebase
BridgeAR Aug 12, 2026
d6422fe
ci(instrumentation): match Confluent range to Node 24
BridgeAR Aug 12, 2026
0d54b51
chore(deps): harden Bun migration safeguards
BridgeAR Aug 18, 2026
2c3380a
ci: cap Bun network concurrency for plugin installs
BridgeAR Aug 18, 2026
46d6e48
ci: serialize Bun plugin downloads
BridgeAR Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/apm-integrations/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ Follow these steps when creating or modifying an integration:
6. **Run tests** — Validate with:

```bash
# Run plugin tests (preferred CI command — handles yarn services automatically)
# Run plugin tests (preferred CI command — handles `npm run services` automatically)
PLUGINS="<name>" npm run test:plugins:ci

# If the plugin needs external services (databases, message brokers, etc.),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ See [Testing](testing.md) for complete templates.
**ESM integration tests** — `packages/datadog-plugin-<name>/test/integration-test/`

```bash
# CI command (preferred) — handles dependency installation via yarn services
# CI command (preferred) — handles dependency installation via `npm run services`
PLUGINS="<name>" npm run test:plugins:ci
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ source hooks, ESM support, and avoiding runtime monkey-patching.
Engine: `@apm-js-collab/code-transformer` (mirror of
[nodejs/orchestrion-js](https://github.com/nodejs/orchestrion-js)), vendored at
`vendor/dist/@apm-js-collab/code-transformer/`. Installed version is in
`vendor/package-lock.json`.
`vendor/bun.lock`.

> **Verify before relying on a field/transform.** The engine is actively
> developed and the config surface changes between releases. This doc tracks
Expand Down
6 changes: 3 additions & 3 deletions .agents/skills/apm-integrations/references/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,13 +191,13 @@ describe('esm', () => {

## Running Tests

dd-trace uses a non-standard dependency installation for plugin tests. Libraries under test are installed per-version via `yarn services`, not through the normal `node_modules`. The `:ci` script handles this automatically.
dd-trace uses a non-standard dependency installation for plugin tests. Libraries under test are installed per-version via `npm run services` (which drives `scripts/install_plugin_modules.js` and a bun isolated install per sandbox), not through the normal `node_modules`. The `:ci` script handles this automatically.

```bash
# CI command (preferred) — runs yarn services for dependency installation, then tests
# CI command (preferred) — runs `npm run services` for dependency installation, then tests
PLUGINS="<name>" npm run test:plugins:ci

# Unit tests only (assumes yarn services already ran)
# Unit tests only (assumes `npm run services` already ran)
PLUGINS="<name>" npm run test:plugins

# With external services (e.g., databases, message brokers)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ npm run test:llmobs:sdk # everything except the plugin spec
`packages/dd-trace/test/llmobs/plugins/@(${PLUGINS})/*.spec.js`.

`Cannot find module '…/versions/<package>@<version>'` is a missing version fixture, not a broken spec:
`PLUGINS=<integration> yarn services` installs it. The error names the npm package while `PLUGINS` takes
`PLUGINS=<integration> npm run services` installs it. The error names the npm package while `PLUGINS` takes
the integration key, which is the file name under `packages/datadog-instrumentations/src/` — so
`@anthropic-ai/sdk` is `anthropic` and `@google/genai` is `google-genai`. The fixtures live in a gitignored
`versions/` directory at the repo root, so a fresh worktree has none of them.
2 changes: 1 addition & 1 deletion .cursor/worktrees.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"scripts": {
"postCreate": "yarn install"
"postCreate": "bun install"
}
}
7 changes: 7 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
/packages/dd-trace/src/propagation-hash/ @DataDog/apm-idm-js
/packages/dd-trace/test/plugins/ @DataDog/apm-idm-js
/packages/dd-trace/test/process-tags.spec.js @DataDog/apm-idm-js
/versions/bunfig.toml @DataDog/lang-platform-js
/packages/dd-trace/src/service-naming/ @DataDog/apm-idm-js
/packages/dd-trace/test/service-naming/ @DataDog/apm-idm-js
/packages/dd-trace/test/payload_tagging.spec.js @DataDog/apm-idm-js
Expand Down Expand Up @@ -328,6 +329,7 @@
# CI
/.github/actions/upload-coverage-artifact/ @DataDog/ci-app-libraries
/.github/actions/upload-junit-artifacts/ @DataDog/ci-app-libraries
/.github/all-green/ @DataDog/lang-platform-js
/.github/editorconfig-checker/ @Datadog/lang-platform-js
/.github/playwright/ @DataDog/ci-app-libraries
/.github/selenium/ @DataDog/ci-app-libraries
Expand All @@ -337,6 +339,7 @@
/.github/workflows/mirror-image.yml @Datadog/lang-platform-js
/.github/workflows/all-green.yml @Datadog/lang-platform-js
/.github/workflows/audit.yml @DataDog/lang-platform-js
/.github/workflows/dependabot-audit.yml @DataDog/lang-platform-js
/.github/workflows/custom-node-version-dispatch.yml @Datadog/lang-platform-js
/.github/workflows/dependabot-automation.yml @DataDog/lang-platform-js @DataDog/apm-sdk-capabilities-js
/.github/workflows/flakiness.yml @DataDog/lang-platform-js
Expand Down Expand Up @@ -384,10 +387,14 @@
/openfeature.js @DataDog/lang-platform-js @DataDog/feature-flagging-and-experimentation-sdk

/.github/CODEOWNERS @DataDog/lang-platform-js
/.github/audit-allowlist.json @DataDog/lang-platform-js
/.github/dependabot.yml @DataDog/lang-platform-js @DataDog/apm-sdk-capabilities-js
/.github/pull_request_template.md @DataDog/lang-platform-js
/.github/vendored-dependencies.csv @DataDog/lang-platform-js

/docs/bun.lock @DataDog/lang-platform-js
/vendor/bun.lock @DataDog/lang-platform-js

/benchmark/* @DataDog/lang-platform-js
/benchmark/openfeature.js @DataDog/lang-platform-js @DataDog/feature-flagging-and-experimentation-sdk
/benchmark/sirun/* @DataDog/lang-platform-js
Expand Down
1 change: 0 additions & 1 deletion .github/actions/datadog-ci/.yarnrc

This file was deleted.

4 changes: 3 additions & 1 deletion .github/actions/datadog-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ runs:
with:
node-version: '20'

# The repository's Node setup installs Bun through npm, so this also works in
# container jobs without `unzip`.
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
max_attempts: 3
timeout_minutes: 5
retry_wait_seconds: 30
command: |
cd ${{ github.workspace }}/.github/actions/datadog-ci
yarn install --frozen-lockfile
bun --config="${{ github.workspace }}/bunfig.toml" install --frozen-lockfile --ignore-scripts

- shell: bash
run: echo "${{ github.workspace }}/.github/actions/datadog-ci/node_modules/.bin" >> $GITHUB_PATH
15 changes: 15 additions & 0 deletions .github/actions/datadog-ci/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 0 additions & 8 deletions .github/actions/datadog-ci/yarn.lock

This file was deleted.

8 changes: 6 additions & 2 deletions .github/actions/install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ runs:
steps:
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
max_attempts: 3
max_attempts: 2
timeout_minutes: 5
retry_wait_seconds: 30
command: bun install --linker=hoisted --trust --network-concurrency 8
shell: bash
# A retry against Bun's partial install state can skip lifecycle scripts. Start every attempt clean.
command: >-
rm -rf node_modules &&
bun install --frozen-lockfile --linker=hoisted --network-concurrency 8
14 changes: 13 additions & 1 deletion .github/actions/instrumentations/test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ inputs:
description: 'Lower Node alias: oldest-maintenance-lts or newest-maintenance-lts.'
required: false
default: oldest-maintenance-lts
node-ceiling:
description: 'Upper Node version identifier.'
required: false
default: latest
node-ceiling-package-range:
description: 'Package range used by the upper Node run.'
required: false
default: ''
suffix:
description: 'Unique suffix for artifact naming — required when called from a matrix job.'
required: false
Expand All @@ -19,9 +27,13 @@ runs:
- uses: ./.github/actions/install
- run: npm run test:instrumentations:ci
shell: bash
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/node
with:
version: ${{ inputs.node-ceiling }}
- run: npm run test:instrumentations:ci
shell: bash
env:
PACKAGE_VERSION_RANGE: ${{ inputs.node-ceiling-package-range }}
- uses: ./.github/actions/coverage
with:
flags: instrumentations-${{ github.job }}
Expand Down
7 changes: 6 additions & 1 deletion .github/actions/node/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,12 @@ runs:
run: |
MAJOR=$(node -e "process.stdout.write(String(parseInt(process.versions.node)))")
echo "supported=$([ "$MAJOR" -ge 12 ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
# `scripts/bun.js` bootstraps the pinned version locally whenever the global one differs, so a
# hard-coded version here would not run the wrong Bun — it would just make every job pay for that
# bootstrap once Dependabot bumps the devDependency. Read the pin instead of restating it.
- name: Install Bun
if: steps.bun-check.outputs.supported == 'true'
shell: bash
run: npm install -g bun@1.3.1 --prefer-offline --no-audit --no-fund
run: |
VERSION=$(node -p "require('./package.json').devDependencies.bun")
Comment thread
BridgeAR marked this conversation as resolved.
npm install -g "bun@$VERSION" --prefer-offline --no-audit --no-fund
Loading
Loading