Page MenuHomePhabricator

Wikibase CI failing due to Node.js v16 incompatibility
Open, Needs TriagePublic

Description

Our CI images were switched from Node.js v14 to v16 as part of T314470. This broke Wikibase CI (logs) due to an incompatibility of some build step dependencies with Node.js v16 in view/lib/wikibase-tainted-ref/. There seem to be two separate issues:

  • npm install is erroring due to some issue with the required version of the "node-sass" package or one of its dependencies. "node-sass" is deprecated anyway, and switching to the recommended dart sass package should be straightforward.
  • the presence of the fibers package makes the storybook build fail. This is awkward because fibers is a transitive dependency of @wdio/sync in Wikibase's root-level package.json for browser tests (which will likely continue to run in a Node.js v14 environment for the foreseeable future). Upgrading to a newer storybook version may or may not fix this.

Event Timeline

If you're looking for local aids to reproduce the issue, fresh-node comes with both fresh-node14 and fresh-node16 with run the exact same docker images that CI runs (and thus the same Debian, Node.js and npm etc). That should help with observing locally what something did before on node14 and iterating on having it pass node16.

Change 891259 had a related patch set uploaded (by Jakob; author: Jakob):

[mediawiki/extensions/Wikibase@master] Fix tainted-ref CI after Node v16 upgrade

https://gerrit.wikimedia.org/r/891259

Change 891259 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Fix tainted-ref CI after Node v16 upgrade

https://gerrit.wikimedia.org/r/891259

browser test suite that still runs in v14

Hey there, what test suite job is this? I thought I had migrated all of them?

Edit: Sorry! I totally forgot that Quibble has its own version of node. This should now be fixed.

Change 894074 had a related patch set uploaded (by WMDE-leszek; author: Jakob):

[mediawiki/extensions/Wikibase@REL1_39] Fix tainted-ref CI after Node v16 upgrade

https://gerrit.wikimedia.org/r/894074

Change 894074 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@REL1_39] Fix tainted-ref CI after Node v16 upgrade

https://gerrit.wikimedia.org/r/894074

  • the presence of the fibers package makes the storybook build fail. This is awkward because fibers is a transitive dependency of @wdio/sync in Wikibase's root-level package.json for browser tests (which will likely continue to run in a Node.js v14 environment for the foreseeable future). Upgrading to a newer storybook version may or may not fix this.

fibers does not work with NodeJS 16 and thus @wdio/sync must be removed. For the Selenium test there is T256626: Refactor WebdriverIO tests from sync to async mode.

@Jakob_WMDE Removing task assignee as this open task has been assigned for more than two years - See the email sent on 2025-05-22.
Please assign this task to yourself again if you still realistically [plan to] work on this task - it would be welcome!
If this task has been resolved in the meantime, or should not be worked on by anybody ("declined"), please update its task status via "Add Action… 🡒 Change Status".
Also see https://www.mediawiki.org/wiki/Bug_management/Assignee_cleanup for tips how to best manage your individual work in Phabricator. Thanks!