Newer version of nodejs and npm needed?

I was trying to install a new instance of juniper.alpha1 today when I encountered and issue with
TASK [edxapp : gather static assets with paver]

Looking at the error message, I wasn’t sure what was going on but I suddenly had a hunch.

I recently tried the ecommerce version that runs with Python 3 in one of our Ironwood test instances and I had to install a more recent version of nodejs and npm following instructions from

ecommerce simply would not work with nodejs v4.2.6 and npm 3.5.2. After the update my versions were not at nodejs v8.16.2 and npm 6.4.1. Quite a quantic jump :slight_smile:

Until now, I had been testing juniper.alpha1 with a copy of that test server but today I was using a more recent copy of a production server which still had nodejs v4.2.6 and npm 3.5.2.

So, I decided to upgrade nodejs and npm to see if this would resolve my issue with
TASK [edxapp : gather static assets with paver]

First surprise when following the instructions from

================================================================================

                          DEPRECATION WARNING                            

Node.js 8.x LTS Carbon is no longer actively supported!

You will not receive security or critical stability updates for this version.

You should migrate to a supported version of Node.js as soon as possible.
Use the installation script that corresponds to the version of Node.js you
wish to install. e.g.

Please see https://github.com/nodejs/Release for details about which
version may be appropriate for you.

The NodeSource Node.js distributions repository contains
information both about supported versions of Node.js and supported Linux
distributions. To learn more about usage, see the repository:
https://github.com/nodesource/distributions

================================================================================

Well… It decided to install nodejs v12.14.1 and npm 6.13.4. OK, just another quantic jump :slight_smile:

The only thing left to do now was to check if I would be able to “gather static assets with paver”.

sudo -H -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/edx-platform
paver update_assets --settings=production

And it completed successfully.

I am therefore assuming that we might need to upgrade the versions of nodejs and nmp to be used with juniper.alpha1.

For the sake of completion, here is the error message I was getting before upgrading nodejs and npm:

It’s all in the 2nd line and it is extremely long.

It looks like nodejs 12 is installed by open-release/juniper.alpha1? We haven’t had any issues building assets in Juniper sandboxes.

Are you still having to use this workaround @sambapete?

@jill I think this was because my first crack at open-release/juniper.alpha1 was right around the time Node.js 8.x LTS Carbon was no longer actively supported. And since I had also tried the ecommerce version using Python 3 on an ironwood.master box just a few weeks before, the need to upgrade Node.js stuck in my mind.

I did not have a chance to reinstall open-release/juniper.alpha1 recently (busy on a few other things with the pandemic going on), so I don’t remember if I had to manually upgrade Node.js and npm the last time I tried. My installation notes (in French unfortunately for you) said I did, but that was in early February (Feb 02 to be precise).

I would therefore need to reinstall a new server based on our current production ironwood.master installation, but I was waiting for the next alpha or beta that would also include the Django 2.x upgrade.

Which makes me think about a potential issue / case. Are you installing your Juniper sandboxes from scratch (in the sense of a brand new Ubuntu server without any prior Open edX installation) or are you updating them from a previous Ironwood installation (in the sense that Ironwood was previously installed on the system)? It might cause a difference if Node.js was previously installed or not on the system. That is my hypothesis thus far.

Addendum: I went back to my Juniper box and it was installed on February 4th. I probably didn’t try again since. My previous hypothesis still stands.

Yes, we install our Juniper sandboxes from scratch with blank ubuntu VMs, and will be doing the same for our production deployments when it comes time to upgrade. Only the database servers (and elasticsearch, memcached, etc.) persist between our upgrades, the edxapp VMs are disposable.

So yep, this could be why we haven’t seen this issue.

Thanks for checking, and it makes total sense to wait for the next alpha or beta before trying it all again. Cheers!