Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

try supporting node 14 on v5 #4280

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open

try supporting node 14 on v5 #4280

wants to merge 13 commits into from

Conversation

bengl
Copy link
Collaborator

@bengl bengl commented May 3, 2024

What does this PR do?

Adds support for Node.js v14 to the master branch, with intent to add it to a 5.x (and even 4.x) release.

Motivation

As we move toward automated installation methods, larger amounts of Node.js release history support are becoming necessary on the latest release line. For now, the easiest path foward is to ensure we support back to the earliest Node.js version we support on any release line. In the near future, we'll work out a policy around this so that expectations are clear.

Additional Notes

  • Calling this semver minor since it adds support for versions of Node.js that weren't already supported.
  • There's a failing nextjs test that's also failing on master.

Copy link

github-actions bot commented May 3, 2024

Overall package size

Self size: 6.46 MB
Deduped: 60.96 MB
No deduping: 61.24 MB

Dependency sizes

name version self size total size
@datadog/native-iast-taint-tracking 1.7.0 16.71 MB 16.72 MB
@datadog/native-appsec 7.1.1 14.39 MB 14.4 MB
@datadog/pprof 5.2.0 8.84 MB 9.21 MB
protobufjs 7.2.5 2.77 MB 6.56 MB
@datadog/native-iast-rewriter 2.3.0 2.15 MB 2.24 MB
@opentelemetry/core 1.14.0 872.87 kB 1.47 MB
@datadog/native-metrics 2.0.0 898.77 kB 1.3 MB
@opentelemetry/api 1.4.1 780.32 kB 780.32 kB
import-in-the-middle 1.7.3 67.62 kB 731.01 kB
msgpack-lite 0.1.26 201.16 kB 281.59 kB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.5.4 93.4 kB 123.8 kB
pprof-format 2.1.0 111.69 kB 111.69 kB
@datadog/sketches-js 2.1.0 109.9 kB 109.9 kB
lodash.sortby 4.7.0 75.76 kB 75.76 kB
lru-cache 7.14.0 74.95 kB 74.95 kB
ipaddr.js 2.1.0 60.23 kB 60.23 kB
ignore 5.2.4 51.22 kB 51.22 kB
int64-buffer 0.1.10 49.18 kB 49.18 kB
shell-quote 1.8.1 44.96 kB 44.96 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 kB
tlhunter-sorted-set 0.1.0 24.94 kB 24.94 kB
limiter 1.1.5 23.17 kB 23.17 kB
dc-polyfill 0.1.4 23.1 kB 23.1 kB
retry 0.13.1 18.85 kB 18.85 kB
node-abort-controller 3.1.1 16.89 kB 16.89 kB
jest-docblock 29.7.0 8.99 kB 12.76 kB
crypto-randomuuid 1.0.0 11.18 kB 11.18 kB
path-to-regexp 0.1.7 6.78 kB 6.78 kB
koalas 1.0.2 6.47 kB 6.47 kB
methods 1.1.2 5.29 kB 5.29 kB
module-details-from-path 1.0.3 4.47 kB 4.47 kB

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

@pr-commenter
Copy link

pr-commenter bot commented May 3, 2024

Benchmarks

Benchmark execution time: 2024-05-06 18:39:52

Comparing candidate commit f9a0167 in PR branch bengl/try-supporting-14 with baseline commit 7d4bbb6 in branch master.

Found 2 performance improvements and 0 performance regressions! Performance is the same for 258 metrics, 6 unstable metrics.

scenario:plugin-graphql-with-depth-and-collapse-on-18

  • 🟩 max_rss_usage [-116.983MB; -106.289MB] or [-12.360%; -11.230%]

scenario:plugin-graphql-with-depth-on-max-18

  • 🟩 max_rss_usage [-155.795MB; -93.773MB] or [-16.223%; -9.765%]

@bengl bengl force-pushed the bengl/try-supporting-14 branch from df9628b to 579f5c5 Compare May 6, 2024 17:51
@bengl bengl marked this pull request as ready for review May 6, 2024 17:51
@bengl bengl requested review from a team as code owners May 6, 2024 17:51
@tlhunter
Copy link
Member

tlhunter commented May 6, 2024

any release line

So specifically any release line that we've ever supported for the entire history of the project? As opposed to any actively maintained release line?

@@ -943,7 +959,7 @@ jobs:
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node/setup
- run: yarn install
- uses: ./.github/actions/node/oldest
- uses: ./.github/actions/node/18
Copy link
Member

Choose a reason for hiding this comment

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

Doesn't that make it so that we don't know if we support Node 14 for Next? (and other similar ones)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Correct. In these cases, the tests do not pass on older Node.js versions, so we can't verify (or perhaps even claim) support. Arguably, we never could.

@@ -33,7 +33,7 @@ jobs:
integration-ci:
strategy:
matrix:
version: [18, latest]
version: [16, 18, 20, latest] # node 14 does not have experimental-fetch
Copy link
Member

Choose a reason for hiding this comment

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

How does this work on v3 branch?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

IIRC it doesn't, and this test fails on the v3 branch.

@@ -13,7 +13,7 @@ concurrency:

jobs:
macos:
runs-on: macos-latest
runs-on: macos-latest-large
Copy link
Member

Choose a reason for hiding this comment

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

This uses a more recent version that the version we currently guarantee to work on (which granted was already the case before, but that's also why things were failing)

@@ -67,7 +67,7 @@
},
"homepage": "https://github.com/DataDog/dd-trace-js#readme",
"engines": {
"node": ">=18"
"node": ">=14"
Copy link
Member

Choose a reason for hiding this comment

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

This check and checks on the dd-trace version are also in a few places in code which might need to be updated as well which I don't see in this PR.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The only place engines appears to be used in code is scripts/preinstall.js, which doesn't do anything based on particular version, just check compat, so it should be fine.

The only places the Node.js version is inspected appear to be legitimate checks on the version, not taking into account the dd-trace version at all.

The only places the tracer version (e.g. also DD_MAJOR and friends) is used seem to be places where we've done in-code breaking-change switches, which shouldn't be changed by this PR.

Copy link
Member

Choose a reason for hiding this comment

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

Perfect then, just wanted to make sure nothing was missed 👍

@bengl
Copy link
Collaborator Author

bengl commented May 6, 2024

So specifically any release line that we've ever supported for the entire history of the project? As opposed to any actively maintained release line?

Currently actively maintained release lines.

@tlhunter
Copy link
Member

tlhunter commented May 6, 2024

Currently actively maintained release lines.

Hmm... Since we only support v14 for another 9 days is this worth the effort?

@simon-id
Copy link
Member

simon-id commented May 10, 2024

I don't think there is any roadblock from ASM's perspective, as we backport everything anyway. We'd just have to doublecheck our CI testing the right stuff in the right versions. Otherwise SGTM

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.

None yet

4 participants