From 848fd8322fadcc315f4026288398efccacf58f4a Mon Sep 17 00:00:00 2001 From: Keeley Hammond Date: Mon, 2 Dec 2024 11:07:07 -0800 Subject: [PATCH 1/3] docs: ecosystem node 22 update blog --- blog/node-22-ecosystem-update.md | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 blog/node-22-ecosystem-update.md diff --git a/blog/node-22-ecosystem-update.md b/blog/node-22-ecosystem-update.md new file mode 100644 index 000000000..f33eab665 --- /dev/null +++ b/blog/node-22-ecosystem-update.md @@ -0,0 +1,40 @@ +--- +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. + +--- + +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, maintenance of this policy 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` and `util.parseArgs`) and entire new batteries-included modules (e.g. `node:test`, `node:sqlite`). + +### 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. + +### What's next + +Please feel free to write to us at [info@electronjs.org](mailto:info@electronjs.org) if you have any questions or concerns. You can also find community support in our official [Electron Discord](https://discord.gg/electronjs). From 8377e095a618862479a65ddb92b7aa1416c0bd8d Mon Sep 17 00:00:00 2001 From: Keeley Hammond Date: Mon, 2 Dec 2024 15:28:53 -0800 Subject: [PATCH 2/3] chore: apply suggestions from code review Co-authored-by: Erick Zhao --- blog/node-22-ecosystem-update.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/blog/node-22-ecosystem-update.md b/blog/node-22-ecosystem-update.md index f33eab665..d79bf20b2 100644 --- a/blog/node-22-ecosystem-update.md +++ b/blog/node-22-ecosystem-update.md @@ -10,8 +10,6 @@ In early 2025, Electron’s npm ecosystem repos (under the `@electron/` and `@el --- -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. @@ -21,7 +19,7 @@ Over time, maintenance of this policy has become increasingly difficult for a fe - 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` and `util.parseArgs`) and entire new batteries-included modules (e.g. `node:test`, `node:sqlite`). +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? From b3100afa49a4f171990a57d3290e206352efbed6 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Dec 2024 17:44:43 -0800 Subject: [PATCH 3/3] Update blog/node-22-ecosystem-update.md Co-authored-by: Charles Kerr --- blog/node-22-ecosystem-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/node-22-ecosystem-update.md b/blog/node-22-ecosystem-update.md index d79bf20b2..349e50367 100644 --- a/blog/node-22-ecosystem-update.md +++ b/blog/node-22-ecosystem-update.md @@ -14,7 +14,7 @@ In early 2025, Electron’s npm ecosystem repos (under the `@electron/` and `@el 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, maintenance of this policy has become increasingly difficult for a few reasons: +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.