Skip to content

test: drive install script and withVersions from the shared resolver#9022

Merged
BridgeAR merged 2 commits into
BridgeAR/2026-06-22-install-concurrency-helperfrom
BridgeAR/2026-06-22-resolver-wire-up
Jun 24, 2026
Merged

test: drive install script and withVersions from the shared resolver#9022
BridgeAR merged 2 commits into
BridgeAR/2026-06-22-install-concurrency-helperfrom
BridgeAR/2026-06-22-resolver-wire-up

Conversation

@BridgeAR

Copy link
Copy Markdown
Member

Summary

The install script and withVersions() now both expand versions through resolvePluginVersions, so the generated versions/ folders and the folders the suite iterates derive from one place and cannot drift. The generator bounds its mkdir/writeFile fan-out with the concurrency helper to avoid EMFILE.

Because the resolver fills every in-between major automatically, the lodash, ws, and mquery same-name externals that only re-stated their addHook ranges are dropped. Two peer-dependency anchors replace them: @apollo/server pins graphql so v5 does not resolve the 15.x that apollo-server v3 drags in, and knex installs the @vscode/sqlite3 fork its 1.x dialect needs.

Test plan

  • PLUGINS="mongodb" node scripts/install_plugin_modules.js and confirm the generated versions/mongodb@* folders match the majors withVersions('mongodb', …) iterates.
  • A targeted plugin run (PLUGINS="fastify" npm run test:plugins) to confirm the matrix still resolves.

Stacked on #9021 (resolver) → #9019 (concurrency).

Follow-up

Per self-review: remove the remaining same-name externals (aerospike and the other version-only self-references) so externals.js stops declaring the test matrix, and simplify the honourEnvRange/pluginName branch once none remain.

@dd-octo-sts

dd-octo-sts Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 6.28 MB
Deduped: 7.35 MB
No deduping: 7.35 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.2.0 | 104.26 kB | 843.44 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |

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

@datadog-prod-us1-6

datadog-prod-us1-6 Bot commented Jun 22, 2026

Copy link
Copy Markdown

Pipelines  Tests

Fix all issues with BitsAI

⚠️ Warnings

🚦 16 Pipeline jobs failed

All Green | all-green   View in Datadog   GitHub Actions

🧪 13 Tests failed

Plugin redis with @redis/client >=1.1 (1.6.1) client basics should support queue options from client basics   View in Datadog
Timeout of 5000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/dd-trace-js/dd-trace-js/packages/datadog-plugin-redis/test/client.spec.js)

Error: Timeout of 5000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/dd-trace-js/dd-trace-js/packages/datadog-plugin-redis/test/client.spec.js)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
Plugin google-cloud-pubsub with @google-cloud/pubsub >=1.2 (2.19.4) without configuration createTopic should be instrumented when using the internal API from createTopic   View in Datadog
Channel credentials must be a ChannelCredentials object

TypeError: Channel credentials must be a ChannelCredentials object
    at new ChannelImplementation (versions/@google-cloud/pubsub@2/node_modules/@grpc/grpc-js/build/src/channel.js:81:19)
    at new Client (versions/@google-cloud/pubsub@2/node_modules/@grpc/grpc-js/build/src/client.js:62:36)
    at new ServiceClientImpl (versions/@google-cloud/pubsub@2/node_modules/@grpc/grpc-js/build/src/make-client.js:58:5)
    at GrpcClient.createStub (versions/@google-cloud/pubsub@2/node_modules/google-gax/build/src/grpc.js:334:22)
View all 13 test failures

APM Integrations | aerospike (ce-5.7.0.15, node-eol)   View in Datadog   GitHub Actions

APM Integrations | aerospike (ce-6.4.0.3, node-18)   View in Datadog   GitHub Actions

View all 16 failed jobs.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 9dfad14 | Docs | Datadog PR Page | Give us feedback!

@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.89%. Comparing base (54c1fd2) to head (9dfad14).
⚠️ Report is 20 commits behind head on BridgeAR/2026-06-22-install-concurrency-helper.

Additional details and impacted files
@@                                Coverage Diff                                 @@
##           BridgeAR/2026-06-22-install-concurrency-helper    #9022      +/-   ##
==================================================================================
- Coverage                                           92.80%   89.89%   -2.91%     
==================================================================================
  Files                                                 879      879              
  Lines                                               50450    50450              
  Branches                                             9931     9930       -1     
==================================================================================
- Hits                                                46818    45354    -1464     
- Misses                                               3632     5096    +1464     
Flag Coverage Δ
aiguard-integration-active 41.63% <ø> (?)
aiguard-integration-latest 41.64% <ø> (ø)
aiguard-integration-maintenance 41.72% <ø> (?)
aiguard-macos 34.48% <ø> (ø)
aiguard-ubuntu 34.63% <ø> (ø)
aiguard-windows 34.31% <ø> (ø)
apm-capabilities-tracing-macos 48.15% <ø> (-0.01%) ⬇️
apm-capabilities-tracing-ubuntu-active 48.33% <ø> (+0.17%) ⬆️
apm-capabilities-tracing-ubuntu-latest 48.33% <ø> (ø)
apm-capabilities-tracing-ubuntu-maintenance 48.37% <ø> (-0.01%) ⬇️
apm-capabilities-tracing-ubuntu-oldest 48.38% <ø> (ø)
apm-capabilities-tracing-windows 48.15% <ø> (+<0.01%) ⬆️
apm-integrations-aerospike-18-gte.5.2.0 ?
apm-integrations-aerospike-20-gte.5.5.0 33.03% <ø> (ø)
apm-integrations-aerospike-22-gte.5.12.1 33.03% <ø> (ø)
apm-integrations-aerospike-22-gte.6.0.0 33.03% <ø> (ø)
apm-integrations-aerospike-eol- ?
apm-integrations-child-process 33.94% <ø> (ø)
apm-integrations-confluentinc-kafka-javascript-18 39.95% <ø> (ø)
apm-integrations-confluentinc-kafka-javascript-20 39.97% <ø> (ø)
apm-integrations-confluentinc-kafka-javascript-22 39.97% <ø> (ø)
apm-integrations-confluentinc-kafka-javascript-24 39.87% <ø> (ø)
apm-integrations-couchbase-18 33.02% <ø> (-0.17%) ⬇️
apm-integrations-couchbase-eol 33.08% <ø> (+<0.01%) ⬆️
apm-integrations-dns 32.87% <ø> (ø)
apm-integrations-elasticsearch ?
apm-integrations-http-latest 41.74% <ø> (ø)
apm-integrations-http-maintenance 41.83% <ø> (ø)
apm-integrations-http-oldest 41.76% <ø> (ø)
apm-integrations-http2 38.98% <ø> (?)
apm-integrations-kafkajs-latest 40.10% <ø> (-0.01%) ⬇️
apm-integrations-kafkajs-oldest 40.19% <ø> (ø)
apm-integrations-net 33.56% <ø> (ø)
apm-integrations-next-11.1.4 36.22% <ø> (-0.31%) ⬇️
apm-integrations-next-12.3.7 36.22% <ø> (-0.31%) ⬇️
apm-integrations-next-13.0.0 29.00% <ø> (ø)
apm-integrations-next-13.2.0 29.00% <ø> (-0.04%) ⬇️
apm-integrations-next-13.5.11 29.14% <ø> (-0.04%) ⬇️
apm-integrations-next-14.0.0 29.06% <ø> (ø)
apm-integrations-next-14.2.35 29.06% <ø> (ø)
apm-integrations-next-14.2.6 29.06% <ø> (ø)
apm-integrations-next-14.2.7 29.06% <ø> (ø)
apm-integrations-next-15.0.0 29.06% <ø> (ø)
apm-integrations-next-15.4.0 29.14% <ø> (ø)
apm-integrations-next-latest 29.17% <ø> (?)
apm-integrations-oracledb 34.04% <ø> (+0.15%) ⬆️
apm-integrations-prisma-18-gte.6.16.0.and.lt.7.0.0 34.72% <ø> (ø)
apm-integrations-prisma-latest-all 34.17% <ø> (ø)
apm-integrations-restify ?
apm-integrations-sharedb 32.46% <ø> (+0.09%) ⬆️
apm-integrations-tedious ?
appsec-express 50.88% <ø> (+0.02%) ⬆️
appsec-fastify ?
appsec-graphql 47.96% <ø> (+0.25%) ⬆️
appsec-integration-active 36.04% <ø> (ø)
appsec-integration-latest 36.04% <ø> (ø)
appsec-integration-maintenance 36.10% <ø> (ø)
appsec-integration-oldest 36.09% <ø> (ø)
appsec-kafka 40.26% <ø> (+0.05%) ⬆️
appsec-ldapjs 39.76% <ø> (ø)
appsec-lodash 39.67% <ø> (ø)
appsec-macos 56.96% <ø> (ø)
appsec-mongodb-core 44.00% <ø> (+0.16%) ⬆️
appsec-mongoose 44.69% <ø> (-0.02%) ⬇️
appsec-next-latest-11.1.4 27.30% <ø> (ø)
appsec-next-latest-12.3.7 27.15% <ø> (ø)
appsec-next-latest-13.0.0 29.08% <ø> (ø)
appsec-next-latest-13.2.0 29.11% <ø> (ø)
appsec-next-latest-13.5.11 29.20% <ø> (ø)
appsec-next-latest-14.0.0 29.12% <ø> (ø)
appsec-next-latest-14.2.35 29.12% <ø> (ø)
appsec-next-latest-14.2.6 29.12% <ø> (ø)
appsec-next-latest-14.2.7 29.12% <ø> (ø)
appsec-next-latest-15.0.0 29.12% <ø> (ø)
appsec-next-latest-latest 29.16% <ø> (ø)
appsec-next-oldest-11.1.4 27.34% <ø> (ø)
appsec-next-oldest-12.3.7 29.14% <ø> (ø)
appsec-next-oldest-13.0.0 29.14% <ø> (ø)
appsec-next-oldest-13.2.0 29.40% <ø> (ø)
appsec-next-oldest-13.5.11 29.50% <ø> (ø)
appsec-next-oldest-14.0.0 29.43% <ø> (ø)
appsec-next-oldest-14.2.35 29.43% <ø> (ø)
appsec-next-oldest-14.2.6 29.43% <ø> (ø)
appsec-next-oldest-14.2.7 29.43% <ø> (ø)
appsec-next-oldest-15.0.0 29.43% <ø> (ø)
appsec-next-oldest-latest 27.34% <ø> (ø)
appsec-node-serialize 38.96% <ø> (-0.03%) ⬇️
appsec-passport 42.57% <ø> (-0.03%) ⬇️
appsec-postgres 46.80% <ø> (+0.14%) ⬆️
appsec-sourcing 38.42% <ø> (ø)
appsec-stripe 40.47% <ø> (ø)
appsec-template 39.25% <ø> (ø)
appsec-ubuntu 57.07% <ø> (ø)
appsec-windows 56.87% <ø> (+0.05%) ⬆️
debugger-ubuntu-active 43.36% <ø> (ø)
debugger-ubuntu-latest 43.36% <ø> (ø)
debugger-ubuntu-maintenance 43.49% <ø> (ø)
debugger-ubuntu-oldest 43.84% <ø> (+0.04%) ⬆️
instrumentations-instrumentation-ai 45.15% <ø> (ø)
instrumentations-instrumentation-aws-sdk 44.75% <ø> (ø)
instrumentations-instrumentation-bluebird 27.51% <ø> (ø)
instrumentations-instrumentation-body-parser 35.58% <ø> (ø)
instrumentations-instrumentation-child_process 33.24% <ø> (ø)
instrumentations-instrumentation-connect 48.04% <ø> (ø)
instrumentations-instrumentation-cookie-parser 29.43% <ø> (ø)
instrumentations-instrumentation-couchbase-18 45.83% <ø> (ø)
instrumentations-instrumentation-couchbase-eol 45.83% <ø> (ø)
instrumentations-instrumentation-crypto 27.48% <ø> (ø)
instrumentations-instrumentation-express 29.63% <ø> (ø)
instrumentations-instrumentation-express-mongo-sanitize 29.53% <ø> (-0.01%) ⬇️
instrumentations-instrumentation-express-multi-version 41.47% <ø> (ø)
instrumentations-instrumentation-express-session 35.40% <ø> (ø)
instrumentations-instrumentation-fastify 48.04% <ø> (ø)
instrumentations-instrumentation-fetch 44.76% <ø> (ø)
instrumentations-instrumentation-fs 27.19% <ø> (ø)
instrumentations-instrumentation-generic-pool 27.33% <ø> (ø)
instrumentations-instrumentation-hono 28.73% <ø> (ø)
instrumentations-instrumentation-http 37.83% <ø> (ø)
instrumentations-instrumentation-http-client-options 37.44% <ø> (ø)
instrumentations-instrumentation-kafkajs 48.75% <ø> (ø)
instrumentations-instrumentation-knex 27.50% <ø> (ø)
instrumentations-instrumentation-koa 45.71% <ø> (ø)
instrumentations-instrumentation-light-my-request 35.22% <ø> (ø)
instrumentations-instrumentation-mongoose 28.71% <ø> (+0.08%) ⬆️
instrumentations-instrumentation-multer 35.25% <ø> (ø)
instrumentations-instrumentation-mysql2 33.36% <ø> (ø)
instrumentations-instrumentation-openai-lifecycle 45.82% <ø> (ø)
instrumentations-instrumentation-otel-sdk-trace 25.34% <ø> (ø)
instrumentations-instrumentation-passport 39.14% <ø> (ø)
instrumentations-instrumentation-passport-http 38.81% <ø> (-0.03%) ⬇️
instrumentations-instrumentation-passport-local 39.26% <ø> (-0.03%) ⬇️
instrumentations-instrumentation-pg 33.08% <ø> (ø)
instrumentations-instrumentation-promise 27.46% <ø> (ø)
instrumentations-instrumentation-promise-js 27.46% <ø> (ø)
instrumentations-instrumentation-q 27.49% <ø> (ø)
instrumentations-instrumentation-restify 47.30% <ø> (ø)
instrumentations-instrumentation-router 43.37% <ø> (ø)
instrumentations-instrumentation-stripe 28.01% <ø> (ø)
instrumentations-instrumentation-url 27.31% <ø> (ø)
instrumentations-instrumentation-when 27.47% <ø> (ø)
instrumentations-instrumentation-zlib 27.36% <ø> (ø)
instrumentations-integration-esbuild-0.16.12-active 24.68% <ø> (ø)
instrumentations-integration-esbuild-0.16.12-latest 24.68% <ø> (?)
instrumentations-integration-esbuild-0.16.12-maintenance 18.69% <ø> (ø)
instrumentations-integration-esbuild-0.16.12-oldest 18.68% <ø> (ø)
instrumentations-integration-esbuild-latest-active 24.68% <ø> (ø)
instrumentations-integration-esbuild-latest-latest 24.68% <ø> (ø)
instrumentations-integration-esbuild-latest-maintenance 18.69% <ø> (ø)
instrumentations-integration-esbuild-latest-oldest 18.68% <ø> (ø)
llmobs-ai ?
llmobs-anthropic 36.40% <ø> (-0.06%) ⬇️
llmobs-bedrock ?
llmobs-google-genai 36.04% <ø> (+0.14%) ⬆️
llmobs-langchain ?
llmobs-openai-latest 39.37% <ø> (ø)
llmobs-openai-oldest 39.45% <ø> (ø)
llmobs-sdk-active 43.25% <ø> (?)
llmobs-sdk-latest 43.25% <ø> (ø)
llmobs-sdk-maintenance 43.35% <ø> (ø)
llmobs-sdk-oldest 43.34% <ø> (ø)
llmobs-vertex-ai 35.56% <ø> (ø)
master-coverage ?
openfeature-macos 37.41% <ø> (ø)
openfeature-ubuntu 37.55% <ø> (ø)
openfeature-unit-active 49.95% <ø> (ø)
openfeature-unit-latest 49.95% <ø> (ø)
openfeature-unit-maintenance 50.32% <ø> (ø)
openfeature-unit-oldest 50.32% <ø> (ø)
openfeature-windows 37.24% <ø> (-0.06%) ⬇️
platform-core 45.98% <ø> (ø)
platform-esbuild 47.00% <ø> (ø)
platform-instrumentations-misc 29.36% <ø> (ø)
platform-integration-active 46.93% <ø> (-0.05%) ⬇️
platform-integration-latest 46.97% <ø> (-0.02%) ⬇️
platform-integration-maintenance 47.08% <ø> (ø)
platform-integration-oldest 47.22% <ø> (ø)
platform-shimmer 47.05% <ø> (ø)
platform-unit-guardrails 44.04% <ø> (ø)
platform-webpack 18.22% <ø> (ø)
plugins-aws-durable-execution-sdk-js 32.77% <ø> (ø)
plugins-axios 35.37% <ø> (ø)
plugins-azure-cosmos 35.86% <ø> (?)
plugins-azure-event-hubs 34.67% <ø> (ø)
plugins-azure-service-bus 35.18% <ø> (ø)
plugins-body-parser 36.36% <ø> (-0.13%) ⬇️
plugins-bullmq 39.34% <ø> (-0.01%) ⬇️
plugins-cassandra 33.51% <ø> (-0.16%) ⬇️
plugins-cookie 40.47% <ø> (ø)
plugins-cookie-parser 40.30% <ø> (ø)
plugins-crypto 42.36% <ø> (ø)
plugins-dd-trace-api 33.10% <ø> (ø)
plugins-express-mongo-sanitize 40.35% <ø> (ø)
plugins-express-session 40.22% <ø> (ø)
plugins-fastify 37.71% <ø> (ø)
plugins-fetch 34.44% <ø> (ø)
plugins-fs 33.52% <ø> (ø)
plugins-generic-pool 39.79% <ø> (ø)
plugins-google-cloud-pubsub ?
plugins-grpc 36.39% <ø> (ø)
plugins-handlebars 40.35% <ø> (ø)
plugins-hapi ?
plugins-hono 35.80% <ø> (ø)
plugins-ioredis 34.16% <ø> (ø)
plugins-jest 26.98% <ø> (ø)
plugins-knex ?
plugins-langgraph 32.22% <ø> (ø)
plugins-ldapjs 38.81% <ø> (ø)
plugins-light-my-request 39.93% <ø> (ø)
plugins-limitd-client 27.81% <ø> (?)
plugins-lodash 39.97% <ø> (ø)
plugins-mariadb 34.99% <ø> (-0.01%) ⬇️
plugins-memcached 33.54% <ø> (ø)
plugins-microgateway-core ?
plugins-modelcontextprotocol-sdk 32.18% <ø> (ø)
plugins-moleculer 36.45% <ø> (ø)
plugins-mongodb 35.65% <ø> (-0.09%) ⬇️
plugins-mongodb-core 35.25% <ø> (-0.03%) ⬇️
plugins-mongoose 34.44% <ø> (+0.18%) ⬆️
plugins-multer 40.27% <ø> (ø)
plugins-mysql 34.46% <ø> (ø)
plugins-mysql2 34.84% <ø> (+0.04%) ⬆️
plugins-nats 36.16% <ø> (ø)
plugins-node-serialize 40.19% <ø> (-0.31%) ⬇️
plugins-opensearch 33.66% <ø> (+0.21%) ⬆️
plugins-passport-http 39.79% <ø> (-0.31%) ⬇️
plugins-pino 29.73% <ø> (ø)
plugins-postgres 34.51% <ø> (ø)
plugins-process 42.36% <ø> (ø)
plugins-pug 40.47% <ø> (ø)
plugins-redis ?
plugins-router 37.91% <ø> (-0.16%) ⬇️
plugins-sequelize 39.75% <ø> (ø)
plugins-test-and-upstream-amqp10 33.53% <ø> (?)
plugins-test-and-upstream-amqplib ?
plugins-test-and-upstream-apollo ?
plugins-test-and-upstream-avsc 33.57% <ø> (ø)
plugins-test-and-upstream-bunyan 29.15% <ø> (+0.20%) ⬆️
plugins-test-and-upstream-connect 36.13% <ø> (?)
plugins-test-and-upstream-graphql 35.86% <ø> (ø)
plugins-test-and-upstream-koa 35.90% <ø> (+0.15%) ⬆️
plugins-test-and-upstream-protobufjs 33.81% <ø> (ø)
plugins-test-and-upstream-rhea 39.18% <ø> (+0.22%) ⬆️
plugins-undici 35.00% <ø> (+0.13%) ⬆️
plugins-url 42.36% <ø> (ø)
plugins-valkey 33.64% <ø> (+0.13%) ⬆️
plugins-vm 42.36% <ø> (ø)
plugins-winston 29.62% <ø> (-0.22%) ⬇️
plugins-ws 36.93% <ø> (ø)
profiling-macos 42.93% <ø> (+0.05%) ⬆️
profiling-ubuntu 43.31% <ø> (ø)
profiling-windows 40.75% <ø> (-0.02%) ⬇️
serverless-aws-sdk-latest-aws-sdk 33.00% <ø> (ø)
serverless-aws-sdk-latest-bedrockruntime ?
serverless-aws-sdk-latest-client 36.20% <ø> (ø)
serverless-aws-sdk-latest-dynamodb 33.86% <ø> (+0.05%) ⬆️
serverless-aws-sdk-latest-eventbridge 26.95% <ø> (ø)
serverless-aws-sdk-latest-kinesis 37.04% <ø> (ø)
serverless-aws-sdk-latest-lambda 34.27% <ø> (ø)
serverless-aws-sdk-latest-s3 32.24% <ø> (ø)
serverless-aws-sdk-latest-serverless-peer-service 39.17% <ø> (ø)
serverless-aws-sdk-latest-sns 38.04% <ø> (ø)
serverless-aws-sdk-latest-sqs 37.67% <ø> (ø)
serverless-aws-sdk-latest-stepfunctions 32.86% <ø> (ø)
serverless-aws-sdk-latest-util 46.39% <ø> (?)
serverless-aws-sdk-oldest-aws-sdk 33.12% <ø> (ø)
serverless-aws-sdk-oldest-bedrockruntime 31.95% <ø> (ø)
serverless-aws-sdk-oldest-client 36.76% <ø> (ø)
serverless-aws-sdk-oldest-dynamodb 33.90% <ø> (-0.08%) ⬇️
serverless-aws-sdk-oldest-eventbridge 27.03% <ø> (ø)
serverless-aws-sdk-oldest-kinesis 37.21% <ø> (ø)
serverless-aws-sdk-oldest-lambda 34.37% <ø> (ø)
serverless-aws-sdk-oldest-s3 32.38% <ø> (ø)
serverless-aws-sdk-oldest-serverless-peer-service 39.26% <ø> (ø)
serverless-aws-sdk-oldest-sns 38.14% <ø> (ø)
serverless-aws-sdk-oldest-sqs 37.74% <ø> (ø)
serverless-aws-sdk-oldest-stepfunctions 32.96% <ø> (ø)
serverless-aws-sdk-oldest-util 47.13% <ø> (ø)
serverless-azure-durable-functions 36.65% <ø> (ø)
serverless-azure-functions-eventhubs 38.24% <ø> (ø)
serverless-azure-functions-servicebus 38.30% <ø> (ø)
serverless-lambda 34.11% <ø> (ø)
test-optimization-cucumber-latest-7.0.0 49.70% <ø> (ø)
test-optimization-cucumber-latest-latest 52.35% <ø> (-0.07%) ⬇️
test-optimization-cucumber-oldest-7.0.0 49.79% <ø> (ø)
test-optimization-cypress-latest-12.0.0-commonJS 49.03% <ø> (ø)
test-optimization-cypress-latest-12.0.0-esm 48.43% <ø> (-0.49%) ⬇️
test-optimization-cypress-latest-14.5.4-commonJS 48.88% <ø> (ø)
test-optimization-cypress-latest-14.5.4-esm 48.91% <ø> (ø)
test-optimization-cypress-latest-latest-commonJS 49.36% <ø> (ø)
test-optimization-cypress-latest-latest-esm 49.39% <ø> (+0.13%) ⬆️
test-optimization-cypress-oldest-12.0.0-commonJS 49.11% <ø> (ø)
test-optimization-cypress-oldest-12.0.0-esm 49.14% <ø> (ø)
test-optimization-cypress-oldest-14.5.4-commonJS 48.96% <ø> (+0.61%) ⬆️
test-optimization-cypress-oldest-14.5.4-esm 48.99% <ø> (ø)
test-optimization-jest-latest-latest 55.12% <ø> (+2.47%) ⬆️
test-optimization-jest-latest-oldest 53.99% <ø> (-0.07%) ⬇️
test-optimization-jest-oldest-latest 55.17% <ø> (ø)
test-optimization-jest-oldest-oldest 54.07% <ø> (ø)
test-optimization-mocha-latest-latest 53.38% <ø> (ø)
test-optimization-mocha-latest-oldest 50.95% <ø> (ø)
test-optimization-mocha-oldest-latest 53.48% <ø> (-0.03%) ⬇️
test-optimization-mocha-oldest-oldest 50.96% <ø> (+0.02%) ⬆️
test-optimization-playwright-latest-latest-playwright-active-test-span 43.97% <ø> (?)
test-optimization-playwright-latest-latest-playwright-atr 42.82% <ø> (ø)
test-optimization-playwright-latest-latest-playwright-efd 43.24% <ø> (ø)
test-optimization-playwright-latest-latest-playwright-final-status 43.28% <ø> (-0.03%) ⬇️
test-optimization-playwright-latest-latest-playwright-impacted-tests 42.77% <ø> (ø)
test-optimization-playwright-latest-latest-playwright-reporting 42.86% <ø> (ø)
test-optimization-playwright-latest-latest-playwright-test-management 44.31% <ø> (ø)
test-optimization-playwright-latest-oldest-playwright-active-test-span 43.93% <ø> (-0.05%) ⬇️
test-optimization-playwright-latest-oldest-playwright-atr 42.88% <ø> (ø)
test-optimization-playwright-latest-oldest-playwright-efd 43.14% <ø> (-0.03%) ⬇️
test-optimization-playwright-latest-oldest-playwright-final-status 43.21% <ø> (ø)
test-optimization-playwright-latest-oldest-playwright-impacted-tests 42.70% <ø> (ø)
test-optimization-playwright-latest-oldest-playwright-reporting 42.65% <ø> (ø)
test-optimization-playwright-latest-oldest-playwright-test-management 44.26% <ø> (+0.02%) ⬆️
test-optimization-playwright-oldest-latest-playwright-active-test-span 44.19% <ø> (-0.05%) ⬇️
test-optimization-playwright-oldest-latest-playwright-atr 42.90% <ø> (ø)
test-optimization-playwright-oldest-latest-playwright-efd 43.52% <ø> (?)
test-optimization-playwright-oldest-latest-playwright-final-status 43.36% <ø> (-0.03%) ⬇️
test-optimization-playwright-oldest-latest-playwright-impacted-tests 42.85% <ø> (ø)
test-optimization-playwright-oldest-latest-playwright-reporting 43.16% <ø> (+0.25%) ⬆️
test-optimization-playwright-oldest-latest-playwright-test-management 44.39% <ø> (+0.02%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-active-test-span 44.01% <ø> (-0.05%) ⬇️
test-optimization-playwright-oldest-oldest-playwright-atr 42.96% <ø> (?)
test-optimization-playwright-oldest-oldest-playwright-efd 43.23% <ø> (ø)
test-optimization-playwright-oldest-oldest-playwright-final-status 43.30% <ø> (-0.03%) ⬇️
test-optimization-playwright-oldest-oldest-playwright-impacted-tests 42.78% <ø> (ø)
test-optimization-playwright-oldest-oldest-playwright-reporting 42.71% <ø> (ø)
test-optimization-playwright-oldest-oldest-playwright-test-management 44.34% <ø> (ø)
test-optimization-selenium-latest 45.14% <ø> (ø)
test-optimization-selenium-oldest 44.72% <ø> (ø)
test-optimization-testopt-active 48.15% <ø> (ø)
test-optimization-testopt-latest 48.15% <ø> (ø)
test-optimization-testopt-maintenance 48.13% <ø> (ø)
test-optimization-testopt-oldest 49.22% <ø> (ø)
test-optimization-vitest-latest 50.58% <ø> (ø)
test-optimization-vitest-oldest 47.96% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter

pr-commenter Bot commented Jun 22, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-06-22 23:45:37

Comparing candidate commit 9dfad14 in PR branch BridgeAR/2026-06-22-resolver-wire-up with baseline commit 53bd8bc in branch BridgeAR/2026-06-22-plugin-version-resolver.

📊 Benchmarking dashboard

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1949 metrics, 16 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:appsec-appsec-enabled-24

  • unstable execution_time [-149.538ms; +153.511ms] or [-5.759%; +5.912%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-183.445ms; +168.913ms] or [-7.360%; +6.777%]

scenario:appsec-control-20

  • unstable execution_time [-120.507ms; +140.624ms] or [-6.995%; +8.163%]

scenario:appsec-control-24

  • unstable execution_time [-94042.183µs; +93087.816µs] or [-7.830%; +7.750%]

scenario:appsec-control-26

  • unstable execution_time [-96422.291µs; +95544.925µs] or [-8.173%; +8.099%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-314.938ms; +306.493ms] or [-6.655%; +6.476%]
  • unstable execution_time [-312.021ms; +305.774ms] or [-6.487%; +6.358%]

scenario:plugin-graphql-long-with-depth-and-collapse-off-24

  • unstable cpu_user_time [-363.545ms; +292.167ms] or [-8.016%; +6.442%]
  • unstable execution_time [-388.676ms; +308.392ms] or [-8.054%; +6.391%]
  • unstable max_rss_usage [-47.291MB; +33.194MB] or [-8.605%; +6.040%]

scenario:plugin-graphql-long-with-depth-off-20

  • unstable max_rss_usage [-11.203MB; +4.670MB] or [-8.110%; +3.381%]

scenario:plugin-graphql-long-with-depth-off-26

  • unstable cpu_user_time [-45.479ms; +528.514ms] or [-0.841%; +9.777%]
  • unstable execution_time [-31.688ms; +550.029ms] or [-0.574%; +9.965%]
  • unstable max_rss_usage [+10.882MB; +44.693MB] or [+5.785%; +23.758%]

scenario:spans-finish-later-26

  • unstable max_rss_usage [-17.937MB; +14.264MB] or [-9.817%; +7.807%]

scenario:test-optimization-large-suite-20

  • unstable max_rss_usage [-6178.907KB; +6643.907KB] or [-7.455%; +8.016%]

@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-plugin-version-resolver branch from 248c760 to 2395811 Compare June 22, 2026 20:21
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-resolver-wire-up branch from 8a3fb87 to 297c17f Compare June 22, 2026 20:21
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-plugin-version-resolver branch from 2395811 to 807757b Compare June 22, 2026 20:57
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-resolver-wire-up branch from 297c17f to e085466 Compare June 22, 2026 20:57
withVersions() and the install script each expand a module's declared versions
into the set of folders to test/install, and the two computations drifted, so a
folder could be installed but never tested (or the reverse). This adds a single
resolvePluginVersions/getVersionList that both consume: per declared range it
pins the lowest supported version exactly and adds the newest of every major the
range spans, keyed by the bare major. Covering each major (not the raw range,
which only resolves to the newest of the whole range) makes sure the floor
major's latest is tested too. `*` collapses to the latest major, and an empty or
unparseable entry throws instead of being skipped.
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-plugin-version-resolver branch from 807757b to 53bd8bc Compare June 22, 2026 23:30
Both call sites now consume resolvePluginVersions, so the generated versions/
folders and the folders withVersions() iterates derive from one place and can no
longer drift. The generator caps its mkdir/writeFile fan-out through the
concurrency helper to avoid EMFILE.

The resolver fills every in-between major on its own, so the lodash, ws, and
mquery same-name externals that only re-stated their addHook ranges are dropped.
Two peer-dependency anchors are added in their place: @apollo/server pins graphql
so v5 does not resolve the 15.x that apollo-server v3 drags in, and knex installs
the @vscode/sqlite3 fork its 1.x dialect requires.
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-resolver-wire-up branch from e085466 to 9dfad14 Compare June 22, 2026 23:30
Base automatically changed from BridgeAR/2026-06-22-plugin-version-resolver to BridgeAR/2026-06-22-install-concurrency-helper June 24, 2026 18:15
@BridgeAR BridgeAR marked this pull request as ready for review June 24, 2026 18:18
@BridgeAR BridgeAR requested review from a team as code owners June 24, 2026 18:18
@BridgeAR BridgeAR requested review from wconti27 and removed request for a team June 24, 2026 18:18
@BridgeAR BridgeAR merged commit cdb6978 into BridgeAR/2026-06-22-install-concurrency-helper Jun 24, 2026
774 of 815 checks passed
@BridgeAR BridgeAR deleted the BridgeAR/2026-06-22-resolver-wire-up branch June 24, 2026 18:18

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9dfad14e39

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

if (topMajor > floor.major) add(String(topMajor), range)
} else {
for (let major = floor.major; major <= topMajor; major++) {
if (intersects(`>=${major}.0.0 <${major + 1}.0.0`, range)) add(String(major), range)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve bounded ranges when adding major keys

For ranges that cover only part of a major, this emits the bare major and collectPackages() then installs that folder with the dependency range equal to the key. An existing hook like packages/datadog-instrumentations/src/express.js's >=4.0.0 <4.3.0 therefore creates/tests express@4, which resolves to the latest 4.x instead of the latest <4.3; the previous raw-range folder covered that upper boundary. This drops compatibility coverage for the max version inside bounded ranges and can run tests against versions outside the declaring hook.

Useful? React with 👍 / 👎.

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.

1 participant