Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
35a3e4b
ci: move root install paths off yarn to bun
BridgeAR May 9, 2026
9c4b29b
ci: replace yarn services chain with bun isolated install
BridgeAR May 9, 2026
46d98c9
ci: drop yarn run from workflows and the license check
BridgeAR May 9, 2026
8a6b30f
ci(docs): build TypeDoc docs with bun
BridgeAR May 9, 2026
b4912ad
chore: remove dead yarn machinery and guard the migration
BridgeAR May 9, 2026
d51edd9
fix(ci): skip lifecycle scripts in package-size-report bun install
BridgeAR May 9, 2026
9e624bf
fix(test): switch versions/ workspace to bun's hoisted linker
BridgeAR May 9, 2026
f06ddca
fix(test): restore moleculer bluebird transitive
BridgeAR May 9, 2026
0a197de
fix(test): revert versions/ workspace to bun's isolated linker
BridgeAR May 9, 2026
9e95dcc
fix(test): inject @grpc/grpc-js into pubsub sandboxes
BridgeAR May 9, 2026
8cda175
fix(langchain): pin @langchain/openai at the versions/ workspace root
BridgeAR May 9, 2026
00a1d01
fix(test): drop yarn references from new plugin-fix comments
BridgeAR May 9, 2026
28bf5f4
fix(test): adapt versions/ sandboxes to bun isolated linker
BridgeAR May 10, 2026
3632a5c
ci(licenses): skip dd-license-attribution regen on bun.lock
BridgeAR May 10, 2026
69bf63a
fix(test): rebuild versions/ native bindings on Node ABI change
BridgeAR May 10, 2026
0067b8a
ci(licenses): drop yarn references from skip-comment
BridgeAR May 10, 2026
e28b0b8
fix(test): drop yarn from Node-ABI cache-bust comment
BridgeAR May 10, 2026
51a8021
fix(test): match yarn classic resolution under bun isolated linker
BridgeAR May 10, 2026
6cacbbf
ci(bench): install bun for the GitLab microbenchmarks
BridgeAR May 10, 2026
2045a9e
chore(codeowners): own the install-smoke workflow
BridgeAR May 10, 2026
a035d79
ci(licenses): regenerate the CSV from bun.lock and auto-commit via oc…
BridgeAR May 10, 2026
da84433
ci(install-smoke): push results to Test Optimization via dd-sts
BridgeAR May 10, 2026
f953361
fix(test): only prune ambiguous bun central symlinks
BridgeAR May 10, 2026
ad696e8
fix(test): override collections to 5.x for q@2.0.0
BridgeAR May 10, 2026
7071395
fix(licenses): strip name fields without regex on untrusted input
BridgeAR May 10, 2026
e8389a2
fix(test): inject google-auth-library into vertex-ai sandboxes
BridgeAR May 10, 2026
30b4214
ci(bench): install unzip before bun-curl on the GitLab runner
BridgeAR May 10, 2026
6e4719c
chore(codeowners): own the docs/ TypeDoc workspace
BridgeAR May 10, 2026
6c8d452
fix(test): pin the langchain-openai floor for its core transitive
BridgeAR May 10, 2026
4f808af
fix(test): inject zod into the ai sandbox
BridgeAR May 24, 2026
0adc623
ci: fix workflow regressions surfaced by the yarn-to-bun rebase
BridgeAR May 25, 2026
c737eca
build(deps): regenerate bun.lock after the devDependency bumps
BridgeAR May 25, 2026
74e2c2a
fix(test): scope sandbox dependencies for bun's isolated linker
BridgeAR May 25, 2026
73fc7e0
test(scripts): resolve bun via PATH lookup in the sandbox-install guard
BridgeAR May 25, 2026
19b6f68
fix(test): pass --ignore-engines to yarn in sandbox specs
BridgeAR May 25, 2026
419719e
fix(ci): cache vendor build artefacts alongside node_modules
BridgeAR May 25, 2026
606c934
ci(platform): bound the consumer-install step with a retry
BridgeAR May 25, 2026
9281917
test(iast): drop vestigial yarn re-install in sourcemap sandbox
BridgeAR May 25, 2026
ae650b4
ci(install): commit versions/bunfig.toml so the isolated linker is st…
BridgeAR May 25, 2026
0925615
ci(datadog-ci): pin the action's npm install with a lockfile
BridgeAR May 25, 2026
c201603
chore(security): cool down npm installs and freeze the dev lockfile
BridgeAR May 25, 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 @@ -135,7 +135,7 @@ Follow these steps when creating or modifying an integration:
5. **Write tests** — Add unit tests and ESM integration tests. See [Testing](references/testing.md) for templates.
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 @@ -262,7 +262,7 @@ Add to `.github/workflows/apm-integrations.yml`:
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: yarn test:plugins:ci
- run: npm run test:plugins:ci
strategy:
matrix:
node-version: [18, 22]
Expand All @@ -278,7 +278,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
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
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"
}
}
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,8 @@
/.github/workflows/aiguard.yml @DataDog/asm-js
/.github/workflows/appsec.yml @DataDog/asm-js
/.github/workflows/debugger.yml @DataDog/debugger-nodejs
/.github/workflows/install-smoke.yml @DataDog/lang-platform-js
/docs/ @DataDog/lang-platform-js
/.github/workflows/instrumentation.yml @DataDog/apm-idm-js
/.github/workflows/electron.yml @DataDog/apm-idm-js
/.github/workflows/serverless.yml @DataDog/serverless-aws @DataDog/apm-serverless
Expand Down
1 change: 0 additions & 1 deletion .github/actions/datadog-ci/.yarnrc

This file was deleted.

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

# Stay on npm here so the action works in container jobs that lack `unzip`
# (the playwright matrix runs in `ghcr.io/datadog/dd-trace-js/playwright-tools`,
# which ships without it and breaks `oven-sh/setup-bun`). `npm ci` consumes
# the committed `package-lock.json`, pinning the tarball integrity hash so a
# republished `@datadog/datadog-ci` at the same version number cannot land
# without an explicit lockfile update.
- 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
npm ci --ignore-scripts --no-audit --no-fund

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

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.

39 changes: 37 additions & 2 deletions .github/actions/install/action.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,48 @@
name: Install dependencies
description: Install dependencies
inputs:
cache:
description: Restore and save the bun-install output tar between runs of this workflow/job.
required: false
default: 'false'
runs:
using: composite
steps:
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
- id: install-cache
if: inputs.cache == 'true'
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
# `bun install` runs `prepare`, which `cd vendor && npm ci --include=dev` runs
# `node rspack` and lands the bundled artefacts under `vendor/dist`. Both
# `vendor/package-lock.json` and `bun.lock` feed the install graph, so the cache
# key has to invalidate when either moves.
key: install-cache-${{ github.workflow }}-${{ github.job }}-${{ hashFiles('bun.lock', 'vendor/package-lock.json') }}-v3
path: install-cache.tar
- if: inputs.cache == 'true' && steps.install-cache.outputs.cache-hit == 'true'
shell: bash
run: tar -xf install-cache.tar
- if: inputs.cache != 'true' || steps.install-cache.outputs.cache-hit != 'true'
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
env:
_DD_IGNORE_ENGINES: 'true'
with:
max_attempts: 3
timeout_minutes: 5
retry_wait_seconds: 30
command: bun install --linker=hoisted --trust --network-concurrency 8
# `--frozen-lockfile` makes CI fail the install step when `bun.lock` and
# `package.json` disagree (typical Dependabot bump, contributor who
# edited `package.json` without re-running `bun install`). Without it,
# the install would silently resolve fresh against the registry and the
# supply-chain pin in `bunfig.toml` (`minimumReleaseAge`) would be the
# only thing left protecting that run. The four native packages that
# need their `install` script to fetch the prebuilt binary live in
# `trustedDependencies` in `package.json` — the CLI's `--trust` flag is
# mutually exclusive with `--frozen-lockfile`, so the trust list has to
# be declarative.
command: bun install --frozen-lockfile --linker=hoisted --network-concurrency 8
- if: inputs.cache == 'true' && steps.install-cache.outputs.cache-hit != 'true'
shell: bash
# `node_modules` alone misses `vendor/dist/*` (produced by the rspack postinstall)
# and `vendor/node_modules` (needed for it to re-run on the next miss); without
# them, every cache-hit job fails to require `vendor/dist/limiter` and friends.
run: tar -cf install-cache.tar node_modules vendor/node_modules vendor/dist
4 changes: 2 additions & 2 deletions .github/actions/instrumentations/test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ runs:
id: dd-sts
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:instrumentations:ci
- run: npm run test:instrumentations:ci
shell: bash
- uses: ./.github/actions/node/latest
- run: yarn test:instrumentations:ci
- run: npm run test:instrumentations:ci
shell: bash
- uses: ./.github/actions/coverage
with:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ runs:
id: dd-sts
- uses: ./.github/actions/node/newest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:integration:plugins:coverage
- run: npm run test:integration:plugins:coverage
shell: bash
- uses: ./.github/actions/coverage
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/plugins/integration-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ runs:
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:integration:plugins:coverage
- run: npm run test:integration:plugins:coverage
shell: bash
- uses: ./.github/actions/node/latest
- run: yarn test:integration:plugins:coverage
- run: npm run test:integration:plugins:coverage
shell: bash
- uses: ./.github/actions/coverage
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/actions/plugins/test-and-upstream/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ runs:
- if: ${{ inputs.node-floor == 'newest-maintenance-lts' }}
uses: ./.github/actions/node/newest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:plugins:ci
- run: npm run test:plugins:ci
shell: bash
- run: yarn test:plugins:upstream
- run: npm run test:plugins:upstream
shell: bash
- uses: ./.github/actions/node/latest
- run: yarn test:plugins:ci
- run: npm run test:plugins:ci
shell: bash
- run: yarn test:plugins:upstream
- run: npm run test:plugins:upstream
shell: bash
- uses: ./.github/actions/coverage
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/plugins/test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ runs:
- if: ${{ inputs.node-floor == 'newest-maintenance-lts' }}
uses: ./.github/actions/node/newest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:plugins:ci
- run: npm run test:plugins:ci
shell: bash
- uses: ./.github/actions/node/latest
- run: yarn test:plugins:ci
- run: npm run test:plugins:ci
shell: bash
- uses: ./.github/actions/coverage
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/plugins/upstream/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ runs:
- if: ${{ inputs.node-floor == 'newest-maintenance-lts' }}
uses: ./.github/actions/node/newest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:plugins:upstream
- run: npm run test:plugins:upstream
shell: bash
- uses: ./.github/actions/node/latest
- run: yarn test:plugins:upstream
- run: npm run test:plugins:upstream
shell: bash
# `test:plugins:upstream` runs each plugin's upstream test suite (e.g., axios's own tests)
# against the unit-test harness, which intentionally does not produce NYC coverage for
Expand Down
12 changes: 0 additions & 12 deletions .github/chainguard/yarn-dedupe.sts.yaml

This file was deleted.

16 changes: 9 additions & 7 deletions .github/workflows/aiguard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
id: dd-sts
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: yarn test:aiguard:ci
- run: npm run test:aiguard:ci
- uses: ./.github/actions/coverage
with:
flags: aiguard-macos
Expand All @@ -44,13 +44,13 @@ jobs:
id: dd-sts
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: yarn test:aiguard:ci
- run: npm run test:aiguard:ci
- uses: ./.github/actions/node/newest-maintenance-lts
- run: yarn test:aiguard:ci
- run: npm run test:aiguard:ci
- uses: ./.github/actions/node/active-lts
- run: yarn test:aiguard:ci
- run: npm run test:aiguard:ci
- uses: ./.github/actions/node/latest
- run: yarn test:aiguard:ci
- run: npm run test:aiguard:ci
- uses: ./.github/actions/coverage
with:
flags: aiguard-ubuntu
Expand All @@ -73,7 +73,9 @@ jobs:
with:
version: 24.14.1 # TODO: remove pin when https://github.com/nodejs/node/issues/62991 is fixed
- uses: ./.github/actions/install
- run: yarn test:aiguard:ci
with:
cache: "true"
- run: npm run test:aiguard:ci
- uses: ./.github/actions/node-crash-report
if: failure()
- uses: ./.github/actions/coverage
Expand Down Expand Up @@ -102,7 +104,7 @@ jobs:
with:
version: ${{ matrix.version }}
- uses: ./.github/actions/install
- run: yarn test:integration:aiguard:coverage
- run: npm run test:integration:aiguard:coverage
- uses: ./.github/actions/coverage
with:
flags: aiguard-integration-${{ matrix.version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/all-green.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- uses: ./.github/actions/node
with:
version: active
- run: yarn add @actions/core @actions/github octokit
- run: bun install @actions/core @actions/github octokit
- run: node scripts/all-green.mjs
env:
DELAY: ${{ github.run_attempt == 1 && '5' || '0' }} # 5 minutes on first attempt, no delay on reruns
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/apm-capabilities.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
id: dd-sts
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: yarn test:trace:core:ci
- run: npm run test:trace:core:ci
- uses: ./.github/actions/coverage
with:
flags: apm-capabilities-tracing-macos
Expand All @@ -57,7 +57,7 @@ jobs:
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: yarn test:trace:core:ci
- run: npm run test:trace:core:ci
- uses: ./.github/actions/coverage
with:
flags: apm-capabilities-tracing-ubuntu-${{ matrix.node-version }}
Expand All @@ -79,7 +79,9 @@ jobs:
with:
version: 24.14.1 # TODO: remove pin when https://github.com/nodejs/node/issues/62991 is fixed
- uses: ./.github/actions/install
- run: yarn test:trace:core:ci
with:
cache: "true"
- run: npm run test:trace:core:ci
- uses: ./.github/actions/node-crash-report
if: failure()
- uses: ./.github/actions/coverage
Expand Down
Loading
Loading