Tighten engines and devEngines#683
Merged
bedrich-schindler merged 1 commit intomasterfrom Dec 20, 2025
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR tightens Node.js and npm version requirements by specifying exact LTS versions instead of major version ranges. It updates the GitHub Actions workflow to accommodate the stricter requirements by splitting the build job into two separate jobs for different Node.js LTS versions.
- Updates
engines.nodefrom>=22to>=22.11.0(first LTS minor version) - Adds strict
devEnginesrequirements for Node.js^22.11.0 || ^24.11.0and npm^11.6.1 - Splits the GitHub Actions build workflow into separate jobs for previous and active LTS Node versions
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| package.json | Updates Node.js version requirement to specific LTS version and adds strict devEngines constraints for runtime and package manager |
| package-lock.json | Synchronizes engine and devEngines requirements to match package.json changes |
| .github/workflows/build.yml | Splits build job into two separate jobs for different Node.js LTS versions, adds comprehensive documentation, and includes workaround for npm version installation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
`engines` requires `node` version `>=22.11.0` instead of `>=22`, while `22.11.0` is first long term support minor version of this major version. `devEngines` requires `node` version `^22.11.0 || ^24.11.0` instead of `22.x || 24.x`, while `22.11.0` and `24.11.0` are first long term support minor versions of those major versions. `devEngines` now requires `npm` version `^11.6.1` as it is first `npm` version delivered by `node` in version `24.11.0`. We require single major version of `npm` to generate `package-lock.json` of compatible structure. This would not be possible without requiring specific version of `npm`. `.github/workflows/build.yml` requires to split `build` job between `build_on_node_active_lts` to `build_on_node_previous_lts` due to fact that `build_on_node_previous_lts` requires to install newer `npm` and its `Set up Node.js` may fail due to this. This is due to `actions/setup-node@v6` that cannot install specific `npm` version, but fails with incompatible version defined in `devEngines`. `.github/workflows/build.yml` sets only major version of runtime engines to use the latest.
fe94189 to
9f9db3b
Compare
mbohal
approved these changes
Dec 19, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
enginesrequiresnodeversion>=22.11.0instead of>=22, while22.11.0is first long term support minor version of this major version.devEnginesrequiresnodeversion^22.11.0 || ^24.11.0instead of22.x || 24.x, while22.11.0and24.11.0are first long term support minor versions of those major versions.devEnginesnow requiresnpmversion^11.6.1as it is firstnpmversion delivered bynodein version24.11.0. We require single major version ofnpmto generatepackage-lock.jsonof compatible structure. This would not be possible without requiring specific version ofnpm..github/workflows/build.ymlrequires to splitbuildjob betweenbuild_on_node_active_ltstobuild_on_node_previous_ltsdue to fact thatbuild_on_node_previous_ltsrequires to install newernpmand itsSet up Node.jsmay fail due to this. This is due toactions/setup-node@v6that cannot install specificnpmversion, but fails with incompatible version defined indevEngines..github/workflows/build.ymlsets only major version of runtime engines to use the latest.