What are the differences between Long Term Support (LTS) and Stable versions of Node.js?
Asked Answered
R

3

100

Originally asked: What is the difference between Node.js 4.x branch with LTS (Long Term Support) and the 5.x branch (listed as Stable)?

But this is equally relevant to understanding the difference between 6.x and 7.x and, in the future, 8.x and 9.x

Generally, I always lean towards the latest version for features and performance (as I now do a lot of ES6 / ES7). Is there any information on how production ready the "stable" branches are?

Rochester answered 11/11, 2015 at 22:44 Comment(7)
Is there anything else you need to know that isn't covered by this blog post? nodejs.org/en/blog/community/node-v5 . If yes, what is it?Mali
This is a community forum, that is a post by the developers of node. There is specific information from perspectives outside the development team that may be relevant.Rochester
FWIW, this is not a forum, it's a Q&A site. This format is not appropriate for discussions, which it seems is what you are more interested in?Mali
No not a discussion, see the accepted answer. if you are always going to require people to externally shift through documentation or other information. Rather then a quick, concise answer. This site is 100% pointless.Rochester
The answer doesn't provide any source / evidence why v5.0 should be considered as "beta". To me this seems to be primarily personal opinion. If I had answered with "v5.0 is stable, you should upgrade to Node.js v5.x if you have the ability to upgrade versions quickly and easily without disturbing your environment.", would you have accepted mine? Why or why not? "This site is 100% pointless." That's not true. But there are questions / content that are just not suited for this site.Mali
The answers to this question that state that v5 is a beta are very misleading. v5 is the current stable release and suitable for production use. V4 is a Long Term Support version and is aimed at making Node.js a viable choice for enterprise use.Machinery
you read it wrong... it was never stated that it is beta.Dismuke
M
105

To understand the difference you need to understand why a Long Term Support (LTS) version of Node exists.

Node LTS is primarily aimed at enterprise use where there may be more resistance to frequent updates, extensive procurement procedures and lengthy test and quality requirements.

From Rod Vagg a member of the Node LTS working group:

The point of establishing an LTS plan for Node is to build on top of an existing stable release cycle by delivering new new versions on a predictable schedule that have a clearly defined extended support lifecycle. While this may seem at odds with the open source tradition of “release early, release often” it is an essential requirement for enterprise application development and operations teams. It also affects companies ... that provide professional support for Node.js.

https://medium.com/@nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd#.za353bn08

The official Node post mentioned in one of the comments also does a fine job of explaining this:

https://nodejs.org/en/blog/community/node-v5/

It is sometimes misunderstood that odd version number releases (v5, v7) are a "beta" of the next LTS release. This is a convention used in other project but not in Node and is somewhat misleading. In fact, the next LTS release is chosen from a specific point release of the current version, and this will usually be an even version release (v6, v8). It's not that the latest versions are betas - it's that the LTS releases fulfil a specific need some organisations have.

For a point of reference look at Firefox's Extended Support Releases (https://www.mozilla.org/en-US/firefox/organizations/faq/) or Ubuntu's LTS releases (https://wiki.ubuntu.com/LTS). I don't think anyone would suggested the latest version of Firefox was a beta and that most users should stick with the older ERS versions.

Generally if you are able to keep up with the latest stable and future Node releases you should do so. These are stable and production ready releases with excellent community support. Unstable and experimental functionality is kept behind build and runtime flags and should not affect your day to day operations.

Generally I always lean towards the latest version for features and performance (as I now do allot of ES6 / ES7)

This would suggest to me that stable versions and beyond will suit your needs well. This will give you access to the latest and greatest language features provide by the underlying JavaScript engine (V8 or Chakra)

Of note: A significant difference between v4 (and earlier) and v5 is that v4 ships with npm v2 whereas v5 ships with npm v3. v3 of npm has some potentially breaking changes for your project in how it handles peerDependancies. The way npm v3 now tries to install a dependancies own dependancies as flat as possible and avoid duplicates may affect your projects but has been a big boon for Windows users so this may also impact your decision making.

Machinery answered 7/1, 2016 at 12:27 Comment(0)
C
15

Release Types

  • Current: Under active development. Code for the Current release is in the branch for its major version number (for example, v10.x). Node.js releases a new major version every 6 months, allowing for breaking changes. This happens in April and October every year. Releases appearing each October have a support life of 8 months. Releases appearing each April convert to LTS (see below) each October.

  • LTS: Releases that receive Long-term Support, with a focus on stability and security. Every even-numbered major version will become an LTS release. LTS releases receive 18 months of Active LTS support and a further 12 months of Maintenance. LTS release lines have alphabetically-ordered codenames, beginning with v4 Argon. There are no breaking changes or feature additions, except in some special circumstances.

Source

Cart answered 19/7, 2019 at 16:0 Comment(0)
D
10

The 4.x is the version that is currently being supported, similar to a production release. The 5.0 version is stable, but it is the upcoming version in flux and should be treated like it is a beta or release candidate. As such you currently do not see 5.0 as an option in things like Amazon Elastic Beanstalk.

Once a Stable release line becomes LTS, no new features or breaking changes will be added to that release.

Source

Dismuke answered 11/11, 2015 at 23:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.