diff --git a/.ci/tav.json b/.ci/tav.json index 3812344527e..769e83108ab 100644 --- a/.ci/tav.json +++ b/.ci/tav.json @@ -1,44 +1,45 @@ { - "versions": [ 21, 20, 18, 16, 14 ], + "// versions": "Skip >=18.19.0 until IITM double-import issue is resolved.", + "versions": [ "21", "20", "18.18.2", "16", "14" ], "// modules": [ - "List of instrumented modules with the min Node version supported.", - "minVersion for each module should be kept in sync with .tav.yml" + "List of instrumented modules with the minimum Node major version supported.", + "minMajorVersion for each module should be kept in sync with .tav.yml" ], "modules": [ - { "name": "@apollo/server", "minVersion": 14 }, - { "name": "@aws-sdk/client-dynamodb", "minVersion": 14 }, - { "name": "@aws-sdk/client-s3", "minVersion": 14 }, - { "name": "@aws-sdk/client-sns", "minVersion": 14 }, - { "name": "@aws-sdk/client-sqs", "minVersion": 14 }, - { "name": "@elastic/elasticsearch", "minVersion": 10 }, - { "name": "@hapi/hapi", "minVersion": 8 }, - { "name": "@opentelemetry/api", "minVersion": 14 }, - { "name": "apollo-server-express", "minVersion": 8 }, - { "name": "aws-sdk", "minVersion": 8 }, - { "name": "cassandra-driver", "minVersion": 16 }, - { "name": "elasticsearch", "minVersion": 8 }, - { "name": "express", "minVersion": 8 }, - { "name": "express-queue", "minVersion": 8 }, - { "name": "fastify", "minVersion": 8 }, - { "name": "finalhandler", "minVersion": 8 }, - { "name": "generic-pool", "minVersion": 8 }, - { "name": "graphql", "minVersion": 8 }, - { "name": "ioredis", "minVersion": 8 }, - { "name": "knex", "minVersion": 8 }, - { "name": "memcached", "minVersion": 8 }, - { "name": "mongodb", "minVersion": 8 }, - { "name": "mongodb-core", "minVersion": 8 }, - { "name": "mysql", "minVersion": 8 }, - { "name": "mysql2", "minVersion": 8 }, - { "name": "next", "minVersion": 14 }, - { "name": "pg", "minVersion": 8 }, - { "name": "redis", "minVersion": 8 }, - { "name": "restify", "minVersion": 14 }, - { "name": "tedious", "minVersion": 8 }, - { "name": "undici", "minVersion": 8 }, - { "name": "ws", "minVersion": 8 }, - { "name": "@koa/router,koa-router", "minVersion": 8 }, - { "name": "handlebars,pug", "minVersion": 8 }, - { "name": "bluebird,got", "minVersion": 8 } + { "name": "@apollo/server", "minMajorVersion": 14 }, + { "name": "@aws-sdk/client-dynamodb", "minMajorVersion": 14 }, + { "name": "@aws-sdk/client-s3", "minMajorVersion": 14 }, + { "name": "@aws-sdk/client-sns", "minMajorVersion": 14 }, + { "name": "@aws-sdk/client-sqs", "minMajorVersion": 14 }, + { "name": "@elastic/elasticsearch", "minMajorVersion": 10 }, + { "name": "@hapi/hapi", "minMajorVersion": 8 }, + { "name": "@opentelemetry/api", "minMajorVersion": 14 }, + { "name": "apollo-server-express", "minMajorVersion": 8 }, + { "name": "aws-sdk", "minMajorVersion": 8 }, + { "name": "cassandra-driver", "minMajorVersion": 16 }, + { "name": "elasticsearch", "minMajorVersion": 8 }, + { "name": "express", "minMajorVersion": 8 }, + { "name": "express-queue", "minMajorVersion": 8 }, + { "name": "fastify", "minMajorVersion": 8 }, + { "name": "finalhandler", "minMajorVersion": 8 }, + { "name": "generic-pool", "minMajorVersion": 8 }, + { "name": "graphql", "minMajorVersion": 8 }, + { "name": "ioredis", "minMajorVersion": 8 }, + { "name": "knex", "minMajorVersion": 8 }, + { "name": "memcached", "minMajorVersion": 8 }, + { "name": "mongodb", "minMajorVersion": 8 }, + { "name": "mongodb-core", "minMajorVersion": 8 }, + { "name": "mysql", "minMajorVersion": 8 }, + { "name": "mysql2", "minMajorVersion": 8 }, + { "name": "next", "minMajorVersion": 14 }, + { "name": "pg", "minMajorVersion": 8 }, + { "name": "redis", "minMajorVersion": 8 }, + { "name": "restify", "minMajorVersion": 14 }, + { "name": "tedious", "minMajorVersion": 8 }, + { "name": "undici", "minMajorVersion": 8 }, + { "name": "ws", "minMajorVersion": 8 }, + { "name": "@koa/router,koa-router", "minMajorVersion": 8 }, + { "name": "handlebars,pug", "minMajorVersion": 8 }, + { "name": "bluebird,got", "minMajorVersion": 8 } ] } diff --git a/.github/workflows/tav-command.yml b/.github/workflows/tav-command.yml index 780be326bb1..ea6fb43adb7 100644 --- a/.github/workflows/tav-command.yml +++ b/.github/workflows/tav-command.yml @@ -66,7 +66,8 @@ jobs: const permutations = [] for (const mod of mods) { for (const nv of vers) { - if (mod.minVersion && nv >= mod.minVersion) { + const nvMajor = Number(nv.split('.')[0]); + if (mod.minMajorVersion && nvMajor >= mod.minMajorVersion) { permutations.push(`${mod.name} ${nv}`) } } diff --git a/.github/workflows/tav.yml b/.github/workflows/tav.yml index b1e15b2d4e7..0bcb52399df 100644 --- a/.github/workflows/tav.yml +++ b/.github/workflows/tav.yml @@ -45,7 +45,8 @@ jobs: const permutations = [] for (const mod of matrix.modules) { for (const nv of matrix.versions) { - if (mod.minVersion && nv >= mod.minVersion) { + const nvMajor = Number(nv.split('.')[0]) + if (mod.minMajorVersion && nvMajor >= mod.minMajorVersion) { permutations.push(`${mod.name} ${nv}`) } } diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f93a75bf0d1..8ac3339afe6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -130,7 +130,7 @@ jobs: - '21.0' - '20' - '20.0' - - '18' + - '18.18.2' # Skip >=18.19.0 until IITM double-import issue is resolved. - '18.0' - '16' - '16.0' diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 0976728e22c..d6525474c30 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -37,6 +37,11 @@ See the <> guide. [[release-notes-4.3.0]] ==== 4.3.0 - 2023/12/05 +*Known issue*: Using the APM agent's <> with Node v18.19.0 is currently +not supported. Earlier versions of Node.js v18 and Node.js v20 and later +*are* supported. See +for details. + [float] ===== Features diff --git a/dev-utils/lint-tav-json.js b/dev-utils/lint-tav-json.js index f990cccb279..ddd7bf2681c 100755 --- a/dev-utils/lint-tav-json.js +++ b/dev-utils/lint-tav-json.js @@ -59,7 +59,8 @@ function main(argv) { moduleNamesFromJson.add(moduleName); }); for (const nv of tavJson.versions) { - if (mod.minVersion && nv >= mod.minVersion) { + const nvMajor = Number(nv.split('.')[0]); + if (mod.minMajorVersion && nvMajor >= mod.minMajorVersion) { matrix.push(`${mod.name} ${nv}`); } }