Node.js 12.x by default
Summary
The latest release of Node.js to carry a 30-month lifecycle is the 12.x series. As with 10.x and 8.x before it, Fedora 31 will carry 12.x as the default Node.js interpreter for the system. The 10.x interpreter will remain available as a non-default module stream.
Owner
- Name: Stephen Gallagher
- Email: sgallagh@fedoraproject.org
- Responsible SIG: Node.js SIG
Current status
- Targeted release: Fedora 31
- Last updated: 2019-05-28
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Fedora 31 will ship with the latest LTS version of Node.js by default. This will either be the nodejs:12
module stream or else replicated to the non-modular repository, depending on the status of other release engineering work around supporting modular content in the non-modular buildroots. To end-users, the experience should be identical: dnf install nodejs
will give them nodejs-12.x
and the matching npm
package.
Benefit to Fedora
Node.js is a popular server-side JavaScript engine. Keeping Fedora on the latest release allows us to continue tracking the state-of-the-art in that space. For those whose applications do not yet work with the 12.x release, Fedora 31 will also have the 10.x release available as a selectable module stream.
Scope
- Proposal owners:
The packages are already built for Fedora 31 in a non-default module stream. On June 14th, 2019, the nodejs-12.x packages will become the default in Fedora 31 (either by making the 12.x module stream be the default stream or by rebuilding the packages as non-modular , depending on other factors).
If the non-modular buildroot work is finished and available by July 17th (a week before the mass-rebuild), Node.js 12.x will drop the non-modular packages and make the 12.x stream the default.
- Other developers:
Any developer with a package that depends on Node.js at run-time or build-time should test with the 12.x module stream enabled as soon as possible. Issues should be reported to nodejs@lists.fedoraproject.org
- Release engineering:
Release engineering and FESCo will need to approve the change to the default module stream.
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
As with previous releases, users running Fedora 29 or Fedora 30 with the non-modular nodejs-10.x packages will be automatically upgraded to the 12.x packages, which may cause issues. If users are running software known not to support Node.js 12.x yet, they can switch the system back to using 10.x with yum commands (to be documented in release notes).
How To Test
- Confirm that
yum install nodejs
results in Node.js 12.x being installed. - Confirm that upgrading from Fedora 29 or Fedora 30 with nodejs-10.x installed (non-modular) results in an upgrade to nodejs-12.x
- Confirm that upgrading from Fedora 29 or Fedora 30 with the
nodejs:10
module enabled does *not* result in an upgrade to 12.x and still hasnodejs:10
enabled on Fedora 31. - Confirm that upgrading from Fedora 29 or Fedora 30 with the
nodejs:12
module enabled upgrades successfully and still hasnodejs:12
enabled on Fedora 31.
User Experience
Users will have the 12.x release of Node.js available by default. See the "Upgrade/compatibility impact" section for specific details.
Dependencies
All packages prefixed with nodejs-
depend on this package. They will need to be updated or removed from Fedora 31 if they do not work with Node.js 12.x.
Contingency Plan
- Contingency mechanism:
Revert to Node.js 10.x as the default stream. This may require bumping epoch or making the nodejs:10
stream the default, depending on the status of the modules-in-non-modular-buildroot work at the time.
- Contingency deadline: August 5th, 2019
- Blocks release? No
- Blocks product? No
Documentation
- https://nodejs.org/dist/latest-v12.x/docs/api/
- https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V12.md
Release Notes
Fedora 31 now ships with Node.js 12.x as the default Node.js JavaScript server-side engine. If your applications are not yet ready for this newer version, you can revert to the 10.x series by running the following commands
dnf remove nodejs dnf module reset nodejs dnf module install nodejs:10