---
title: "Should Node switch to annual major releases?"
publication: "Node Weekly"
issue: 586
published_at: "2025-07-15"
canonical_url: "https://nodeweekly.com/issues/586"
---

Plus a performance comparison of Node version managers. |        

#​586 — July 15, 2025 

[Read on the Web](https://nodeweekly.com/issues/586)  

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/complete-intro-containers-v2/?utm_source=email&utm_medium=nodeweekly&utm_content=containersv2)  

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dfroipebzcruk3naelgf.jpg)](https://nodejs.org/en/blog/release/v24.4.0)  

[Node v24.4.0 (Current) Released](https://nodejs.org/en/blog/release/v24.4.0) — You can now use `--watch-kill-signal` to specify which signal is sent to a process being restarted by [Node’s ‘watch mode’](https://nodejs.org/api/cli.html#--watch); `spawn` and `spawnSync` now propagate permission model flags; plus the usual V8 and dependency updates. 

Rafael Gonzaga   

💡 The Node team has also [announced there are new releases of v24.x, 22.x, and 20.x](https://nodejs.org/en/blog/vulnerability/july-2025-security-releases) in the next day or two to resolve some security issues, so keep an eye out for those.  

[Proposal: Shift Node.js to Annual Major Releases](https://github.com/nodejs/Release/issues/1113) — A discussion is currently taking place around whether Node could move to having annual major releases and then reducing the LTS duration of the even-numbered releases from the current 30 months down to 24. Community feedback is encouraged on this thread. 

Rafael Gonzaga et al.   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/43dda6de.png)](https://frontendmasters.com/courses/complete-intro-containers-v2/?utm_source=email&utm_medium=nodeweekly&utm_content=containersv2) 

[Deploy Node in Docker the Right Way](https://frontendmasters.com/courses/complete-intro-containers-v2/?utm_source=email&utm_medium=nodeweekly&utm_content=containersv2) — Don’t settle for surface-level tutorials. Learn how containers are built, how to run Node apps properly inside them, and how to use Docker Compose and Kubernetes with confidence. 

Frontend Masters sponsor   

[Announcing TypeScript 5.9 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/#support-for---module-node20) — Perhaps the biggest introduction is [support for `import defer`](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/#support-for-import-defer), but there’s also [a new `node20` mode](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/#support-for---module-node20) which is like `nodenext` [but targeting ES2023.](https://github.com/microsoft/TypeScript/pull/61805) We also learn that the [Go-powered ‘native port’](https://devblogs.microsoft.com/typescript/typescript-native-port/) of TypeScript will eventually be available as TypeScript 7. 

Microsoft   

**IN BRIEF:** 

- Node.js v18 went 'end of life' in April 2025, but Canonical (the maintainers of Ubuntu) have announced [Ubuntu Pro users will now get support till 2032.](https://ubuntu.com/blog/nodejs-18-lts-eol-extended-from-april-2025-to-may-2032-on-ubuntu)
- Callstack has [announced Node-API support for React Native](https://www.callstack.com/blog/announcing-node-api-support-for-react-native), opening up many more options for writing and sharing native code across platforms.
- The Igalia team has shared [a detailed summary of the latest TC39 plenary](https://blogs.igalia.com/compilers/2025/07/03/summary-of-the-may-2025-tc39-plenary/), packed with interesting tidbits about developments to ECMAScript.
- North Korean 'threat actors' have deployed 67 malicious npm packages and [Kirill Boychenko tells us what they are and explains how they work.](https://socket.dev/blog/contagious-interview-campaign-escalates-67-malicious-npm-packages)   

📊 [The 500x Performance Gap Between Node Version Managers (and Why You Might Not Care)](https://nodevibe.substack.com/p/the-500x-performance-gap-between) — _“Your choice of Node.js version manager can make your shell startup 500x slower,”_ starts Pavel, who shares some benchmarks, but concludes it might not matter _too_ much unless you’re spawning a lot of new shells. 

Pavel Romanov   

📄 [JavaScript Scope Hoisting is Broken](https://devongovett.me/blog/scope-hoisting.html) – The creator of [Parcel](https://parceljs.org/) argues that [scope hoisting](https://parceljs.org/features/scope-hoisting/) conflicts with modern JS patterns. Devon Govett 

📄 [Modern Async Iteration with `Array.fromAsync()`](https://allthingssmitty.com/2025/07/14/modern-async-iteration-in-javascript-with-array-fromasync/) Matt Smith 

📄 [Typed Query Builders: Comparing Kysely and Drizzle](https://marmelab.com/blog/2025/06/26/kysely-vs-drizzle.html) Guillaume Billey    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/yfcwjrbd6zg8lcpf4kvj.jpg)](https://necord.org/)  

[Necord: A Framework for Creating Discord Bots](https://necord.org/) — It uses Nest and Discord.js under the hood. Some example apps show [how easy it is](https://github.com/necordjs/examples/blob/master/02-slash-commands/src/app.commands.ts) to deploy bot functions. [GitHub repo.](https://github.com/necordjs/necord) 

Necord   

✉️ [Upyo: A Simple Cross-Runtime Email Sending Library](https://upyo.org/) — A cross-runtime email library that provides a unified, type-safe API for sending emails both on SMTP and HTTP-based (e.g. SendGrid or Amazon SES) providers. _TIL that ‘upyo’ (우표) means ‘postage stamp’ in Korean._ 

Hong Minhee   

[Your Playwright Tests, Now on Real iOS Safari Devices](https://www.browserstack.com/docs/automate/playwright/playwright-ios?utm_source=newsletter&utm_medium=PR&utm_platform=&utm_content=new-launches-updates&utm_campaign=PR-12-Jun-2025-iOS-Playwright&utm_campaigncode=701OW00000NyIRcYAN&utm_term=nodeweekly2) — Stop missing Safari bugs. Run tests on real iOS devices with BrowserStack, capture logs, and ship with confidence. 

BrowserStack sponsor   

[Rewire 9.0: Easier Monkey-Patching for Unit Tests](https://github.com/jhnns/rewire) — Enhances CommonJS (only) modules with special setters and getters, for injecting mocks, inspecting private variables, and overriding module internals. 

Johannes Ewald   

[Envalid 8.1: Environment Variable Validation](https://github.com/af/envalid) — Ensure your program only runs when all of its environment dependencies are met. [v8.1](https://github.com/af/envalid/releases/tag/v8.1.0) is a minor update, though the first in two years. 

Aaron Franks   

[cRonstrue 3.0: Convert Cron Expressions into Natural Language](https://github.com/bradymholt/cRonstrue) — Not just English either - it supports about [thirty locales.](https://github.com/bradymholt/cRonstrue#supported-locales) There’s also [an online demo.](https://bradymholt.github.io/cRonstrue/) 

Brady Holt   

- [ESLint v9.31.0](https://eslint.org/blog/2025/07/eslint-v9.31.0-released/) – Four core rules have been updated to support explicit resource management.
- [Serverless Express 4.17](https://github.com/CodeGenieApp/serverless-express) – Run Express.js on AWS Lambda, API Gateway, Lambda@Edge, etc.
- [NATS.js 3.1](https://github.com/nats-io/nats.js/releases/tag/v3.1.0) – JavaScript client for the NATS messaging system.
- [open 10.2](https://github.com/sindresorhus/open) – Open URLs, files and executables – cross-platform.
- 🤖 [OpenAI Node 5.9](https://github.com/openai/openai-node) – The official Node library for OpenAI.
- [snakecase-keys 9.0](https://github.com/bendrucker/snakecase-keys) – Convert object keys to snake case.
- [Poolifier 5.1](https://github.com/poolifier/poolifier) – Worker threads and cluster worker pool.  

📢 Elsewhere in the ecosystem  

A roundup of some other interesting stories in the broader landscape, in case you've missed them: 

- 📅 [new Date("wtf")](https://jsdate.wtf/) – How well do you know JavaScript's Date class and how date parsing works in JavaScript? Find out with this hair-raising quiz.
- [ANSI.tools](https://ansi.tools/) is a handy online tool for analyzing ANSI escape codes/sequences and [a lookup](https://ansi.tools/lookup) of common codes.
- [Tae Kim explains how he tackled the _1 Billion Row Challenge_](https://www.taekim.dev/writing/parsing-1b-rows-in-bun) in Bun, and was able to process a 1 billion row file in under 10 seconds.
- The [Nginx](https://nginx.org/) HTTP server has a module (`njs`) for extending its functionality using JavaScript, but it only supported ES5. Now, [`njs` uses QuickJS for a more modern, powerful experience](https://blog.nginx.org/blog/quickjs-engine-support-for-njs) with full ES2023 support.    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
