From ebeac31b44b8874c5c6d36dd5409ab3f763f5751 Mon Sep 17 00:00:00 2001 From: ivanovac Date: Wed, 27 May 2026 10:29:07 +0300 Subject: [PATCH] Remove EOL Node.js 20.x line Node.js 20 reached end-of-life on 2026-04-30. Remove all 20.x dependency entries (20.19.3, 20.19.5, 20.20.0) across cflinuxfs3/4/5 stacks, the 20.x.x deprecation date entry, and update test fixtures and integration tests from 20.x to 22.x. --- fixtures/brats/package.json | 2 +- fixtures/https/package.json | 2 +- fixtures/vendored/binaries/package-lock.json | 2 +- fixtures/vendored/binaries/package.json | 2 +- fixtures/vendored/yarn/package.json | 2 +- manifest.yml | 44 -------------------- src/nodejs/integration/versions_test.go | 12 +++--- 7 files changed, 11 insertions(+), 55 deletions(-) diff --git a/fixtures/brats/package.json b/fixtures/brats/package.json index d3b9b1a5e..2896b791b 100644 --- a/fixtures/brats/package.json +++ b/fixtures/brats/package.json @@ -4,7 +4,7 @@ "description": "hello, world", "main": "server.js", "engines": { - "node": "20.x" + "node": "22.x" }, "dependencies": { "bcrypt": "*", diff --git a/fixtures/https/package.json b/fixtures/https/package.json index 9cd5f366a..e1da3705d 100644 --- a/fixtures/https/package.json +++ b/fixtures/https/package.json @@ -7,6 +7,6 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "engines" : { - "node" : "~>20" + "node" : "~>22" } } diff --git a/fixtures/vendored/binaries/package-lock.json b/fixtures/vendored/binaries/package-lock.json index 150ff74d6..df73801ad 100644 --- a/fixtures/vendored/binaries/package-lock.json +++ b/fixtures/vendored/binaries/package-lock.json @@ -13,7 +13,7 @@ "leftpad": "~0.0.1" }, "engines": { - "node": "~>20" + "node": "~>22" } }, "node_modules/figlet": { diff --git a/fixtures/vendored/binaries/package.json b/fixtures/vendored/binaries/package.json index bac458d56..e7e488c7c 100644 --- a/fixtures/vendored/binaries/package.json +++ b/fixtures/vendored/binaries/package.json @@ -13,7 +13,7 @@ "leftpad": "~0.0.1" }, "engines": { - "node": "~>20" + "node": "~>22" }, "repository": { "type": "git", diff --git a/fixtures/vendored/yarn/package.json b/fixtures/vendored/yarn/package.json index db7446ef1..247885af6 100644 --- a/fixtures/vendored/yarn/package.json +++ b/fixtures/vendored/yarn/package.json @@ -10,6 +10,6 @@ }, "engines": { "yarn": "*", - "node": "~>20" + "node": "~>22" } } diff --git a/manifest.yml b/manifest.yml index b6acff633..4f9595a47 100644 --- a/manifest.yml +++ b/manifest.yml @@ -24,10 +24,6 @@ include_files: - profile/newrelic-setup.sh - profile/nodejs.sh dependency_deprecation_dates: -- version_line: 20.x.x - name: node - date: 2026-04-30 - link: https://github.com/nodejs/Release - version_line: 22.x.x name: node date: 2027-04-30 @@ -53,46 +49,6 @@ dependency_deprecation_dates: date: 2030-10-07 link: https://peps.python.org/pep-0745/ dependencies: -- name: node - version: 20.19.3 - uri: https://buildpacks.cloudfoundry.org/dependencies/node/node_20.19.3_linux_x64_cflinuxfs3_96fdc321.tgz - sha256: 96fdc32135bb9ad667a90105582fcf972066e944c12ea1974437c6d452e846ca - cf_stacks: - - cflinuxfs3 - source: https://nodejs.org/dist/v20.19.3/node-v20.19.3.tar.gz - source_sha256: 4c9f238ad7c57af35efa6ba6259521aebbe20c2f91f6d846860a861c97fc6b99 -- name: node - version: 20.19.5 - uri: https://buildpacks.cloudfoundry.org/dependencies/node/node_20.19.5_linux_x64_cflinuxfs3_186f2ba5.tgz - sha256: 186f2ba5e2e16b0617d17d1410ddbc5900dc4ac4b6860160b0b21c963d9116d3 - cf_stacks: - - cflinuxfs3 - source: https://nodejs.org/dist/v20.19.5/node-v20.19.5.tar.gz - source_sha256: b34d3f57666d91deb6a148b604d7f2f4051d540087e9f6c627dedc1fcb866d5a -- name: node - version: 20.19.5 - uri: https://buildpacks.cloudfoundry.org/dependencies/node/node_20.19.5_linux_x64_cflinuxfs4_ceee89a1.tgz - sha256: ceee89a1bba81a492af9c1175926e8db05bb6404dbfecb3594c54337706d14fe - cf_stacks: - - cflinuxfs4 - source: https://nodejs.org/dist/v20.19.5/node-v20.19.5.tar.gz - source_sha256: b34d3f57666d91deb6a148b604d7f2f4051d540087e9f6c627dedc1fcb866d5a -- name: node - version: 20.20.0 - uri: https://buildpacks.cloudfoundry.org/dependencies/node/node_20.20.0_linux_x64_cflinuxfs4_a02ef5d7.tgz - sha256: a02ef5d7adba63111d4d2a27c05880420d392e1dc0e0f115e32d9e8375138c67 - cf_stacks: - - cflinuxfs4 - source: https://nodejs.org/dist/v20.20.0/node-v20.20.0.tar.gz - source_sha256: cafc92e90917c17869d982fdff10104c2eb328437ed9bbf03fdda78ebc0accdd -- name: node - version: 20.20.0 - uri: https://buildpacks.cloudfoundry.org/dependencies/node/node_20.20.0_linux_x64_cflinuxfs5_145a0640.tgz - sha256: 145a0640dc04cddb0a5350479217277f15837d58d9d32bcb5b8393bfc5f8d739 - cf_stacks: - - cflinuxfs5 - source: https://nodejs.org/dist/v20.20.0/node-v20.20.0.tar.gz - source_sha256: cafc92e90917c17869d982fdff10104c2eb328437ed9bbf03fdda78ebc0accdd - name: node version: 22.22.2 uri: https://buildpacks.cloudfoundry.org/dependencies/node/node_22.22.2_linux_x64_cflinuxfs4_e5459374.tgz diff --git a/src/nodejs/integration/versions_test.go b/src/nodejs/integration/versions_test.go index 8f5bec159..1b8abcac2 100644 --- a/src/nodejs/integration/versions_test.go +++ b/src/nodejs/integration/versions_test.go @@ -41,7 +41,7 @@ func testVersions(platform switchblade.Platform, fixtures string) func(*testing. context("when there is a .nvmrc file", func() { it.Before(func() { - Expect(os.WriteFile(filepath.Join(source, ".nvmrc"), []byte("20"), 0600)).To(Succeed()) + Expect(os.WriteFile(filepath.Join(source, ".nvmrc"), []byte("22"), 0600)).To(Succeed()) }) it("uses the Node version specified in the .nvmrc file", func() { @@ -49,7 +49,7 @@ func testVersions(platform switchblade.Platform, fixtures string) func(*testing. Expect(err).NotTo(HaveOccurred()) Expect(logs).To(ContainLines( - MatchRegexp("Installing node 20\\.\\d+\\.\\d+"), + MatchRegexp("Installing node 22\\.\\d+\\.\\d+"), )) Eventually(deployment).Should(Serve("Hello world!")) @@ -63,7 +63,7 @@ func testVersions(platform switchblade.Platform, fixtures string) func(*testing. } Expect(json.NewDecoder(response.Body).Decode(&process)).To(Succeed()) - Expect(process.Version).To(MatchRegexp(`v20\.\d+\.\d+`)) + Expect(process.Version).To(MatchRegexp(`v22\.\d+\.\d+`)) }) }) @@ -76,7 +76,7 @@ func testVersions(platform switchblade.Platform, fixtures string) func(*testing. Expect(json.NewDecoder(file).Decode(&pkg)).To(Succeed()) Expect(file.Close()).To(Succeed()) - pkg["engines"] = map[string]string{"node": "~>20"} + pkg["engines"] = map[string]string{"node": "~>22"} content, err := json.Marshal(pkg) Expect(err).NotTo(HaveOccurred()) Expect(os.WriteFile(filepath.Join(source, "package.json"), content, 0600)).To(Succeed()) @@ -87,7 +87,7 @@ func testVersions(platform switchblade.Platform, fixtures string) func(*testing. Expect(err).NotTo(HaveOccurred()) Expect(logs).To(ContainLines( - MatchRegexp("Installing node 20\\.\\d+\\.\\d+"), + MatchRegexp("Installing node 22\\.\\d+\\.\\d+"), )) Eventually(deployment).Should(Serve("Hello world!")) @@ -101,7 +101,7 @@ func testVersions(platform switchblade.Platform, fixtures string) func(*testing. } Expect(json.NewDecoder(response.Body).Decode(&process)).To(Succeed()) - Expect(process.Version).To(MatchRegexp(`v20\.\d+\.\d+`)) + Expect(process.Version).To(MatchRegexp(`v22\.\d+\.\d+`)) }) context("when that version is unsupported", func() {