-
Notifications
You must be signed in to change notification settings - Fork 136
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
blog: ecosystem node 22 update blog #698
Open
VerteDinde
wants to merge
3
commits into
main
Choose a base branch
from
node-22-blog
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: Moving our Ecosystem to Node 22 | ||
date: 2024-12-02T00:00:00.000Z | ||
authors: VerteDinde | ||
slug: ecosystem-node-22 | ||
tags: [community, ecosystem] | ||
--- | ||
|
||
In early 2025, Electron’s npm ecosystem repos (under the `@electron/` and `@electron-forge/` namespaces) will move to Node.js 22 as the minimum supported version. | ||
|
||
--- | ||
|
||
### What does this mean? | ||
|
||
In the past, packages in Electron’s npm ecosystem (Forge, Packager, etc) have supported Node versions for as long as possible, even after a version has reached its End-Of-Life (EOL) date. This is done to make sure we don’t fragment the ecosystem—we understand that many projects depend on older versions of Node, and we don’t want to risk stranding those projects unless there was a pressing reason to upgrade. | ||
|
||
Over time, using Node.js 14 as our minimum version has become increasingly difficult for a few reasons: | ||
|
||
- Lack of official Node.js 14 macOS ARM64 builds requires us to maintain CI infrastructure workarounds to provide full test coverage. | ||
- `engines` requirements for upstream package dependencies have moved forward, making it increasingly difficult to resolve supply chain security issues with dependency bumps. | ||
|
||
Additionally, newer versions of Node.js have included many improvements that we would like to leverage, such as runtime-native common utilities (e.g. [`fs.glob`](https://nodejs.org/api/fs.html#fsglobpattern-options-callback) and [`util.parseArgs`](https://nodejs.org/api/util.html#utilparseargsconfig)) and entire new batteries-included modules (e.g. [`node:test`](https://nodejs.org/api/test.html), [`node:sqlite`](https://nodejs.org/api/sqlite.html)). | ||
|
||
### Why upgrade now? | ||
|
||
In July 2024, Electron’s Ecosystem Working Group decided to upgrade all packages to the earliest Node version where `require()`of synchronous ESM graphs will be supported (see [nodejs/node#51977](https://github.com/nodejs/node/pull/51977) and [nodejs/node#53500](https://github.com/nodejs/node/pull/53500)) at a future point after that version reaches its LTS date. | ||
|
||
We’ve decided to set that update time to January/February 2025. After this upgrade occurs, Node 22 will be the minimum supported version in existing ecosystem packages. | ||
|
||
### What action do I need to take? | ||
|
||
We’ll strive to maintain compatibility as much as possible. However, to ensure the best support, we encourage you to upgrade your apps to Node 22 or higher. | ||
|
||
Note that the Node version running in your project is unrelated to the Node version embedded into your current version of Electron. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a good start but I'd go even further, e.g. explaining if your app uses Node 21 but doesn't use any ecosystem apps, they don't need to make any changes (I think?) |
||
|
||
### What's next | ||
|
||
Please feel free to write to us at [[email protected]](mailto:[email protected]) if you have any questions or concerns. You can also find community support in our official [Electron Discord](https://discord.gg/electronjs). |
Oops, something went wrong.
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.
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.
I'm not sure about this one, but should this paragraph be a third bullet point in the previous list? Fits the rule of three