Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrading Node.js #5124

Closed
rgoomar opened this issue Sep 9, 2015 · 179 comments
Closed

Upgrading Node.js #5124

rgoomar opened this issue Sep 9, 2015 · 179 comments

Comments

@rgoomar
Copy link
Contributor

rgoomar commented Sep 9, 2015

_45 Upvotes_ So, Node.js now has a fully merged codebase between itself and io.js and they released 4.0 which is meant to be LTS.

Since that will be the continuing track for the future, it would probably be a good idea to upgrade to node v4. But, it will be a large task since there are a lot of changes between 10.40.0 and 4.0.0.

To me, it makes sense to upgrade especially since there are built-in ES2015 features and Meteor 1.2+ is all about ES2015

EDIT:
Breaking changes between 0.12 and 4.0 can be found here
Breaking changes between 0.10 and 4.0 can be found here

@emgee3
Copy link
Contributor

emgee3 commented Sep 9, 2015

Fibers' tests fail when run in Node 4.0, at least on my computer. I'm also running El Capitan, so there could be another issue going on.

EDIT: Did some additional testing and created an issue laverdet/node-fibers#242

@Cangit
Copy link
Contributor

Cangit commented Sep 9, 2015

Getting on the LTS builds of Node looks like a really good idea for Meteor. (18 months of patches and then a 12 month security and critical bug fix period for a total of 30 months support.)

Its worth mentioning the huge speed and memory gains of Node v4 over 0.10, achieved by a mix of V8 4.5 and improvements to the Node/io.js code base over the last year.

@web-jenezis
Copy link

Fibers' tests fail when run in Node 4.0, at least on my computer

I have the same problem. What the highest version of NodeJS we can use with Meteor? I guess 10.40.0?

@dfischer
Copy link

+1 this is very much needed and the longer it takes the more hurt it will be

@gitawego
Copy link

+1, in meteor world, we can not really benefit the Progress of nodejs :(
with the release of meteor 1.2, I hope they could support node 4.0.0. 'cause that would be much faster at server side with native es6 support.

@raix
Copy link
Contributor

raix commented Sep 14, 2015

+1

1 similar comment
@jaskinn
Copy link

jaskinn commented Sep 14, 2015

+1

@benjamn
Copy link
Contributor

benjamn commented Sep 15, 2015

I'm also really excited about this, but I'm curious if there are any particular new features that people are more excited about than others. Specific compelling motivations will really help us prioritize this work against other projects!

In my mind the biggest hurdles are getting Fibers to work (unknown difficulty) and getting NPM packages with binary dependencies to update to the latest V8 native embedding API.

@lfilho
Copy link

lfilho commented Sep 15, 2015

I'm particularly interested in the ES2015 features of Node 4, so I can develop ES2015 code without Babel.js and etc. Right now there seem not to have a good way of doing ES2015 + Meteor.js.

Thanks, @benjamn !

@tacone
Copy link
Contributor

tacone commented Sep 16, 2015

Using ES2015 does not seems to be a good reason, because on when coding on the client, or isomorphic, you're still stuck to babel.

The better reason I see is compatibility with NPM modules. If you look at that, you also have to consider possible incompatibilities, so I guess is a kind of trade-off. Since node is changing very fast, though, I'd suggest to not lag too much.

@seeekr
Copy link

seeekr commented Sep 17, 2015

@benjamn The real deal here is not and should not really be about features. Node is finally seeing proper updates to its core and is at long last catching up and staying up to date with v8 releases. No matter what those releases bring in features, if we want to follow good modern development and deployment/ops practices and also be a good citizen of the Node community there is no reason to stay behind. We all upgrade all the software that we use regularly, for many good reasons, and now is the time to start moving to Node 4.x and develop plans and systems to make Node upgrades easier and more seamless in the future.
The Node and v8 teams are doing excellent work and the Meteor community deserves to benefit from that regularly, now that that has actually become possible and workable.

@rgoomar
Copy link
Contributor Author

rgoomar commented Sep 18, 2015

@benjamn There are a lot of performance improvements and if we move to Node 4.x faster, it will allow for us to use the native functions rather than relying on a transpiler for certain functionality.

Also, if Meteor gets upgraded to Node 4x, it should gain more adoption because you can write a blog post about it ;) And if people are wanting to use the latest node and look for a platform or framework to use and they see Meteor is still at 0.10.x, it can make them stray away from it.

@rclai
Copy link

rclai commented Sep 18, 2015

@benjamn I was able to confirm that Fibers 1.0.7 still works in Node 4.1.0.

@raix
Copy link
Contributor

raix commented Sep 19, 2015

  1. security
  2. Stability (it contains alot of fixes from io.js)
  3. performance / es2015 native

(I'm concerned about fibers blocking node upgrading, might be a good idea to start thinking about async support within the next 12month, and get off fibers asap?)

Maybe call 1.2 "2.0" and get it over with (the missing jquery+tracker is breaking things anyways, following semver)

@nicolasparada
Copy link

ʕつ ͡◔ ᴥ ͡◔ʔつ

@benjamn
Copy link
Contributor

benjamn commented Sep 19, 2015

Just to prevent further speculation, fibers work perfectly well with Node 4.0 and will not be a barrier to upgrading.

@evenfrost
Copy link

Would love to see Meteor operating on top of Node.js 4+. It's a bit of a shame that the most advanced JS framework still depends on version of node outdated years ago.

@seeekr
Copy link

seeekr commented Sep 23, 2015

@evenfrost Just to clarify -- Node 0.10.x was not an outdated version of Node. It is still the version that most production deployments of Node run on and it has been and still is fully supported. Node 0.12.x took years to develop (or rather finish up because momentum of contributions and excitement about it had dried up) and its adoption has also been going slowly, from what I can tell, one reason certainly being that it still did not ship with an up to date version of v8.
And only very recently there has been a push towards a new, modern, fully up to date Node release -- led by the iojs team -- which only a few weeks ago produced its first fully Node-compatible release that will also be supported in the long term, Node 4.x LTS (currently at 4.0 or 4.0.1 today/tomorrow -- EDIT: correction, it's at 4.1 atm with 4.1.1 being released right now), with the LTS tag getting officially added in October.
So Meteor really did do the best job choosing the appropriate version of Node that was available up until this point. From here on out I'm fairly certain 4.x will be adopted reasonably quickly, maybe and desirably with 1.3 or even with an 1.2.x patch release.

@rgoomar
Copy link
Contributor Author

rgoomar commented Sep 23, 2015

Another document to add on to look at. @benjamn keep these changes in mind between v0.10 and v4:
https://github.com/nodejs/node/wiki/API-changes-between-v0.10-and-v4

@jperl
Copy link
Contributor

jperl commented Sep 29, 2015

👍

3 similar comments
@epaminond
Copy link

+1

@dalcib
Copy link

dalcib commented Oct 6, 2015

+1

@guilhermedecampo
Copy link

+1

@vamsivarikuti
Copy link

+1

Node v4.2.0 LTS is released https://nodejs.org/en/blog/release/v4.2.0/
More details on LTS Support https://nodesource.com/blog/essential-steps-long-term-support-for-nodejs

@aaronjudd
Copy link

+1

security, security, security. performance.

@GJean
Copy link

GJean commented Oct 20, 2015

+1

1 similar comment
@fredevery
Copy link

+1

@lukeadams
Copy link

Check out the PR's that Benjamn posted
v4
v5
v6

@benjamn
Copy link
Contributor

benjamn commented Apr 27, 2016

Yes, note that those PRs were posted between the previous two comments!

@merlinstardust
Copy link
Contributor

With 3 PRs, does that mean Meteor is getting support for each version of Node? Or is it whichever gets finished first gets support?

@laosb
Copy link
Contributor

laosb commented Apr 28, 2016

I guess, commits which apply to all node versions is pushed to repo immediately, and for now we have 3 version to choice?

@dandv
Copy link
Contributor

dandv commented Apr 29, 2016

Quick fyi for all interested -- node v6 is scheduled for release on Tue, April 26th

It happened, Node 6 is out!

@laosb
Copy link
Contributor

laosb commented Apr 29, 2016

What a long issue! Should we close this and open another one?

@livimonte
Copy link

livimonte commented Apr 29, 2016

Before closing, I think we should get a Meteor team feedback confirming the chosen version of the node to the next version of Meteor.

Roadmap

#6921 - PR in progress, Upgrade to Node 4

#6923 - PR in progress, Upgrade to Node 6

@seeekr
Copy link

seeekr commented Apr 29, 2016

Guys, relax. The difference between Node version 4, 5 and 6 are relatively minor, and so if Meteor can support one, it can and will support all others. Ben created PRs for every currently active and supported Node version, but the fundamental part of the work is about making Meteor work with any (recent, non-legacy) Node version, and from there basically everyone should be able to freely select whichever one fits their goals and intentions best (i.e. 4.x if you don't care for bleeding edge Node, 6.x if you do; 5.x is not going to stick around for very long as it's not an LTS version).

So come and check out and help with the PRs if you're interested and you can, but if not, just rest assured this is being worked on and prioritized appropriately and I'm pretty sure Ben (and/or others working on this) will keep everyone posted on any meaningful progress.

@zeroasterisk
Copy link

http://node.green/ <-- there are certainly some serious improvements as versions evolve... but the big one is moving from 0.10 >> 4+ Anything 4+ will make me happy.

@joncursi
Copy link

joncursi commented May 8, 2016

jsdom (https://github.com/tmpvar/jsdom) requires Node >= 4 and this has been a requirement as far back as 4.x. Eagerly awaiting this bump.

No jsdom = no enzyme (https://github.com/airbnb/enzyme) for testing React components.

@benjamn
Copy link
Contributor

benjamn commented May 8, 2016

jsdom might also be a (much) better solution for headless DOM testing than PhantomJS

benjamn added a commit that referenced this issue May 11, 2016
Together with c18c1f5, this commit is a
big step towards liberating Meteor from Node 0.10.

Part of #5124.
benjamn added a commit that referenced this issue May 16, 2016
Together with c18c1f5, this commit is a
big step towards liberating Meteor from Node 0.10.

Part of #5124.
benjamn added a commit that referenced this issue May 17, 2016
Together with c18c1f5, this commit is a
big step towards liberating Meteor from Node 0.10.

Part of #5124.
@cesarve77
Copy link

+1

1 similar comment
@doriansmiley
Copy link

+1

@benjamn
Copy link
Contributor

benjamn commented Jun 27, 2016

The next release of Meteor (1.4) will include Node 4. Please follow the latest developments here.

@meteor meteor locked and limited conversation to collaborators Jun 27, 2016
@mitar
Copy link
Contributor

mitar commented Aug 20, 2016

This has been released. Meteor 1.4 and newer has node.js 4 (TLS).

@mitar mitar closed this as completed Aug 20, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests