From ec9d7701f68cbdcf72ff84d54772e43d557c6413 Mon Sep 17 00:00:00 2001 From: Benjamin Blanchard Date: Wed, 30 Sep 2026 17:01:20 -0400 Subject: [PATCH] update to use node 26 --- .github/variables/vars.env | 2 +- .github/workflows/clientlibs-js-publish.yml | 2 +- .nvmrc | 1 + clientlibs/js/package.json | 4 +-- clientlibs/js/yarn.lock | 22 ++++++++++---- demo.singleContainerApp.Dockerfile | 10 +++---- dev.singleContainerApp.Dockerfile | 10 +++---- packages/backend/cl.Dockerfile | 10 +++---- packages/backend/package.json | 2 +- packages/frontend/package.json | 2 +- yarn.lock | 32 +++++++-------------- 11 files changed, 47 insertions(+), 50 deletions(-) create mode 100644 .nvmrc diff --git a/.github/variables/vars.env b/.github/variables/vars.env index 0875336dd5..5640d5a2d6 100644 --- a/.github/variables/vars.env +++ b/.github/variables/vars.env @@ -1 +1 @@ -NODE_VERSION=22.14 \ No newline at end of file +NODE_VERSION=26.10 diff --git a/.github/workflows/clientlibs-js-publish.yml b/.github/workflows/clientlibs-js-publish.yml index 727c3a057f..132378c2c6 100644 --- a/.github/workflows/clientlibs-js-publish.yml +++ b/.github/workflows/clientlibs-js-publish.yml @@ -22,7 +22,7 @@ jobs: ref: ${{ inputs.ref || github.sha }} - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 26 - name: Install Root Dependencies run: yarn install --frozen-lockfile - name: Install Dependencies diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..8a94b99127 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +26.10.0 diff --git a/clientlibs/js/package.json b/clientlibs/js/package.json index b1c314c759..2da2fd4f5f 100644 --- a/clientlibs/js/package.json +++ b/clientlibs/js/package.json @@ -64,7 +64,7 @@ "license": "ISC", "devDependencies": { "@types/jest": "^29.2.1", - "@types/node": "^25.6.0", + "@types/node": "^26.6.3", "concurrently": "^8.2.1", "dts-bundle-generator": "^8.0.1", "eslint-plugin-tsdoc": "^0.2.17", @@ -76,7 +76,7 @@ "typedoc": "^0.24.8", "typedoc-plugin-markdown": "^3.15.4", "typedoc-plugin-rename-defaults": "^0.6.5", - "typescript": "^4.8.4", + "typescript": "^5.9.3", "webpack": "^5.74.0", "webpack-cli": "^4.10.0" }, diff --git a/clientlibs/js/yarn.lock b/clientlibs/js/yarn.lock index 7a52a0c2c4..2d563d3a05 100644 --- a/clientlibs/js/yarn.lock +++ b/clientlibs/js/yarn.lock @@ -746,13 +746,20 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/node@*", "@types/node@^25.6.0": +"@types/node@*": version "25.6.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-25.6.0.tgz#4e09bad9b469871f2d0f68140198cbd714f4edca" integrity sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ== dependencies: undici-types "~7.19.0" +"@types/node@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.6.3.tgz#411dccb5fc25687c958fe35b6ca3741d48a8d13c" + integrity sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg== + dependencies: + undici-types "~8.9.0" + "@types/stack-utils@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" @@ -2980,10 +2987,10 @@ typescript@>=5.0.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.2.tgz#0b1bfb15f68c64b97032f3d78abbf98bdbba501f" integrity sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ== -typescript@^4.8.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== uglify-js@^3.1.4: version "3.19.3" @@ -2995,6 +3002,11 @@ undici-types@~7.19.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.19.2.tgz#1b67fc26d0f157a0cba3a58a5b5c1e2276b8ba2a" integrity sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg== +undici-types@~8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.9.0.tgz#e240d97c8b5d85e5347ce73d25865c7906c1ec9f" + integrity sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg== + update-browserslist-db@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.2.tgz#9d99fbff56c50bb11ba5fd35cece5916da595836" diff --git a/demo.singleContainerApp.Dockerfile b/demo.singleContainerApp.Dockerfile index 45f42ed1dc..5dee5374f3 100644 --- a/demo.singleContainerApp.Dockerfile +++ b/demo.singleContainerApp.Dockerfile @@ -1,5 +1,5 @@ # Use an official Node runtime as a parent image -FROM node:22.14-alpine +FROM node:26.10-alpine # Install xdg-utils RUN apk update && apk add --no-cache xdg-utils @@ -13,15 +13,13 @@ COPY ./packages/backend ./packages/backend COPY ./packages/backend/tsconfig.json ./backend COPY ./packages/types ./packages/types COPY ./package.json ./package.json +COPY ./yarn.lock ./yarn.lock ENV NEW_RELIC_NO_CONFIG_FILE=true ENV NR_NATIVE_METRICS_NO_BUILD=true -# Install concurrently globally -RUN yarn global add concurrently - -# Install dependencies -RUN yarn +# Install Yarn Classic and concurrently (used directly by CMD) +RUN npm install --global yarn@1.22.22 concurrently@8.2.1 && yarn install --frozen-lockfile # Expose any ports the frontend and backend use EXPOSE 4200 3030 diff --git a/dev.singleContainerApp.Dockerfile b/dev.singleContainerApp.Dockerfile index 97ce1f8cdd..413df06e8b 100644 --- a/dev.singleContainerApp.Dockerfile +++ b/dev.singleContainerApp.Dockerfile @@ -1,5 +1,5 @@ # Use an official Node runtime as a parent image -FROM node:22.14-alpine +FROM node:26.10-alpine # Install xdg-utils RUN apk update && apk add --no-cache xdg-utils @@ -13,15 +13,13 @@ COPY ./packages/backend ./packages/backend COPY ./packages/backend/tsconfig.json ./backend COPY ./packages/types ./packages/types COPY ./package.json ./package.json +COPY ./yarn.lock ./yarn.lock ENV NEW_RELIC_NO_CONFIG_FILE=true ENV NR_NATIVE_METRICS_NO_BUILD=true -# Install concurrently globally -RUN yarn global add concurrently - -# Install dependencies -RUN yarn +# Install Yarn Classic and concurrently (used directly by CMD) +RUN npm install --global yarn@1.22.22 concurrently@8.2.1 && yarn install --frozen-lockfile # Expose any ports the frontend and backend use EXPOSE 4200 3030 diff --git a/packages/backend/cl.Dockerfile b/packages/backend/cl.Dockerfile index c28bbd91b5..7fdce896a0 100644 --- a/packages/backend/cl.Dockerfile +++ b/packages/backend/cl.Dockerfile @@ -1,21 +1,21 @@ ARG IMAGE_REPO -FROM ${IMAGE_REPO}node:22.14-alpine3.21 AS build +FROM ${IMAGE_REPO}node:26.10-alpine3.24 AS build WORKDIR /usr/src/app COPY ./packages/backend ./packages/backend COPY ./packages/frontend/package.json ./packages/frontend/package.json COPY ./packages/types ./packages/types COPY ./package.json ./package.json COPY ./yarn.lock ./yarn.lock -RUN yarn +RUN npm exec --yes --package=yarn@1.22.22 -- yarn install --frozen-lockfile # ARG CODEARTIFACT_AUTH_TOKEN # ARG CODEARTIFACT_REGISTRY="//cli-467155500999.d.codeartifact.us-east-1.amazonaws.com/npm/cli-npm-artifacts/" # RUN npm config set '${CODEARTIFACT_REGISTRY}:_authToken=${CODEARTIFACT_AUTH_TOKEN}' -RUN ["yarn", "workspace", "upgrade-backend", "build"] +RUN npm exec --yes --package=yarn@1.22.22 -- yarn workspace upgrade-backend build -FROM ${IMAGE_REPO}node:22.14-alpine3.21 +FROM ${IMAGE_REPO}node:26.10-alpine3.24 ENV NEW_RELIC_NO_CONFIG_FILE=true ENV NR_NATIVE_METRICS_NO_BUILD=true @@ -27,4 +27,4 @@ COPY --from=build /usr/src/app/package.json ./package.json COPY --from=build /usr/src/app/packages/backend ./packages/backend COPY --from=build /usr/src/app/packages/types ./packages/types EXPOSE 3030 -CMD ["yarn", "workspace", "upgrade-backend", "production"] \ No newline at end of file +CMD ["npm", "--prefix", "packages/backend", "run", "production"] \ No newline at end of file diff --git a/packages/backend/package.json b/packages/backend/package.json index 8dca1f35b0..2307824361 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -38,7 +38,7 @@ "@types/express-serve-static-core": "^4.17.41", "@types/figlet": "^1.5.8", "@types/jest": "^29.5.11", - "@types/node": "^20.10.6", + "@types/node": "^26.6.3", "@types/objects-to-csv": "^1.3.3", "@types/seedrandom": "^3.0.2", "@types/serve-favicon": "^2.2.31", diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 4a472fa498..29307bc6f1 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -97,7 +97,7 @@ "@types/jwt-decode": "^3.1.0", "@types/lodash.find": "^4.6.7", "@types/lodash.isequal": "^4.5.6", - "@types/node": "^18.0.0", + "@types/node": "^26.6.3", "codelyzer": "^6.0.2", "coverage-badge-creator": "^1.0.11", "jest": "^29.7.0", diff --git a/yarn.lock b/yarn.lock index fbe19c5c72..edfb877d0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4258,19 +4258,12 @@ dependencies: undici-types "~8.3.0" -"@types/node@^18.0.0": - version "18.19.130" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.130.tgz#da4c6324793a79defb7a62cba3947ec5add00d59" - integrity sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg== +"@types/node@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.6.3.tgz#411dccb5fc25687c958fe35b6ca3741d48a8d13c" + integrity sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg== dependencies: - undici-types "~5.26.4" - -"@types/node@^20.10.6": - version "20.19.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.43.tgz#fcecf580ba42a0db55cf404c372c97973c376c97" - integrity sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA== - dependencies: - undici-types "~6.21.0" + undici-types "~8.9.0" "@types/normalize-package-data@^2.4.0": version "2.4.4" @@ -14317,21 +14310,16 @@ undefsafe@^2.0.5: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - undici-types@~8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== +undici-types@~8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.9.0.tgz#e240d97c8b5d85e5347ce73d25865c7906c1ec9f" + integrity sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg== + undici@^6.25.0: version "6.29.0" resolved "https://registry.yarnpkg.com/undici/-/undici-6.29.0.tgz#140fa16e337ac706d6ff12f03fbe5c4357e5f9a3"