Node.js release schedule explained

Node.js release schedule explained

·

4 min read

By Marco Ippolito

From version numbers to the release lifecycle, we help newcomers get familiar with the Node.js release process

Understanding the Node.js release process might seem tricky at first, especially if you're new or not familiar with all the details. However, mastering it not only makes developers’ lives easier but brings real value to businesses.

Staying up to date not only reduces downtime and boosts software reliability but also minimises the risk of costly, large-scale migrations to newer versions. By constantly updating versions, developers save time that can be better spent on revenue-generating activities. This proactive approach translates into fewer security risks, faster performance and lower cloud costs. Altogether, it keeps businesses competitive, delights users and secures long-term success.

As a maintainer of Node.js, I've recently started serving as a releaser. This role has given me a good understanding of the release schedule, that's why I'm here to shed some light on how it all works.

Odd and even version numbers

It's essential to know that odd-numbered versions serve as a playground for developers.

These versions are active and primarily used by package authors and users to preview upcoming features. Odd-numbered major version releases (v17, v19, v21) will not be promoted to Long-Term Support (LTS).

However, even-numbered versions become LTS releases (v18, v20, v22).

Interestingly, each major LTS version of Node.js is named after an element from the periodic table (v18 Hydrogen, v20 Iron), adding a touch of chemistry to the release process.

Understanding the Node.js release lifecycle

Node.js follows a structured release schedule to ensure stability, compatibility, and longevity of support for its users. Here's a breakdown of how it all unfolds:

1. Current release status

When a major version of Node.js is released, regardless of whether it is even or odd, it enters the Current release status. This phase lasts for six months. During this time, developers and library authors are encouraged to adopt and adapt to the new features and changes introduced in the latest release. It's a period of innovation and experimentation.

2. Active LTS status

After the initial six-month period, odd-numbered releases transition to unsupported status. Even-numbered releases, however, move into Active LTS status. These LTS releases are ready for general use and offer extended support.

This phase typically lasts for one year before entering the Maintenance LTS status.

It’s worth mentioning that odd-version releases will receive security patches before the next even-numbered major enters the Active LTS status.

3. Maintenance LTS status

While in Active LTS status, a Node.js version receives active support, including new features, fixes for critical bugs and security patches. After this period, the version enters Maintenance LTS status which lasts around 18 months, where only fixes for bugs and security patches are released.

4. End of Life (EOL)

Once a Node.js version reaches the end of its Maintenance LTS period, it is considered End of Life (EOL). At this point, it will no longer receive official support or updates from the Node.js project.

Node.js maintains three release lines simultaneously, two of which are LTS versions, one in Maintanance LTS, one in Active LTS, and the third one as Current (either a odd-numbered version or a even-numbered that has not entered Active status yet), ensuring a balance between innovation and stability.

Here is an image of the current status of Node.js releases from the documentation:

Recently, I had the pleasure of contributing to the release of Node.js 22, which has currently entered the Current status, while the v21 version is being dismissed.

When Node v22 enters the Active LTS status, Node v20 enters the Maintanance Mode, and Node v23 is set as Current.

Recommendations for production applications

For production applications, it's crucial to use Node.js versions that are either in Active LTS or Maintenance LTS status. These versions provide a stable and supported environment for your applications, ensuring reliability and that security fixes.

But don't overlook the importance of testing against Current versions, both odd and even, it's an essential step in keeping your production environment robust and up-to-date.

Odd versions of Node.js not only let you experiment with new features before the release of the next LTS version but also provide warnings for upcoming end-of-life deprecations expected in the next LTS release. This gives you ample time to plan and migrate your applications accordingly. On the other hand, even major versions help you ensure that your application won't break and give you time to prepare for changes.

By doing so, you can provide valuable feedback to the Node.js project and identify any potential compatibility issues early on.

Conclusion

In conclusion, navigating the Node.js release process requires a nuanced understanding of its versioning system and lifecycle. From the distinction between odd and even version numbers to the structured phases of Current, Active LTS, Maintenance LTS, and End of Life, each step serves a vital role in balancing innovation with stability.

As Node.js continues to evolve, understanding its release lifecycle empowers developers to make informed decisions, maintain reliable applications, and contribute to the growth of the ecosystem. Embracing this process not only ensures the longevity of your projects but also fosters collaboration and innovation within the Node.js community.