This is an automated email from the ASF dual-hosted git repository.

aglinxinyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/main by this push:
     new 798219386f chore(deps): upgrade frontend Node engine to 24 (#4658)
798219386f is described below

commit 798219386fca8197df4e51789df5f187f861f2bd
Author: Xinyuan Lin <[email protected]>
AuthorDate: Sat May 2 21:47:20 2026 -0700

    chore(deps): upgrade frontend Node engine to 24 (#4658)
    
    ### What changes were proposed in this PR?
    
    Bump the frontend from Node 20 to Node 24 (current Active LTS) ahead of
    the Node 20 end-of-life window (October 2026 maintenance / April 2027
    EOL).
    
    - `frontend/package.json`
      - `engines.node`: `>=20.19.0` → `>=24.0.0`
      - `@types/node`: `20.19.39` → `24.10.1`
    - `.github/workflows/build.yml`
      - frontend matrix `node-version`: `20.19.0` → `24.10.0`
    - fixed stale literal `18` in the frontend job-name format string (now
    `24`, matching the matrix)
    - `bin/texera-web-application.dockerfile`
      - frontend build stage: `node:22-bookworm` → `node:24-bookworm`
    - `AGENTS.md` — two doc references to the Node engine bumped to
    `>=24.0.0`
    - `frontend/yarn.lock` — regenerated; only `@types/node` and its
    `undici-types` peer changed
    
    Out of scope:
    
    - The root `Dockerfile` still pins `node:18-alpine` but references the
    long-removed `core/gui/` paths. It is stale and should be cleaned up or
    removed separately.
    - The `frontend/.nvmrc` already says `lts/*`, so no change was needed.
    - The Node 24 audit of the GitHub Actions themselves is tracked in
    #4647.
    
    ### Any related issues, documentation, discussions?
    
    Closes #4657. Related: #4647 (Node 24 inside GitHub Actions runtimes).
    
    ### How was this PR tested?
    
    Locally on Windows with Node 24.15.0 + Yarn 4.14.1:
    
    - `yarn --cwd frontend install` — lockfile updated cleanly (only
    `@types/node` 20.19.39 → 24.10.1 and `undici-types` 6.21.0 → 7.16.0).
    - `yarn --cwd frontend build:ci` — production bundle built (initial
    total 13.82 MB raw / 2.87 MB transfer), exit 0.
    - `yarn --cwd frontend test:ci` — Karma/Jasmine, 298 of 299 specs passed
    (1 pre-existing skip), exit 0 under Chrome Headless 147.
    
    CI will exercise the new `24.10.0` matrix value across `ubuntu-latest`,
    `windows-latest`, and `macos-latest`.
    
    ### Was this PR authored or co-authored using generative AI tooling?
    
    Generated-by: Claude Code (Opus 4.7)
    
    ---------
    
    Signed-off-by: Xinyuan Lin <[email protected]>
    Co-authored-by: Copilot Autofix powered by AI 
<[email protected]>
---
 .github/workflows/build.yml           |  5 +----
 AGENTS.md                             |  8 +++++---
 bin/texera-web-application.dockerfile |  2 +-
 frontend/package.json                 |  4 ++--
 frontend/yarn.lock                    | 20 ++++++++++----------
 5 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 79363ff1d4..c8e0c23e5b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -63,7 +63,6 @@ env:
 jobs:
   frontend:
     if: ${{ inputs.run_frontend }}
-    name: ${{ format('frontend{0} ({1}, 18)', inputs.job_name_suffix, 
matrix.os) }}
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
@@ -76,7 +75,7 @@ jobs:
           - os: windows-latest
             arch: x64
         node-version:
-          - 20.19.0
+          - 24.10.0
     steps:
       - name: Checkout Texera
         uses: actions/checkout@v5
@@ -132,7 +131,6 @@ jobs:
     # and tests for the platform services live in the `platform` matrix
     # below. License-binary checks are scoped to the amber dist.
     if: ${{ inputs.run_amber }}
-    name: ${{ format('amber{0} ({1}, 11)', inputs.job_name_suffix, matrix.os) 
}}
     strategy:
       matrix:
         os: [ubuntu-22.04]
@@ -348,7 +346,6 @@ jobs:
 
   python:
     if: ${{ inputs.run_python }}
-    name: ${{ format('python{0} ({1}, {2})', inputs.job_name_suffix, 
matrix.os, matrix.python-version) }}
     strategy:
       matrix:
         os: [ubuntu-latest]
diff --git a/AGENTS.md b/AGENTS.md
index 70e31175d3..adf05218ce 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -17,8 +17,10 @@ Major areas:
 - `config-service/`, `access-control-service/`, `file-service/`,
   `computing-unit-managing-service/`, `workflow-compiling-service/`: backend
   services wired through `build.sbt`.
-- `frontend/`: Angular application. Uses Yarn 4.14.1, Node >= 20.19.0, Nx,
-  Prettier, ESLint, Karma/Jasmine, and ng-zorro.
+- `frontend/`: Angular application. Uses Yarn 4.14.1 via Corepack for local
+  development, Node >= 24.0.0, Nx, Prettier, ESLint, Karma/Jasmine, and
+  ng-zorro. Note: `bin/texera-web-application.dockerfile` currently pins
+  Yarn 4.5.1 in its frontend build stage.
 - `agent-service/`: TypeScript Elysia service for Texera LLM agents. CI uses
   Bun 1.3.3.
 - `pyright-language-service/`: TypeScript service for Python language support.
@@ -113,7 +115,7 @@ outside CI.
 
 The Angular frontend lives in `frontend/`.
 
-- Node engine: `>=20.19.0`.
+- Node engine: `>=24.0.0`.
 - Package manager: Yarn 4.14.1 via Corepack.
 - Formatting is Prettier plus prettier-eslint. Prettier uses 2 spaces,
   semicolons, double quotes, `printWidth: 120`, and LF endings.
diff --git a/bin/texera-web-application.dockerfile 
b/bin/texera-web-application.dockerfile
index 20ed6428bc..cb020059d5 100644
--- a/bin/texera-web-application.dockerfile
+++ b/bin/texera-web-application.dockerfile
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM node:22-bookworm AS build-frontend
+FROM node:24-bookworm AS build-frontend
 
 RUN apt-get update && apt-get install -y --no-install-recommends \
         python3 build-essential git ca-certificates
diff --git a/frontend/package.json b/frontend/package.json
index c9330e88d9..9407f6282e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -2,7 +2,7 @@
   "name": "gui",
   "version": "0.0.0",
   "engines": {
-    "node": ">=20.19.0"
+    "node": ">=24.0.0"
   },
   "license": "Apache-2.0",
   "scripts": {
@@ -113,7 +113,7 @@
     "@types/karma-coverage": "^2",
     "@types/lodash": "4.14.179",
     "@types/lodash-es": "4.17.4",
-    "@types/node": "20.19.39",
+    "@types/node": "24.10.1",
     "@types/papaparse": "5.3.5",
     "@types/plotly.js-basic-dist-min": "2.12.4",
     "@types/quill": "2.0.9",
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 74a3634a13..e7769419e9 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -6144,12 +6144,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/node@npm:20.19.39":
-  version: 20.19.39
-  resolution: "@types/node@npm:20.19.39"
+"@types/node@npm:24.10.1":
+  version: 24.10.1
+  resolution: "@types/node@npm:24.10.1"
   dependencies:
-    undici-types: "npm:~6.21.0"
-  checksum: 
10c0/1d16da7b5f47a7415b827fcf3b94d279febf4c14671afec74a03e47856b5270023d9beb1b9aeab4d3b622fd97d61a60206cfc2cca588663181331bc592468289
+    undici-types: "npm:~7.16.0"
+  checksum: 
10c0/d6bca7a78f550fbb376f236f92b405d676003a8a09a1b411f55920ef34286ee3ee51f566203920e835478784df52662b5b2af89159d9d319352e9ea21801c002
   languageName: node
   linkType: hard
 
@@ -10813,7 +10813,7 @@ __metadata:
     "@types/karma-coverage": "npm:^2"
     "@types/lodash": "npm:4.14.179"
     "@types/lodash-es": "npm:4.17.4"
-    "@types/node": "npm:20.19.39"
+    "@types/node": "npm:24.10.1"
     "@types/papaparse": "npm:5.3.5"
     "@types/plotly.js-basic-dist-min": "npm:2.12.4"
     "@types/quill": "npm:2.0.9"
@@ -17376,10 +17376,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"undici-types@npm:~6.21.0":
-  version: 6.21.0
-  resolution: "undici-types@npm:6.21.0"
-  checksum: 
10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04
+"undici-types@npm:~7.16.0":
+  version: 7.16.0
+  resolution: "undici-types@npm:7.16.0"
+  checksum: 
10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a
   languageName: node
   linkType: hard
 

Reply via email to