This is an automated email from the ASF dual-hosted git repository.
chanholee pushed a commit to branch branch-0.12
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/branch-0.12 by this push:
new 811bd4e6e4 [ZEPPELIN-6233] Upgraded the Node.js version of
zeppelin-web-angular from 16 to 18
811bd4e6e4 is described below
commit 811bd4e6e4bcc24e7208ea2401d24b8fe0f1bcca
Author: YONGJAE LEE(이용재) <[email protected]>
AuthorDate: Mon Sep 29 12:13:37 2025 +0900
[ZEPPELIN-6233] Upgraded the Node.js version of zeppelin-web-angular from
16 to 18
### What is this PR for?
Upgraded the Node.js version of zeppelin-web-angular from **16.20.2** to
**18.20.8**
####
[[zeppelin-web-angular/package.json](https://github.com/apache/zeppelin/compare/master...dididy:zeppelin:test/node18?expand=1#diff-c7de4df5c0afd29d2acd136879ab99f0fec5aeb696a4423885124e93bd1a986f)]
OpenSSL legacy provider: Added NODE_OPTIONS='--openssl-legacy-provider' to
maintain compatibility with libraries that rely on legacy cryptographic
algorithms, which are no longer enabled by default in Node 18 (OpenSSL 3).
I upgraded Husky from version 3 to version 9 and added `"prepare": "husky"`
to the `package.json`. In Husky v9, the `prepare` script runs automatically
when a user executes `npm install`, which ensures that Git hooks are installed
without any additional manual steps. Unlike `postinstall`, which runs after
package installation, `prepare` runs during the installation process, so the
hooks are ready immediately after `npm install`.
Husky's Git hook management has moved from `package.json` to the `.husky/`
directory. All hook scripts that were previously defined in `package.json` have
been migrated to individual files under `.husky/`, following the new Husky v9
structure. This change ensures a clearer separation of configuration and hook
scripts and aligns with the recommended setup for Husky v9.
####
[[zeppelin-web-angular/proxy.conf.js](https://github.com/apache/zeppelin/compare/master...dididy:zeppelin:test/node18?expand=1#diff-2a24ea2db081bdc01ecadf2293530e5997cdd179f9dc47820627776fc1b5e591)]
Updated the proxy target from `localhost` to `127.0.0.1` following the
Node.js 18 upgrade.
In Node.js 18, `localhost` may resolve to IPv6 (`::1`) first, which can
cause connection issues with servers bound to IPv4 (`127.0.0.1`).
Using `127.0.0.1` ensures a consistent IPv4 connection and improves
stability.
### What type of PR is it?
Improvement
### Todos
### What is the Jira issue?
ZEPPELIN-6233
### How should this be tested?
### Screenshots (if appropriate)
### Questions:
* Does the license files need to update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Closes #5086 from dididy/test/node18.
Signed-off-by: ChanHo Lee <[email protected]>
(cherry picked from commit f4f822d05c59aa941a697cb34ccdd3b37dd1a795)
Signed-off-by: ChanHo Lee <[email protected]>
---
.husky/pre-commit | 21 +++++++
zeppelin-web-angular/.nvmrc | 2 +-
zeppelin-web-angular/package-lock.json | 103 ++++++---------------------------
zeppelin-web-angular/package.json | 18 +++---
zeppelin-web-angular/pom.xml | 2 +-
zeppelin-web-angular/proxy.conf.js | 4 +-
6 files changed, 51 insertions(+), 99 deletions(-)
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 0000000000..c825dc39ee
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+cd zeppelin-web-angular
+lint-staged
diff --git a/zeppelin-web-angular/.nvmrc b/zeppelin-web-angular/.nvmrc
index 0af7914966..4851dc7197 100644
--- a/zeppelin-web-angular/.nvmrc
+++ b/zeppelin-web-angular/.nvmrc
@@ -8,4 +8,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-16.20.2
+18.20.8
diff --git a/zeppelin-web-angular/package-lock.json
b/zeppelin-web-angular/package-lock.json
index d21d1563bb..ed0a2b4a9b 100644
--- a/zeppelin-web-angular/package-lock.json
+++ b/zeppelin-web-angular/package-lock.json
@@ -52,7 +52,7 @@
"@types/angular": "^1.8.0",
"@types/diff-match-patch": "^1.0.36",
"@types/highlight.js": "^9.12.3",
- "@types/jquery": "^3.5.0",
+ "@types/jquery": "3.5.16",
"@types/lodash": "4.14.144",
"@types/mathjax": "^0.0.35",
"@types/node": "~12.19.16",
@@ -61,7 +61,7 @@
"codelyzer": "^5.0.0",
"dotenv": "^8.0.0",
"https-proxy-agent": "^2.2.1",
- "husky": "^3.0.9",
+ "husky": "9.1.7",
"lint-staged": "^8.1.6",
"monaco-editor-webpack-plugin": "6.0.0",
"ng-packagr": "^9.1.5",
@@ -77,7 +77,7 @@
"typescript": "3.8.3"
},
"engines": {
- "node": "<17.0.0"
+ "node": ">=18.0.0 <19.0.0"
}
},
"node_modules/@angular-devkit/architect": {
@@ -2355,9 +2355,9 @@
"license": "MIT"
},
"node_modules/@types/jquery": {
- "version": "3.5.32",
- "resolved":
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz",
- "integrity":
"sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==",
+ "version": "3.5.16",
+ "resolved":
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz",
+ "integrity":
"sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==",
"dev": true,
"dependencies": {
"@types/sizzle": "*"
@@ -7253,14 +7253,6 @@
"node": ">= 0.4"
}
},
- "node_modules/get-stdin": {
- "version": "7.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/get-stream": {
"version": "4.1.0",
"dev": true,
@@ -7975,33 +7967,18 @@
}
},
"node_modules/husky": {
- "version": "3.1.0",
+ "version": "9.1.7",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
+ "integrity":
"sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^2.4.2",
- "ci-info": "^2.0.0",
- "cosmiconfig": "^5.2.1",
- "execa": "^1.0.0",
- "get-stdin": "^7.0.0",
- "opencollective-postinstall": "^2.0.2",
- "pkg-dir": "^4.2.0",
- "please-upgrade-node": "^3.2.0",
- "read-pkg": "^5.2.0",
- "run-node": "^1.0.0",
- "slash": "^3.0.0"
- },
"bin": {
- "husky-run": "run.js",
- "husky-upgrade": "lib/upgrader/bin.js"
+ "husky": "bin.js"
},
"engines": {
- "node": ">=8.6.0"
+ "node": ">=18"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/husky"
+ "url": "https://github.com/sponsors/typicode"
}
},
"node_modules/iconv-lite": {
@@ -11609,14 +11586,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/opencollective-postinstall": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "bin": {
- "opencollective-postinstall": "index.js"
- }
- },
"node_modules/opn": {
"version": "5.5.0",
"dev": true,
@@ -14408,17 +14377,6 @@
"node": ">=0.12.0"
}
},
- "node_modules/run-node": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "bin": {
- "run-node": "run-node"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"dev": true,
@@ -20921,9 +20879,9 @@
"dev": true
},
"@types/jquery": {
- "version": "3.5.32",
- "resolved":
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz",
- "integrity":
"sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==",
+ "version": "3.5.16",
+ "resolved":
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz",
+ "integrity":
"sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==",
"dev": true,
"requires": {
"@types/sizzle": "*"
@@ -24271,10 +24229,6 @@
"es-object-atoms": "^1.0.0"
}
},
- "get-stdin": {
- "version": "7.0.0",
- "dev": true
- },
"get-stream": {
"version": "4.1.0",
"dev": true,
@@ -24765,21 +24719,10 @@
}
},
"husky": {
- "version": "3.1.0",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "ci-info": "^2.0.0",
- "cosmiconfig": "^5.2.1",
- "execa": "^1.0.0",
- "get-stdin": "^7.0.0",
- "opencollective-postinstall": "^2.0.2",
- "pkg-dir": "^4.2.0",
- "please-upgrade-node": "^3.2.0",
- "read-pkg": "^5.2.0",
- "run-node": "^1.0.0",
- "slash": "^3.0.0"
- }
+ "version": "9.1.7",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
+ "integrity":
"sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
+ "dev": true
},
"iconv-lite": {
"version": "0.4.24",
@@ -27138,10 +27081,6 @@
"is-wsl": "^2.1.1"
}
},
- "opencollective-postinstall": {
- "version": "2.0.3",
- "dev": true
- },
"opn": {
"version": "5.5.0",
"dev": true,
@@ -29099,10 +29038,6 @@
"version": "2.4.1",
"dev": true
},
- "run-node": {
- "version": "1.0.0",
- "dev": true
- },
"run-parallel": {
"version": "1.2.0",
"dev": true,
diff --git a/zeppelin-web-angular/package.json
b/zeppelin-web-angular/package.json
index 79221a30cb..ebb5e9d84e 100644
--- a/zeppelin-web-angular/package.json
+++ b/zeppelin-web-angular/package.json
@@ -2,10 +2,11 @@
"name": "zeppelin",
"version": "0.0.0",
"scripts": {
+ "prepare": "cd .. && husky",
"postinstall": "npm run build:projects && npm run build:tslint-rules",
"ng": "./node_modules/.bin/ng",
- "start": "ng serve --proxy-config proxy.conf.js --extra-webpack-config
webpack.partial.js",
- "build": "ng build --prod --extra-webpack-config webpack.partial.js",
+ "start": "NODE_OPTIONS='--openssl-legacy-provider' ng serve --proxy-config
proxy.conf.js --extra-webpack-config webpack.partial.js",
+ "build": "NODE_OPTIONS='--openssl-legacy-provider' ng build --prod
--extra-webpack-config webpack.partial.js",
"build:tslint-rules": "tsc -p tslint-rules/tsconfig.json",
"build:projects": "npm run build-project:sdk && npm run build-project:vis
&& npm run build-project:helium",
"build-helium-vis-example": " ng build --project helium-vis-example",
@@ -24,7 +25,7 @@
"e2e:codegen": "playwright codegen http://localhost:4200"
},
"engines": {
- "node": "<17.0.0"
+ "node": ">=18.0.0 <19.0.0"
},
"private": true,
"dependencies": {
@@ -52,8 +53,8 @@
"lodash": "^4.17.21",
"mathjax": "2.7.5",
"monaco-editor": "0.30.1",
- "nvd3": "1.8.6",
"ng-zorro-antd": "^9.3.0",
+ "nvd3": "1.8.6",
"parse5": "^5.1.1",
"rxjs": "~6.5.3",
"systemjs": "^5.0.0",
@@ -71,7 +72,7 @@
"@types/angular": "^1.8.0",
"@types/diff-match-patch": "^1.0.36",
"@types/highlight.js": "^9.12.3",
- "@types/jquery": "^3.5.0",
+ "@types/jquery": "3.5.16",
"@types/lodash": "4.14.144",
"@types/mathjax": "^0.0.35",
"@types/node": "~12.19.16",
@@ -80,7 +81,7 @@
"codelyzer": "^5.0.0",
"dotenv": "^8.0.0",
"https-proxy-agent": "^2.2.1",
- "husky": "^3.0.9",
+ "husky": "9.1.7",
"lint-staged": "^8.1.6",
"monaco-editor-webpack-plugin": "6.0.0",
"ng-packagr": "^9.1.5",
@@ -105,10 +106,5 @@
"./node_modules/.bin/prettier --write",
"git add"
]
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
}
}
diff --git a/zeppelin-web-angular/pom.xml b/zeppelin-web-angular/pom.xml
index 488ff17244..68c1181e21 100644
--- a/zeppelin-web-angular/pom.xml
+++ b/zeppelin-web-angular/pom.xml
@@ -39,7 +39,7 @@
<!--plugin versions-->
<plugin.frontend.nodeDownloadRoot>https://nodejs.org/dist/</plugin.frontend.nodeDownloadRoot>
<plugin.frontend.npmDownloadRoot>https://registry.npmjs.org/npm/-/</plugin.frontend.npmDownloadRoot>
- <node.version>v16.20.2</node.version>
+ <node.version>v18.20.8</node.version>
<npm.version>8.19.4</npm.version>
</properties>
diff --git a/zeppelin-web-angular/proxy.conf.js
b/zeppelin-web-angular/proxy.conf.js
index a59d554df8..014f153264 100644
--- a/zeppelin-web-angular/proxy.conf.js
+++ b/zeppelin-web-angular/proxy.conf.js
@@ -17,13 +17,13 @@ dotenv.config();
const proxyConfig = [
{
context: ['/'],
- target: 'http://localhost:8080',
+ target: 'http://127.0.0.1:8080',
secure: false,
changeOrigin: true
},
{
context: '/ws',
- target: 'ws://localhost:8080',
+ target: 'ws://127.0.0.1:8080',
secure: false,
ws: true,
changeOrigin: true