This is an automated email from the ASF dual-hosted git repository.
wilfreds pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-web.git
The following commit(s) were added to refs/heads/master by this push:
new 96c8673 [YUNIKORN-3197] upgrade to pnpm 10.x for web build (#248)
96c8673 is described below
commit 96c8673ab3e8786c060a5064cdf071ff4341eb0d
Author: Wilfred Spiegelenburg <[email protected]>
AuthorDate: Fri Jan 16 21:39:15 2026 +1100
[YUNIKORN-3197] upgrade to pnpm 10.x for web build (#248)
Upgrade engine requirements to pnpm 10.x as 9.x is ending support life.
Update the node version to the latest security release (20.20)
Remove hard coded pnpm version from the Dockerfile and pass the version
in from the Makefile.
As a precaution changed the color dependency based on MAL-2025-46985
advisory.
fix typos in build args
Closes: #248
Signed-off-by: Wilfred Spiegelenburg <[email protected]>
---
.nvmrc | 2 +-
Dockerfile | 7 ++++---
Makefile | 14 ++++++++++----
package.json | 10 +++++-----
pnpm-lock.yaml | 60 ++++++++++++++++++++++++++++++----------------------------
5 files changed, 51 insertions(+), 42 deletions(-)
diff --git a/.nvmrc b/.nvmrc
index 0946473..3f8623b 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-20.19
+20.20
diff --git a/Dockerfile b/Dockerfile
index a1dea0c..c3ae186 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ARG NODE_VERSION=20
+ARG NODE_VERSION=20.20
# Buildstage: use the local architecture
FROM --platform=$BUILDPLATFORM node:${NODE_VERSION}-alpine AS buildstage
@@ -23,8 +23,9 @@ WORKDIR /work
# Only copy what is needed for the build
COPY *.json *.js *.yaml .browserslistrc /work/
COPY src /work/src/
-
-RUN npm install -g pnpm@9
+# must be declared here
+ARG PNPM_VERSION=10.28.0
+RUN npm install -g pnpm@$PNPM_VERSION
RUN PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 pnpm i
RUN pnpm build:prod
diff --git a/Makefile b/Makefile
index ff9fba1..273a248 100644
--- a/Makefile
+++ b/Makefile
@@ -127,12 +127,17 @@ GOLANGCI_LINT_BIN=$(TOOLS_DIR)/golangci-lint
GOLANGCI_LINT_ARCHIVE=golangci-lint-$(GOLANGCI_LINT_VERSION)-$(OS)-$(EXEC_ARCH).tar.gz
GOLANGCI_LINT_ARCHIVEBASE=golangci-lint-$(GOLANGCI_LINT_VERSION)-$(OS)-$(EXEC_ARCH)
+# npm selection
+ifeq ($(NPM),)
+NPM := npm
+endif
+
# pnpm
-PNPM_VERSION=9.15.6
+PNPM_VERSION=10.28.0
PNPM_BIN=$(TOOLS_DIR)/bin/pnpm
# @angular/cli
-ANGULAR_CLI_VERSION=20.3.12
+ANGULAR_CLI_VERSION=20.3.14
NG_BIN=$(TOOLS_DIR)/bin/ng
WEB_SHA=$(shell git rev-parse --short=12 HEAD)
@@ -158,7 +163,7 @@ $(PNPM_BIN):
@echo "install pnpm v$(PNPM_VERSION)"
@mkdir -p "$(TOOLS_DIR)"
@cd "$(TOOLS_DIR)"
- @npm install --prefix "$(TOOLS_DIR)" -g pnpm@$(PNPM_VERSION)
+ @"$(NPM)" install --prefix "$(TOOLS_DIR)" -g pnpm@$(PNPM_VERSION)
@cd $(BASE_DIR)
# Install @angular/cli
@@ -166,7 +171,7 @@ $(NG_BIN):
@echo "install @angular/cli v$(ANGULAR_CLI_VERSION)"
@mkdir -p "$(TOOLS_DIR)"
@cd "$(TOOLS_DIR)"
- @npm install --prefix "$(TOOLS_DIR)" -g
@angular/cli@$(ANGULAR_CLI_VERSION)
+ @"$(NPM)" install --prefix "$(TOOLS_DIR)" -g
@angular/cli@$(ANGULAR_CLI_VERSION)
@cd $(BASE_DIR)
# Install golangci-lint
@@ -273,6 +278,7 @@ image: $(RELEASE_BIN_DIR)/$(SERVER_BINARY)
--label "org.opencontainers.image.license=${LICENSE}" \
--label "org.opencontainers.image.documentation=${DOCS_URL}" \
--build-arg NODE_VERSION=${NODE_VERSION} \
+ --build-arg PNPM_VERSION=${PNPM_VERSION} \
${QUIET}
.PHONY: build_server_dev
diff --git a/package.json b/package.json
index 903ef73..dfb6ca9 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"angular-material-expansion-panel": "^0.7.2",
"chart.js": "^4.5.1",
"chartjs-adapter-date-fns": "^3.0.0",
- "color": "^4.2.3",
+ "color": "^5.0.3",
"d3-flextree": "^2.1.2",
"d3-hierarchy": "^3.1.2",
"d3-selection": "^3.0.0",
@@ -88,8 +88,8 @@
"typescript": "5.8.3"
},
"engines": {
- "node": "20",
- "pnpm": "9"
+ "node": ">=20.20.0",
+ "pnpm": "10.x"
},
- "packageManager": "pnpm@9"
-}
\ No newline at end of file
+ "packageManager": "[email protected]"
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ddc6717..bda9e07 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -28,7 +28,7 @@ importers:
version:
20.3.16(@angular/[email protected](@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected]))(@angular/[email protected](@angular/[email protected])([email protected])([email protected]))(@angular/[email protected](@angular/[email protected](@angular/[email protected](@angular/[email protected])([email protected])([email protected])))(@angular/[email protected](@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected]))(@angular/[email protected]
[...]
'@angular/material':
specifier: ^20.2.14
- version: 20.2.14(r2oforbalbo34ns2ikuviolmhy)
+ version: 20.2.14(c2c5790ef8fa7b124c6339ef37293a82)
'@angular/platform-browser':
specifier: ^20.3.16
version:
20.3.16(@angular/[email protected](@angular/[email protected](@angular/[email protected])([email protected])([email protected])))(@angular/[email protected](@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected]))(@angular/[email protected](@angular/[email protected])([email protected])([email protected]))
@@ -72,8 +72,8 @@ importers:
specifier: ^3.0.0
version: 3.0.0([email protected])([email protected])
color:
- specifier: ^4.2.3
- version: 4.2.3
+ specifier: ^5.0.3
+ version: 5.0.3
d3-flextree:
specifier: ^2.1.2
version: 2.1.2
@@ -167,7 +167,7 @@ importers:
version: 15.5.2
ng-mocks:
specifier: ^14.15.0
- version: 14.15.0(khjgs7od6temaw7j7nlstpifla)
+ version: 14.15.0(e58dda07d794d029a5ca75daa22457b4)
prettier:
specifier: ^3.7.4
version: 3.7.4
@@ -1671,15 +1671,24 @@ packages:
resolution: {integrity:
sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
+ [email protected]:
+ resolution: {integrity:
sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==}
+ engines: {node: '>=14.6'}
+
[email protected]:
resolution: {integrity:
sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- [email protected]:
- resolution: {integrity:
sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+ [email protected]:
+ resolution: {integrity:
sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==}
+ engines: {node: '>=12.20'}
+
+ [email protected]:
+ resolution: {integrity:
sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==}
+ engines: {node: '>=18'}
- [email protected]:
- resolution: {integrity:
sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
- engines: {node: '>=12.5.0'}
+ [email protected]:
+ resolution: {integrity:
sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==}
+ engines: {node: '>=18'}
[email protected]:
resolution: {integrity:
sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@@ -2339,9 +2348,6 @@ packages:
[email protected]:
resolution: {integrity:
sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- [email protected]:
- resolution: {integrity:
sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==}
-
[email protected]:
resolution: {integrity:
sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -3302,9 +3308,6 @@ packages:
resolution: {integrity:
sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==}
engines: {node: ^18.17.0 || >=20.5.0}
- [email protected]:
- resolution: {integrity:
sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==}
-
[email protected]:
resolution: {integrity:
sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
@@ -3980,7 +3983,7 @@ snapshots:
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/[email protected](r2oforbalbo34ns2ikuviolmhy)':
+ '@angular/[email protected](c2c5790ef8fa7b124c6339ef37293a82)':
dependencies:
'@angular/cdk':
20.2.14(@angular/[email protected](@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected]))(@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected])
'@angular/common':
20.3.16(@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected])
@@ -5209,17 +5212,22 @@ snapshots:
dependencies:
color-name: 1.1.4
+ [email protected]:
+ dependencies:
+ color-name: 2.1.0
+
[email protected]: {}
- [email protected]:
+ [email protected]: {}
+
+ [email protected]:
dependencies:
- color-name: 1.1.4
- simple-swizzle: 0.2.4
+ color-name: 2.1.0
- [email protected]:
+ [email protected]:
dependencies:
- color-convert: 2.0.1
- color-string: 1.9.1
+ color-convert: 3.1.3
+ color-string: 2.1.4
[email protected]: {}
@@ -5955,8 +5963,6 @@ snapshots:
[email protected]: {}
- [email protected]: {}
-
[email protected]:
dependencies:
binary-extensions: 2.3.0
@@ -6527,7 +6533,7 @@ snapshots:
[email protected]: {}
- [email protected](khjgs7od6temaw7j7nlstpifla):
+ [email protected](e58dda07d794d029a5ca75daa22457b4):
dependencies:
'@angular/common':
20.3.16(@angular/[email protected](@angular/[email protected])([email protected])([email protected]))([email protected])
'@angular/core':
20.3.16(@angular/[email protected])([email protected])([email protected])
@@ -7118,10 +7124,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- [email protected]:
- dependencies:
- is-arrayish: 0.3.4
-
[email protected]:
dependencies:
ansi-styles: 6.2.3
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]