Page MenuHomePhabricator

Production buster-nodejs10-devel image has npm 5.x, which is not actually compatible with node 10.x
Closed, ResolvedPublic

Description

… whereas (stretch-based) nodejs10-devel has npm 6.9 (as it doesn't rely on Debian's package for it).

We've had to regress one of the Abstract Wikipedia team services back to stretch to resolve the node vs. npm conflict.

Event Timeline

Is npm 5.x flat out incompatible with node10, or is it more subtle than that? Wondering how all these services work properly... https://codesearch.wmcloud.org/search/?q=buster-nodejs10-devel&i=nope&files=&excludeFiles=&repos=

Anyways, backporting a newer npm from actual Debian is probably impossible. We can either use our integration/npm Git repo, or need a different npm package like from nodesource.

Is npm 5.x flat out incompatible with node10, or is it more subtle than that?

I doubt that, Buster has npm 5.8 and nodejs 10 :-)

I think we should offer a consistent npm version in all node10 images.

So: on -devel images, we should use the packages from nodesource. On -slim images we should prefer what's coming from debian instead I think.

Is npm 5.x flat out incompatible with node10, or is it more subtle than that?

Yes, it's such an old version of npm it doesn't know that node 10 exists, hence on every run using that image we get:

npm WARN npm npm does not support Node.js v10.21.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/

In most cases this doesn't matter, but it bit us badly and will no doubt break others from time to time.

Wondering how all these services work properly... https://codesearch.wmcloud.org/search/?q=buster-nodejs10-devel&i=nope&files=&excludeFiles=&repos=

They possibly don't, but not enough that we have noticed.

Is npm 5.x flat out incompatible with node10, or is it more subtle than that?

I doubt that, Buster has npm 5.8 and nodejs 10 :-)

Yes, Debian's node support is the problem.

I think we should offer a consistent npm version in all node10 images.

So: on -devel images, we should use the packages from nodesource.

WFM.

On -slim images we should prefer what's coming from debian instead I think.

We don't provide npm on slim images, I thought?

Jdforrester-WMF claimed this task.

So this is effectively Resolved via T284346: Provide a node 12 production image (based on bullseye?), which is a reasonable migration pathway for teams.