Update to NodeJS v24#33379
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the monorepo’s Node.js baseline to v24 by enforcing Node requirements in workspace manifests and aligning CI to use a single version source (.node-version).
Changes:
- Add
engines.node >=24across packages/apps to declare the new minimum Node version. - Add
.node-version(24.15.0) / update.tool-versions, and switch GitHub Actions workflows tonode-version-file. - Enable
engine-strict=truein.npmrc(root andpackages/sbom) to enforce engine checks during installs.
Reviewed changes
Copilot reviewed 48 out of 48 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/testcafe-models/package.json | Add Node >=24 engine requirement. |
| packages/sbom/package.json | Add Node >=24 engine requirement. |
| packages/sbom/.npmrc | Enforce engine checks for sbom workspace. |
| packages/nx-infra-plugin/package.json | Add Node >=24 engine requirement. |
| packages/eslint-migration-utils/package.json | Add Node >=24 engine requirement. |
| packages/devextreme/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-vue/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-themebuilder/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-scss/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-react/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-monorepo-tools/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-metadata/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-dist/package.json | Add Node >=24 engine requirement. |
| packages/devextreme-angular/package.json | Add Node >=24 engine requirement. |
| package.json | Add Node >=24 engine requirement for the workspace root. |
| e2e/wrappers/package.json | Add Node >=24 engine requirement. |
| e2e/testcafe-devextreme/package.json | Add Node >=24 engine requirement. |
| e2e/devextreme-bundler/package.json | Add Node >=24 engine requirement. |
| e2e/compilation-cases/package.json | Add Node >=24 engine requirement. |
| e2e/bundlers/package.json | Add Node >=24 engine requirement. |
| apps/vue/package.json | Add Node >=24 engine requirement. |
| apps/react/package.json | Add Node >=24 engine requirement. |
| apps/react-storybook/package.json | Add Node >=24 engine requirement. |
| apps/demos/package.json | Add Node >=24 engine requirement. |
| apps/angular/package.json | Add Node >=24 engine requirement. |
| .tool-versions | Bump asdf Node version to 24.15.0. |
| .npmrc | Enforce engine checks at repo root. |
| .node-version | Add canonical Node version file (24.15.0) for CI/local tools. |
| .github/workflows/wrapper_tests_e2e.yml | Switch CI Node selection to .node-version. |
| .github/workflows/wrapper_tests.yml | Switch CI Node selection to .node-version. |
| .github/workflows/visual-tests-demos.yml | Switch CI Node selection to .node-version. |
| .github/workflows/update_version.yml | Switch CI Node selection to .node-version. |
| .github/workflows/ts_declarations.yml | Switch CI Node selection to .node-version. |
| .github/workflows/themebuilder_tests.yml | Switch CI Node selection to .node-version. |
| .github/workflows/testcafe_tests.yml | Switch CI Node selection to .node-version. |
| .github/workflows/styles.yml | Switch CI Node selection to .node-version. |
| .github/workflows/run-testcafe-on-gh-pages.yml | Switch CI Node selection to .node-version. |
| .github/workflows/renovation.yml | Switch CI Node selection to .node-version. |
| .github/workflows/qunit_tests.yml | Switch CI Node selection to .node-version. |
| .github/workflows/publish-demos.yml | Switch CI Node selection to .node-version. |
| .github/workflows/pr-storybook-deploy-manual.yml | Switch CI Node selection to .node-version. |
| .github/workflows/playgrounds_tests.yml | Switch CI Node selection to .node-version. |
| .github/workflows/packages_publishing.yml | Switch CI Node selection to .node-version. |
| .github/workflows/lint.yml | Switch CI Node selection to .node-version. |
| .github/workflows/demos_unit_tests.yml | Switch CI Node selection to .node-version. |
| .github/workflows/default_workflow.yml | Switch CI Node selection to .node-version. |
| .github/workflows/codeql.yml | Switch CI Node selection to .node-version. |
| .github/workflows/build_all.yml | Switch CI Node selection to .node-version (partial; see comments). |
| @@ -0,0 +1 @@ | |||
| 24.15.0 No newline at end of file | |||
There was a problem hiding this comment.
don't forget to add eols
2e46a5b to
fdf1d12
Compare
| "version": "26.1.0", | ||
| "license": "MIT", | ||
| "author": "Developer Express Inc.", | ||
| "engines": { "node": ">=24" }, |
There was a problem hiding this comment.
???
I would suggest use the syntax that renovate bot suggests in the documentation: node: ^24.15.0
https://docs.renovatebot.com/node/#configuring-which-version-of-npm-renovate-uses
UPD: node: 24.15.0, since the updation would be automatic by renovate and it won't update version with caret
There was a problem hiding this comment.
We need to fix major version here, renovate bot should update .node-version file, based on our last discussion.
| - uses: pnpm/action-setup@v4 | ||
| with: | ||
| run_install: false | ||
|
|
||
| - name: Use Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version-file: '.node-version' |
There was a problem hiding this comment.
In this composite action, pnpm/action-setup runs before actions/setup-node. Most workflows in this repo set the Node version first, then install pnpm, which ensures pnpm is installed/used under the intended Node runtime. Consider moving the actions/setup-node step above pnpm/action-setup for consistency and to avoid subtle issues if the runner default Node differs from .node-version.
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '20' | ||
| node-version-file: '.node-version' |
There was a problem hiding this comment.
Switching workflows from node-version: ... to node-version-file: '.node-version' may break automated Node version updates via Renovate. The current .github/renovate.json custom manager only matches node-version: in workflow YAML, so Renovate will no longer detect/update the Node version after this change. Consider updating Renovate config to track .node-version (or to also match node-version-file) so Node updates remain automated.
| node-version-file: '.node-version' | |
| node-version: 20.x |
| manage-node-version=true | ||
| use-node-version=24.15.0 No newline at end of file |
There was a problem hiding this comment.
Node version is now pinned in multiple places (.node-version, .tool-versions, and use-node-version=24.15.0 here). This increases the risk of the versions drifting out of sync over time. Consider making one file the single source of truth (commonly .node-version) and either removing the duplicate pin here or adding automation (e.g., a sync script / Renovate rule) to update all locations together.
| manage-node-version=true | |
| use-node-version=24.15.0 | |
| manage-node-version=true |
No description provided.