Once it has merged to mozilla-central, the following will be true:
Default builds will build with NodeJS 12, with the exception of “base-toolchain” builds, which will continue to build with NodeJS 10 for now.Things should continue to Just Work for most developers, as configure will still be allowing NodeJS 10 for a little while.
Developers are encouraged to run `mach bootstrap` after updating their source to install NodeJS 12.Building with NodeJS 12 should Just Work for most developers. If you do have a problem, read on…
If you have any questions, concerns or issues, feel free to ask here, in #NodeJS on Slack, or in #build on Element.https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20Build%20System&component=Toolchains is where bugs can be filed, and that’s also a fine choice.
More Details For Those Who Are Interested:
configure will still be allowing builds with Node 10 for a bit, ideally through the 91 nightly cycle. That said, since major npm packages that we need to keep relatively current on (eg eslint) are already starting to drop support for Node 10, it’s hard to imagine Node 10 support remaining feasible for too long.
Maintainers
of Firefox for OS distributions (e.g. Linux) are encouraged to migrate
to Node 12 as soon as is reasonably possible, given that it’s unclear
how long Node 10 support can really last.
https://bugzilla.mozilla.org/show_bug.cgi?id=1690377 is where the work happened.
What if I _do_ run into build breakage when I switch to Node 12?
One possible cause is this: a small number of developers (you probably already all know who you are) both:
Develop/maintain code that has its own node_modules sub-directory
(ie not the top-level node_modules in mozilla-central)
Have platform-native-binaries in that local node_modules
(like browser/components/newtab/node_modules does)
In that case, you may need to remove that local `node_modules`, and re-execute `mach npm install` to force the binaries to be recompiled for Node 12, like so:
rm -fr browser/components/newtab/node_modules
mach npm install --prefix=browser/components/newtab
If you have any questions, concerns or issues, feel free to ask here, in #NodeJS on Slack, or in #build on Element.
https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20Build%20System&component=Toolchains is where bugs can be filed, and that’s also a fine choice.
Dan