Skip to content

Fix and improve esbuild and add it to the CI#5877

Merged
BridgeAR merged 3 commits intomasterfrom
BridgeAR/2025-06-11-check-latest-versions-with-esbuild
Jun 11, 2025
Merged

Fix and improve esbuild and add it to the CI#5877
BridgeAR merged 3 commits intomasterfrom
BridgeAR/2025-06-11-check-latest-versions-with-esbuild

Conversation

@BridgeAR
Copy link
Copy Markdown
Member

No description provided.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 11, 2025

Overall package size

Self size: 9.64 MB
Deduped: 104.59 MB
No deduping: 105.11 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.6.0 | 30.47 MB | 30.47 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/pprof | 5.8.0 | 12.55 MB | 12.92 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |

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

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 11, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.75%. Comparing base (6796afd) to head (95f1526).
Report is 12 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5877   +/-   ##
=======================================
  Coverage   80.74%   80.75%           
=======================================
  Files         464      464           
  Lines       19905    19910    +5     
=======================================
+ Hits        16073    16079    +6     
+ Misses       3832     3831    -1     

☔ View full report in Codecov by Sentry.
📢 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.

@datadog-datadog-prod-us1
Copy link
Copy Markdown

datadog-datadog-prod-us1 Bot commented Jun 11, 2025

Datadog Report

Branch report: BridgeAR/2025-06-11-check-latest-versions-with-esbuild
Commit report: e3869ce
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 1251 Passed, 0 Skipped, 13m 48.85s Total Time

@BridgeAR BridgeAR marked this pull request as ready for review June 11, 2025 11:06
@BridgeAR BridgeAR requested a review from a team as a code owner June 11, 2025 11:06
@BridgeAR BridgeAR marked this pull request as draft June 11, 2025 11:09
This makes sure we run our tests with the oldest and newest esbuild
version as well as adding the tests to our CI. They did not yet
run in the CI before.
It seems like esbuild does not pick up dynamic require calls, so I
changed the ones I could find. This should fix the profiler to also
be included in esbuild outputs in the future.
@BridgeAR BridgeAR changed the title Test latest versions together with esbuild Fix and improve esbuild and add it to the CI Jun 11, 2025
@BridgeAR BridgeAR marked this pull request as ready for review June 11, 2025 12:48
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Jun 11, 2025

Benchmarks

Benchmark execution time: 2025-06-11 13:21:59

Comparing candidate commit 95f1526 in PR branch BridgeAR/2025-06-11-check-latest-versions-with-esbuild with baseline commit 6796afd in branch master.

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

@tlhunter
Copy link
Copy Markdown
Member

I do wonder if this is worth its own CI job. Currently it's buried in four Platform / integration (*) (pull_request) jobs.

That said the test runs and I can see it properly testing two versions of esbuild:

  esbuild latest
npm warn deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm run build
Warning: Unable to find "encoding".Unless it's dead code this could cause a problem at runtime.
npm run built
ENOENT: no such file or directory, scandir '/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/prebuilds'
Error: [RC] Error in request
    at /home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:83405:17
    at ClientRequest.<anonymous> (/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:8136:11)
    at Object.onceWrapper (node:events:633:26)
    at ClientRequest.emit (node:events:518:28)
    at req.emit (/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:33831:29)
    at emitErrorEvent (node:_http_client:104:11)
    at Socket.socketErrorListener (node:_http_client:518:5)
    at Socket.emit (node:events:518:28)
    at Socket.emit (/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:37542:30)
    at emitErrorNT (node:internal/streams/destroy:170:8)
Error: connect ECONNREFUSED [12](https://github.com/DataDog/dd-trace-js/actions/runs/15585869668/job/43891799822?pr=5877#step:7:13)7.0.0.1:8126
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1636:16)
    at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:[13](https://github.com/DataDog/dd-trace-js/actions/runs/15585869668/job/43891799822?pr=5877#step:7:14)0:17) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 8126
}
    ✔ works (1512ms)
node ./build-and-test-skip-external.js
    ✔ does not bundle modules listed in .external (618ms)
node ./build-and-test-typescript.mjs
    ✔ handles typescript apps that import without file extensions (196ms)
node ./build-and-test-aws-sdk.js
(node:5305) NOTE: The AWS SDK for JavaScript (v2) is in maintenance mode.
 SDK releases are limited to address critical bug fixes and security issues only.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the blog post at https://a.co/cUPnyil
(Use `node --trace-warnings ...` to show where the warning was created)

    ✔ handles the complex aws-sdk package with dynamic requires (1647ms)
node ./build-and-test-koa.mjs
    ✔ handles scoped node_modules (263ms)

  esbuild 0.16.12
npm run build
Warning: Unable to find "encoding".Unless it's dead code this could cause a problem at runtime.
npm run built
ENOENT: no such file or directory, scandir '/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/prebuilds'
Error: [RC] Error in request
    at /home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:82806:17
    at ClientRequest.<anonymous> (/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:8082:11)
    at Object.onceWrapper (node:events:633:26)
    at ClientRequest.emit (node:events:518:28)
    at req.emit (/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:33482:29)
    at emitErrorEvent (node:_http_client:104:11)
    at Socket.socketErrorListener (node:_http_client:518:5)
    at Socket.emit (node:events:518:28)
    at Socket.emit (/home/runner/work/dd-trace-js/dd-trace-js/integration-tests/esbuild/out.js:37229:30)
    at emitErrorNT (node:internal/streams/destroy:170:8)
Error: connect ECONNREFUSED 127.0.0.1:8126
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1636:16)
    at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 8126
}
    ✔ works ([14](https://github.com/DataDog/dd-trace-js/actions/runs/15585869668/job/43891799822?pr=5877#step:7:15)86ms)
node ./build-and-test-skip-external.js
    ✔ does not bundle modules listed in .external (612ms)
node ./build-and-test-typescript.mjs
    ✔ handles typescript apps that import without file extensions (193ms)
node ./build-and-test-aws-sdk.js
(node:5484) NOTE: The AWS SDK for JavaScript (v2) is in maintenance mode.
 SDK releases are limited to address critical bug fixes and security issues only.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the blog post at https://a.co/cUPnyil
(Use `node --trace-warnings ...` to show where the warning was created)

    ✔ handles the complex aws-sdk package with dynamic requires ([17](https://github.com/DataDog/dd-trace-js/actions/runs/15585869668/job/43891799822?pr=5877#step:7:18)14ms)
node ./build-and-test-koa.mjs
    ✔ handles scoped node_modules (259ms)


  10 passing ([18](https://github.com/DataDog/dd-trace-js/actions/runs/15585869668/job/43891799822?pr=5877#step:7:19)s)

Done in 18.31s.

@BridgeAR
Copy link
Copy Markdown
Member Author

@tlhunter I thought about a separate job as well and went for the existing one for now due to the few tests we have.

I guess we could separate it when we have a bunch more.

@BridgeAR BridgeAR merged commit 3b64de7 into master Jun 11, 2025
535 checks passed
@BridgeAR BridgeAR deleted the BridgeAR/2025-06-11-check-latest-versions-with-esbuild branch June 11, 2025 16:39
ghost pushed a commit that referenced this pull request Jun 12, 2025
* Test latest versions together with esbuild

* Fix esbuild not picking up all files and test more

This makes sure we run our tests with the oldest and newest esbuild
version as well as adding the tests to our CI. They did not yet
run in the CI before.
It seems like esbuild does not pick up dynamic require calls, so I
changed the ones I could find. This should fix the profiler to also
be included in esbuild outputs in the future.
This was referenced Jun 12, 2025
ghost pushed a commit that referenced this pull request Jun 12, 2025
* Test latest versions together with esbuild

* Fix esbuild not picking up all files and test more

This makes sure we run our tests with the oldest and newest esbuild
version as well as adding the tests to our CI. They did not yet
run in the CI before.
It seems like esbuild does not pick up dynamic require calls, so I
changed the ones I could find. This should fix the profiler to also
be included in esbuild outputs in the future.
szegedi pushed a commit that referenced this pull request Jun 12, 2025
* Test latest versions together with esbuild

* Fix esbuild not picking up all files and test more

This makes sure we run our tests with the oldest and newest esbuild
version as well as adding the tests to our CI. They did not yet
run in the CI before.
It seems like esbuild does not pick up dynamic require calls, so I
changed the ones I could find. This should fix the profiler to also
be included in esbuild outputs in the future.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants