-
Notifications
You must be signed in to change notification settings - Fork 84
chore(ci): add all relevant Node.js 24 variants to evergreen for CI MONGOSH-2995 #2586
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
There is an existing patch(es) for this commit SHA: Please note that the status that is posted is not in the context of this PR but rather the (latest) existing patch and that may affect some tests that may depend on the particular PR. If your tests do not rely on any PR-specific values (like base or head branch name) then your tests will report the same status. If you would like a patch to run in the context of this PR and abort the other(s), comment 'evergreen retry'. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds Node.js 24 support to the MongoDB Shell (mongosh) CI infrastructure. The changes enable testing and building mongosh with Node.js 24 by configuring evergreen CI with the appropriate Node.js 24 variants and handling version-specific requirements.
Key changes:
- Add Node.js 24 configuration and version tracking files for CI
- Update minimum Node.js version requirements from 12.x/20.x to 20.19.x
- Handle Node.js 24 experimental features (strip-types flag, jitless mode) with workarounds
- Update dependency versions (tslib, nx tooling, etc.) and remove obsolete npm version pinning
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/run-if-package-requested.js |
Adds Node.js 24 handling to disable experimental strip-types feature |
package.json |
Updates minimum Node.js version to 20.19.3 and adds Node.js 24 version tracking script |
package-lock.json |
Updates minimum Node.js version to 20.19.5, updates tslib to 2.8.1, and updates nx/lerna dependencies |
.evergreen/setup-env.sh |
Adds Node.js 24 jitless mode workaround for Linux and removes npm-10 path reference |
.evergreen/node-24-latest.json |
New configuration file defining Node.js 24.11.1 version details |
.evergreen/node-20-latest.json |
Removes deprecated fields (isSupported, isMaintenance, isSecurity, modules) |
.evergreen/install-node.sh |
Updates nvm version and removes npm version pinning workarounds |
.evergreen/constants.js |
Adds NODE_JS_VERSION_24 constant and configuration |
.evergreen/InstallNode.ps1 |
Removes npm version downgrade workaround for Windows |
.evergreen-nightly-driver.yml |
Removes hardcoded Node.js version override |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
We are also upgrading the Node.js version we use for the driver nightly tests to 24.11.1 (latest LTS version at the moment of this commit)
We will be running all tests in both Node.js 20 and Node.js 24 with the current driver version. The nightly driver run that happens every day should do the same with the nightly driver without additional changes.
While older versions of npm had specific issues on Windows, the latest npm@10 and npm@11 seem to be working fine, as they are the ones we are using already in boxednode.
For some reason, Node.js 22 and Node.js 24 are more strict on whether __dirname exists. Because import.meta.dirname always exist, and must be equal, replace at the beginning of the script.
Update to the minimum Node.js version that we have in the devtools-toolchain (20.19.3)
While this doesn't have the exact same semantic, it works identical in all Node.js versions and we have control of the cwd of the process, so this should be consistent and work without ESM/CJS trics.
eac9799 to
f0708ff
Compare
Evergreen is already working on providing an up-to-date version of Node.js doesn't contain the JIT compiler issue. We need JIT for WASM support.
Node.js 24 variants are going to be broken for a while, while we work on the upgrade. It doesn't make much sense to keep them running and blocking CI, so we will disable them by default and only run them when a patch asks for it.
ae4d286 to
a078764
Compare
a078764 to
974ba73
Compare
No description provided.