Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Gij, node-js and you

23 views
Skip to first unread message

Aus Lacroix

unread,
Nov 11, 2015, 7:15:37 PM11/11/15
to dev-fxos
Hi All,

As many of you may know, we've been stuck on node 0.12 for quite a long time.

Many efforts have gone in to update _the world_ to run node 4.2.2 (LTS).

See bug https://bugzilla.mozilla.org/show_bug.cgi?id=1223661 if you're extra curious about what was updated.

*We will be attempting to land this as soon as the reviews are completed.*

*I'll let this list know when it's landed*, but, in short, if no tests run, you probably need to update your version of node and make really-clean. :)

nvm (https://github.com/creationix/nvm) provides an interesting toolbox to deal with multiple versions of node installed locally. I suggest you use it if you need more than one version present on your system at a time.

Garent Aye also wrote something called envy that can help manager multiple node versions.

I *highly* recommend dealing with this upgrade sooner rather than later. :)

word,
--aus

Fred Lin

unread,
Nov 11, 2015, 8:52:52 PM11/11/15
to Aus Lacroix, dev-fxos
Thanks Aus, great news!

It's important that we do provide modern tools for developers to boost the productivity.


--
Fred

_______________________________________________
dev-fxos mailing list
dev-...@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-fxos


Aus Lacroix

unread,
Nov 20, 2015, 8:23:40 PM11/20/15
to dev-fxos
Hi All,

This is happening today. Right after the timestamp on this message. If you're reading it after the timestamp, you will need to update your local node install to 4.2.2 (LTS). Or give NVM a shot.

Here's where to get it -- https://nodejs.org/en/download/

For you package manager users out there -- https://nodejs.org/en/download/package-manager/

After updating you *MUST* |make really-clean|. I would also suggest running |npm cache clear|.

Please

word,
--aus

Eli Perelman

unread,
Nov 20, 2015, 8:29:18 PM11/20/15
to Aus Lacroix, dev-fxos
Awesome! Thanks for your hard work on this Aus, it's really appreciated. Do you know if using Node 5 locally has any side effects?

Eli Perelman

Aus Lacroix

unread,
Nov 20, 2015, 8:45:06 PM11/20/15
to Eli Perelman, dev-fxos
To my knowledge it works fine, but, obviously, the more v5 develops the more the delta between it and v4, and the less likely it will work. We'll be tracking the current LTS version, as best we can.

I'm hoping to regularly update our base version we use every 2 to 3 months.

word,
--aus

Eli Perelman

unread,
Nov 20, 2015, 10:34:50 PM11/20/15
to Aus Lacroix, dev-fxos
Good to know. From what I understand, the next LTS with Node 6 won't happen for at least another 8 months. Also 5.x should be stable in the sense that it won't be getting breaking V8 changes, that will come with 6.x. All that to say, I think LTS and 5.x should be relatively pain-free upgrades for the next few months. 

Eli

Aus Lacroix

unread,
Nov 20, 2015, 10:47:00 PM11/20/15
to Eli Perelman, dev-fxos
I'm certainly looking forward to that because this last one was a royal PITA. :)

Julien Wajsberg

unread,
Nov 21, 2015, 9:01:31 AM11/21/15
to dev-...@lists.mozilla.org
hey aus,

do you intend to uplift these no-application-code changes to at least v2.5 ? So that it's easier to switch between branches ?

Thx for your work :)


Le 21/11/2015 02:23, Aus Lacroix a écrit :
Hi All,

This is happening today. Right after the timestamp on this message. If you're reading it after the timestamp, you will need to update your local node install to 4.2.2 (LTS). Or give NVM a shot.

Here's where to get it -- https://nodejs.org/en/download/

For you package manager users out there -- https://nodejs.org/en/download/package-manager/

After updating you *MUST* |make really-clean|. I would also suggest running |npm cache clear|.

Please

word,
--aus


On Wed, Nov 11, 2015 at 4:15 PM, Aus Lacroix <a...@mozilla.com> wrote:
Hi All,

As many of you may know, we've been stuck on node 0.12 for quite a long time.

Many efforts have gone in to update _the world_ to run node 4.2.2 (LTS).

See bug https://bugzilla.mozilla.org/show_bug.cgi?id=1223661 if you're extra curious about what was updated.

*We will be attempting to land this as soon as the reviews are completed.*

*I'll let this list know when it's landed*, but, in short, if no tests run, you probably need to update your version of node and make really-clean. :)

nvm (https://github.com/creationix/nvm) provides an interesting toolbox to deal with multiple versions of node installed locally. I suggest you use it if you need more than one version present on your system at a time.

Garent Aye also wrote something called envy that can help manager multiple node versions.

I *highly* recommend dealing with this upgrade sooner rather than later. :)

word,
--aus



signature.asc

Gareth Aye

unread,
Nov 23, 2015, 1:50:07 PM11/23/15
to Julien Wajsberg, dev-fxos
We should get rid of the "Please use v0.10 of nodejs or it may cause unexpected error." message also!

Hubert Figuière

unread,
Nov 23, 2015, 1:54:13 PM11/23/15
to dev-fxos
On 23/11/15 01:50 PM, Gareth Aye wrote:
> We should get rid of the "Please use v0.10 of nodejs or it may cause
> unexpected error." message also!

I updated the MDN page this morning for integration tests.

If someone wants to double check.

And I filed
https://bugzilla.mozilla.org/show_bug.cgi?id=1227184

Because the error I was getting was all too confusing this morning.

Hub

David Flanagan

unread,
Nov 23, 2015, 2:06:42 PM11/23/15
to Hubert Figuière, dev-fxos
Could someone please clarify whether this node upgrade is just for running gij tests? Or is it also for the gaia build system, raptor tests and everything else?

Is there any definitive list of what versions of Node we have to have installed for which workflows?

  David

Eli Perelman

unread,
Nov 23, 2015, 2:13:03 PM11/23/15
to David Flanagan, dev-fxos, Hubert Figuière
I believe at the moment it is for gij and the Gaia build system. Raptor was blocked on being able to upgrade to Node 4+ until this change had been made, so Raptor is still behind on making this change. I'll see about getting that updated today.

Eli Perelman

Eli Perelman

unread,
Nov 23, 2015, 2:31:08 PM11/23/15
to David Flanagan, dev-fxos, Hubert Figuière
Well, that wasn't so bad. I've released Raptor v4.0.0 which supports Node 4 and 5. Please stay on the 3.x line if you still need to stay on Node 0.12 for whatever reason.

Thanks!

Eli Perelman

Martijn

unread,
Nov 24, 2015, 11:29:06 AM11/24/15
to Aus Lacroix, dev-fxos
On Sat, Nov 21, 2015 at 2:23 AM, Aus Lacroix <a...@mozilla.com> wrote:
Hi All,

This is happening today. Right after the timestamp on this message. If you're reading it after the timestamp, you will need to update your local node install to 4.2.2 (LTS). Or give NVM a shot.

Here's where to get it -- https://nodejs.org/en/download/

For you package manager users out there -- https://nodejs.org/en/download/package-manager/

After updating you *MUST* |make really-clean|. I would also suggest running |npm cache clear|.


Ok, I did:
brew install homebrew/versions/node4-lts
make really-clean
npm cache clear

Then I tried to run one of the tests:
TEST_FILES=./apps/system/test/marionette/app_window_mananger_pinned_sites_test.js make test-integration

I got this error:
  0 passing (1m)
  2 failing

  1) AppWindowManager - Pinning sites Pinning unscoped "before each" hook:
    
  Error: timeout exceeded!
      at Object.Client.waitForSync (/Users/mwargers/B2G/gaia_clean/node_modules/marionette-client/lib/marionette/client.js:760:16)
      at Object.Client.waitFor (/Users/mwargers/B2G/gaia_clean/node_modules/marionette-client/lib/marionette/client.js:726:60)
      at Object.MarionetteHelper.waitForElementToDisappear (/Users/mwargers/B2G/gaia_clean/node_modules/marionette-helper/index.js:192:17)
      at Object.openAndPinSite [as openAndPinSiteFromBrowser] (/Users/mwargers/B2G/gaia_clean/apps/system/test/marionette/lib/pinning_the_web.js:77:24)
      at pinAndKill (/Users/mwargers/B2G/gaia_clean/apps/system/test/marionette/app_window_mananger_pinned_sites_test.js:36:13)
      at Context.<anonymous> (/Users/mwargers/B2G/gaia_clean/apps/system/test/marionette/app_window_mananger_pinned_sites_test.js:74:7)
      at callFn (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runnable.js:250:21)
      at Hook.Runnable.run (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runnable.js:243:7)
      at next (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runner.js:258:10)
      at Immediate._onImmediate (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runner.js:275:5)
      at processImmediate [as _immediateCallback] (timers.js:383:17)

  2) AppWindowManager - Pinning sites Pinning scoped "before each" hook:
    
  Error: timeout exceeded!
      at Object.Client.waitForSync (/Users/mwargers/B2G/gaia_clean/node_modules/marionette-client/lib/marionette/client.js:760:16)
      at Object.Client.waitFor (/Users/mwargers/B2G/gaia_clean/node_modules/marionette-client/lib/marionette/client.js:726:60)
      at Object.MarionetteHelper.waitForElementToDisappear (/Users/mwargers/B2G/gaia_clean/node_modules/marionette-helper/index.js:192:17)
      at Object.openAndPinSite [as openAndPinSiteFromBrowser] (/Users/mwargers/B2G/gaia_clean/apps/system/test/marionette/lib/pinning_the_web.js:77:24)
      at pinAndKill (/Users/mwargers/B2G/gaia_clean/apps/system/test/marionette/app_window_mananger_pinned_sites_test.js:36:13)
      at Context.<anonymous> (/Users/mwargers/B2G/gaia_clean/apps/system/test/marionette/app_window_mananger_pinned_sites_test.js:167:7)
      at callFn (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runnable.js:250:21)
      at Hook.Runnable.run (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runnable.js:243:7)
      at next (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runner.js:258:10)
      at Immediate._onImmediate (/Users/mwargers/B2G/gaia_clean/node_modules/mocha/lib/runner.js:275:5)
      at processImmediate [as _immediateCallback] (timers.js:383:17)




npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/Cellar/node4-lts/4.2.2/bin/node" "/usr/local/bin/npm" "run" "marionette" "--" "--buildapp=desktop" "--reporter=spec"
npm ERR! node v4.2.2
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE
npm ERR! ga...@0.0.3 marionette: `gaia-marionette "--buildapp=desktop" "--reporter=spec"`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the ga...@0.0.3 marionette script 'gaia-marionette "--buildapp=desktop" "--reporter=spec"'.
npm ERR! This is most likely a problem with the gaia package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gaia-marionette "--buildapp=desktop" "--reporter=spec"
npm ERR! You can get their info via:
npm ERR!     npm owner ls gaia
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/mwargers/B2G/gaia_clean/npm-debug.log
make: *** [test-integration-test] Error 1

npm-debug.log shows this:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/Cellar/node4-lts/4.2.2/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'run',
1 verbose cli   'marionette',
1 verbose cli   '--',
1 verbose cli   '--buildapp=desktop',
1 verbose cli   '--reporter=spec' ]
2 info using n...@2.14.7
3 info using no...@v4.2.2
4 verbose run-script [ 'premarionette', 'marionette', 'postmarionette' ]
5 info premarionette ga...@0.0.3
6 info marionette ga...@0.0.3
7 verbose unsafe-perm in lifecycle true
8 info ga...@0.0.3 Failed to exec marionette script
9 verbose stack Error: ga...@0.0.3 marionette: `gaia-marionette "--buildapp=desktop" "--reporter=spec"`
9 verbose stack Exit status 2
9 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:214:16)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at EventEmitter.emit (events.js:172:7)
9 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at ChildProcess.emit (events.js:172:7)
9 verbose stack     at maybeClose (internal/child_process.js:818:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
10 verbose pkgid ga...@0.0.3
11 verbose cwd /Users/mwargers/B2G/gaia_clean
12 error Darwin 14.5.0
13 error argv "/usr/local/Cellar/node4-lts/4.2.2/bin/node" "/usr/local/bin/npm" "run" "marionette" "--" "--buildapp=desktop" "--reporter=spec"
14 error node v4.2.2
15 error npm  v2.14.7
16 error code ELIFECYCLE
17 error ga...@0.0.3 marionette: `gaia-marionette "--buildapp=desktop" "--reporter=spec"`
17 error Exit status 2
18 error Failed at the ga...@0.0.3 marionette script 'gaia-marionette "--buildapp=desktop" "--reporter=spec"'.
18 error This is most likely a problem with the gaia package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     gaia-marionette "--buildapp=desktop" "--reporter=spec"
18 error You can get their info via:
18 error     npm owner ls gaia
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]

What am I doing wrong?

Regards,
Martijn

 
Please

word,
--aus


On Wed, Nov 11, 2015 at 4:15 PM, Aus Lacroix <a...@mozilla.com> wrote:
Hi All,

As many of you may know, we've been stuck on node 0.12 for quite a long time.

Many efforts have gone in to update _the world_ to run node 4.2.2 (LTS).

See bug https://bugzilla.mozilla.org/show_bug.cgi?id=1223661 if you're extra curious about what was updated.

*We will be attempting to land this as soon as the reviews are completed.*

*I'll let this list know when it's landed*, but, in short, if no tests run, you probably need to update your version of node and make really-clean. :)

nvm (https://github.com/creationix/nvm) provides an interesting toolbox to deal with multiple versions of node installed locally. I suggest you use it if you need more than one version present on your system at a time.

Garent Aye also wrote something called envy that can help manager multiple node versions.

I *highly* recommend dealing with this upgrade sooner rather than later. :)

word,
--aus


Aus Lacroix

unread,
Nov 24, 2015, 11:54:39 AM11/24/15
to Martijn, dev-fxos
Hi Martijn,

Both of tests are known to be terribly intermittent and flaky, I would use different test files to see what happens. Or simply try and run all to see if it works.

cheers,
--aus

Martijn

unread,
Nov 24, 2015, 12:58:01 PM11/24/15
to Aus Lacroix, dev-fxos
On Tue, Nov 24, 2015 at 5:54 PM, Aus Lacroix <a...@mozilla.com> wrote:
Hi Martijn,

Both of tests are known to be terribly intermittent and flaky, I would use different test files to see what happens. Or simply try and run all to see if it works.

Oh, ok. But those are running on Treeherder, right?
I can't get this test to pass at all, I ran it like 5 times. I thought intermittent and flaky meant, that it would occasionally fail.
Is this because this test only runs on Linux? I'm running it from MacOSX10.10.5

Also, I wonder what it is doing while running this test, it seems to open a whole bunch of b2g apps or something and then after 20s of building and doing other things,  or so, the test is starting. Is it perhaps possible to start the tests directly withouth this building?
Btw, it the tests run in b2g desktop, right?

Regards,
Martijn

Aus Lacroix

unread,
Nov 24, 2015, 1:03:26 PM11/24/15
to Martijn, dev-fxos
On Tue, Nov 24, 2015 at 9:57 AM, Martijn <martijn...@gmail.com> wrote:
On Tue, Nov 24, 2015 at 5:54 PM, Aus Lacroix <a...@mozilla.com> wrote:
Hi Martijn,

Both of tests are known to be terribly intermittent and flaky, I would use different test files to see what happens. Or simply try and run all to see if it works.

Oh, ok. But those are running on Treeherder, right?
I can't get this test to pass at all, I ran it like 5 times. I thought intermittent and flaky meant, that it would occasionally fail.
Is this because this test only runs on Linux? I'm running it from MacOSX10.10.5

We use a retry scheme on Treeherder that right now enables this test to pass (although it certainly fails A LOT).
 

Also, I wonder what it is doing while running this test, it seems to open a whole bunch of b2g apps or something and then after 20s of building and doing other things,  or so, the test is starting. Is it perhaps possible to start the tests directly withouth this building?

Right now if you run |make test-integration| it will rebuild the profile. If you run make test-integration-test, it will go directly to running the tests. So, typically, unless I _KNOW_ I've made a code change that needs to go into an app that is in the profile, I only run |make test-integration| for the first run, then, I run |make test-integration-test|.
 
Btw, it the tests run in b2g desktop, right?

No, Gij now uses Mulet, so do all the other tests. This is true both locally, and on Taskcluster/Treeherder.

Julien Wajsberg

unread,
Nov 24, 2015, 1:04:16 PM11/24/15
to dev-...@lists.mozilla.org
Unit tests work with node v4 without a change

The build system mostly use xpcshell so it's not impacted.

I have node 4 and the included npm as default on my system and I have no issue with Gaia so far.


Le 23/11/2015 20:06, David Flanagan a écrit :
Could someone please clarify whether this node upgrade is just for running gij tests? Or is it also for the gaia build system, raptor tests and everything else?

Is there any definitive list of what versions of Node we have to have installed for which workflows?

  David
On Mon, Nov 23, 2015 at 10:54 AM, Hubert Figuière <h...@mozilla.com> wrote:
On 23/11/15 01:50 PM, Gareth Aye wrote:
> We should get rid of the "Please use v0.10 of nodejs or it may cause
> unexpected error." message also!

I updated the MDN page this morning for integration tests.

If someone wants to double check.

And I filed
  https://bugzilla.mozilla.org/show_bug.cgi?id=1227184

Because the error I was getting was all too confusing this morning.

Hub
_______________________________________________
dev-fxos mailing list
dev-...@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-fxos
signature.asc
0 new messages