NodeJS Versioning Questions - node.js

Is there an explanation why NodeJS latest version is 6.2.1 but the LTS is 4.4.5? It might seem odd but shouldn't they stabilized version 5 first before working on or releasing version 6?
https://nodejs.org/en/

The reasoning behind this is that Node works to a 'LTS schedule':
New major version releases (i.e. the x in x.y.z) are created from the master branch every six months - even-numbered releases in April, odd-numbered releases in October.
Whenever a new odd-numbered release comes out, the previous even-numbered release moves into LTS, meaning there should be no breaking changes to that version from that point on.
The LTS version will be supported for 18 months, after which it will go into maintenance mode for 12 months, meaning it will only receive critical/security related updates. Because of this, there will never be more than two LTS versions active at the same time.
If it helps you visualize it, there's a diagram of the schedule on the Node LTS GitHub:
This allows there to be a predictable release schedule and migration path for those who have to support their Node infrastructure long-term, while keeping the pace of development moving for those who want to stay on the cutting-edge of new features. Bear in mind that under SemVer (the versioning scheme that Node uses), breaking changes are only allowed in major-version releases - having a regular schedule for these coming out ensures that these changes can be tested before they get added to an LTS version further down the line.
For more info, I recommend taking a look at the Node LTS GitHub - this is where I got all this information from, and it's a pretty helpful resource.

Related

Where do I find list of breaking changes for Any NodeJS version

I am currently using node 6.1 in my project.
I want to upgrade it to latest stable version now.
Before doing that I want to know what are the breaking changes introduced in all the versions in between 6 to 12
Is there any place I can get all these breaking changes for the node versions.
I've found this page to be the most helpful list of all major/minor/patch changes:
https://nodejs.org/en/blog/release/v16.0.0/
Another good resource to find changes to all the different major versions, is the changelog archive on nodejs' github:
https://github.com/nodejs/node/tree/main/doc/changelogs

what is the best way to keep my gitlab server version updated

I recently had to upgrade my Gitlab server. I found out that gitlab-7.8.1_omnibus is too old and there is no direct way to update the current version to the latest version gitlab-ee-12.7.6-ee.
The best way I've found is to install a new server with the latest version of Gitlab and ask the users to transfer their data to the new server.
Is there a way I can transfer the data for the users?
I would like to prevent this from happening again. How do I make sure my Gitlab server is updated evey time a new version is available.
Do I must to run 'yum update' before I run the Gitlab update?
I.
GitLab 7.8.1 is indeed a very old version.
You can avoid upgrade path and just move Git repos, if your number of projects and their customisations and integrations is low.
Every clone of git repository is supposed to have all (or nearly all) history.
So you can just:
create a matching project on the new GitLab server
add a new remote to your git clones on your machine git remote add origin ...
push to the new remote
II.
You can still try to upgrade your current server in several hops, see upgrade recommendations:
We recommend that you first upgrade to the latest available minor version within your major version
Old versions I could find are:
8.0.0 as the oldest Docker image
7.10.0 as the oldest deb\rpm package
7.14.3 as the latest in 7.* release as deb\rpm package
First make sure you minimize any customisations you have in /etc/gitlab/gitlab.rb as those parameters change a lot across versions, and require manual reconfiguration.
Then you can try:
upgrade to 7.14.3
then to 8.0.0
then to the last in 8.*
then to 9.0.0
etc
III.
Once you have a stable recent version of GitLab server:
GitLab publishes new Major release yearly, and every Major.Minor release monthly (22nd day of the month), see maintenance policy, I really recommend upgrading every month
wait for a couple of weeks though, as they often release patches for bugs quickly found by other people
review release notes
read upgrade documentation
don't forget to backup
upgrade

Node.js versioning : difference between v4+ and v0.12.X

What's the difference between Node.js version >= 4.0.0 and versions 0.1.X to 0.12.X ?
On this page https://nodejs.org/en/download/releases/, I understand that Node.js v4+ is a fusion between old Node.js and io.js. But v0.12.9 has been released on 2015-12-03, few months after v4.0.0 (2015-09-08).
So, are the 3 branches still active ? What's the difference between them ?
Nodejs 4.x is the converged version of Node 0.12.x and io.js 3.x. io.js was originally developed due to the conflict between Joyent and Nodejs team. Version 1.x was released in Jan 2015. You can see this changelog for the complete list of Nodejs releases.
Node.js team described when they announced this feature is that 2 different types of node.js versions will meet your node.js needs.
LTS (Long Term Support, currently v.4.2.4) will have support and maintenance for at least 18 months. After 18 months have passed, it will transition into Maintenance mode which may last 12 months. So Long Term Support (often referred to as LTS) guarantees application developers a 30 month support cycle with specific versions of Node.js.
Stable (currently v5.4.1) - will have support for approximately 8 months, with features/updates released more often. Node.js v6 will eventually turn into a new LTS version that will have a similar support timeline to v4. In this way, we will have a new Stable version of Node.js every 6 months with every second one of these turning into an LTS line.
Node.js v0.10 and v0.12 are special cases in the LTS plan. v0.10 will go directly into maintenance in October, lasting for 12 months. v0.12 will have an initial LTS period of 6 months starting from October, followed by the requisite 12 months maintenance. io.js releases will not have official LTS or maintenance support.
Source:
https://nodejs.org/en/blog/release/v5.0.0/
https://nodejs.org/en/blog/community/node-v5/
https://medium.com/#nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd#.48y0ywbsp
https://github.com/nodejs/node/blob/master/COLLABORATOR_GUIDE.md

Which version of Node.JS should I use?

The Node.JS website says the current version is 0.10.26, but the git repo has much newer versions going up to 0.11.12.
Is there something wrong with the later versions, are they unstable?
Why does the website say 0.10.26 is the current version?
From the Node.js wiki:
Odd versions are unstable, even versions are stable. v0.2 and v0.4 are even/stable. v0.3 and v0.5 are odd/unstable. The current stable series is v0.10.x. The next stable series will be v0.12.x. The stable branch takes bug fixes only - it does not change the JavaScript API, addon API, nor ABI (you don't have to rebuild modules after upgrading node with-in a stable branch).
You should use stable versions for production. The web site displays prominently and gives links to download the latest stable verson.
However, if you are trying to stay ahead of the curve and prepare for the next and yet unreleased stable version, then testing against an unstable version makes sense. This is why the unstable versions are also available to developers.

Major upgrade vs Minor upgrade version Numbers

We have an application, in which we have series of releases. The current version of the application in production was V2.1
Now we have a set of new UI Screens to be added and related changes to the application. We are planning to release these changes as V3.0.
Do we need to go with Major Upgrade or Minor Upgrade? If we go with Major Upgrade, do we need to reinstall the application? or change the version to 2.2 and go with Minor Upgrade?
Please suggest me some best way to go about with these installers.
Note: We are using Install Shield Premium for building the installer.
If the only changes you are making are to the UI of your installation wizard, there is no fundamental reason to prefer either a minor or a major upgrade over the other. Typically the choice is driven by the changes you are making to the application itself, or the files that comprise it.
A Minor Upgrade will support first-time installations, as well as provide what should be a shorter update for the upgrade experience. A Major Upgrade will uninstall what's currently there before installing the new version. Either can be done with either sets of version numbers - the difference depends primarily on whether you change your ProductCode.
See Patching and Upgrades for details. Some people prefer creating Major Upgrades because they are easier to reason about.

Resources