From 2d480a1b7c7a34a354188d93f3e89190a44a1d21 Mon Sep 17 00:00:00 2001 From: juj Date: Fri, 30 May 2025 01:00:30 +0300 Subject: [PATCH] Update Node.js to LTS 22.16.0. (#1563) This matches the minimum OS requirements set of macOS 11.0 and Windows 10: https://github.com/nodejs/node/blob/v22.x/BUILDING.md#platform-list --- docker/Dockerfile | 2 +- emsdk_manifest.json | 64 +++++++++++++++++++++++++++++++++++++----- scripts/update_node.py | 4 +-- test/test.py | 6 ++-- 4 files changed, 63 insertions(+), 13 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 4e4667e..2c63a4a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -63,7 +63,7 @@ COPY --from=stage_build /emsdk /emsdk # using `--entrypoint /bin/bash` in CLI). # This corresponds to the env variables set during: `source ./emsdk_env.sh` ENV EMSDK=/emsdk \ - PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/20.18.0_64bit/bin:${PATH}" + PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/22.16.0_64bit/bin:${PATH}" # ------------------------------------------------------------------------------ # Create a 'standard` 1000:1000 user diff --git a/emsdk_manifest.json b/emsdk_manifest.json index 405f442..1d05304 100644 --- a/emsdk_manifest.json +++ b/emsdk_manifest.json @@ -156,6 +156,56 @@ }, + { + "id": "node", + "version": "22.16.0", + "bitness": 32, + "arch": "x86", + "windows_url": "node-v22.16.0-win-x86.zip", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "22.16.0", + "arch": "arm", + "bitness": 32, + "linux_url": "node-v22.16.0-linux-armv7l.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "22.16.0", + "bitness": 64, + "arch": "x86_64", + "windows_url": "node-v22.16.0-win-x64.zip", + "macos_url": "node-v22.16.0-darwin-x64.tar.gz", + "linux_url": "node-v22.16.0-linux-x64.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + { + "id": "node", + "version": "22.16.0", + "arch": "arm64", + "bitness": 64, + "windows_url": "node-v22.16.0-win-arm64.zip", + "macos_url": "node-v22.16.0-darwin-arm64.tar.gz", + "linux_url": "node-v22.16.0-linux-arm64.tar.xz", + "activated_path": "%installation_dir%/bin", + "activated_path_skip": "node", + "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'", + "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%" + }, + + { "id": "python", "version": "3.9.2-nuget", @@ -388,19 +438,19 @@ { "version": "main", "bitness": 64, - "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], + "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], "os": "win" }, { "version": "main", "bitness": 64, - "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], + "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], "os": "macos" }, { "version": "main", "bitness": 64, - "uses": ["llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], + "uses": ["llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"], "os": "linux" }, { @@ -412,14 +462,14 @@ { "version": "releases-%releases-tag%", "bitness": 64, - "uses": ["node-20.18.0-64bit", "releases-%releases-tag%-64bit"], + "uses": ["node-22.16.0-64bit", "releases-%releases-tag%-64bit"], "os": "linux", "custom_install_script": "emscripten_npm_install" }, { "version": "releases-%releases-tag%", "bitness": 64, - "uses": ["node-20.18.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"], + "uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"], "os": "macos", "arch": "x86_64", "custom_install_script": "emscripten_npm_install" @@ -427,7 +477,7 @@ { "version": "releases-%releases-tag%", "bitness": 64, - "uses": ["node-20.18.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"], + "uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"], "os": "macos", "arch": "arm64", "custom_install_script": "emscripten_npm_install" @@ -435,7 +485,7 @@ { "version": "releases-%releases-tag%", "bitness": 64, - "uses": ["node-20.18.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"], + "uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"], "os": "win", "custom_install_script": "emscripten_npm_install" } diff --git a/scripts/update_node.py b/scripts/update_node.py index 774c38a..722b6ff 100755 --- a/scripts/update_node.py +++ b/scripts/update_node.py @@ -18,8 +18,8 @@ import os import shutil from zip import unzip_cmd, zip_cmd -version = '20.18.0' -base = 'https://nodejs.org/dist/v20.18.0/' +version = '22.16.0' +base = f'https://nodejs.org/dist/v{version}/' upload_base = 'gs://webassembly/emscripten-releases-builds/deps/' suffixes = [ diff --git a/test/test.py b/test/test.py index 6d57881..e835ebf 100755 --- a/test/test.py +++ b/test/test.py @@ -176,9 +176,9 @@ int main() { # Test the normal tools like node don't re-download on re-install print('another install must re-download') - checked_call_with_output(emsdk + ' uninstall node-20.18.0-64bit') - checked_call_with_output(emsdk + ' install node-20.18.0-64bit', expected='Downloading:', unexpected='already installed') - checked_call_with_output(emsdk + ' install node-20.18.0-64bit', unexpected='Downloading:', expected='already installed') + checked_call_with_output(emsdk + ' uninstall node-22.16.0-64bit') + checked_call_with_output(emsdk + ' install node-22.16.0-64bit', expected='Downloading:', unexpected='already installed') + checked_call_with_output(emsdk + ' install node-22.16.0-64bit', unexpected='Downloading:', expected='already installed') def test_tot_upstream(self): print('test update-tags')