Page MenuHomePhabricator

wikibase@0.1.0 install:bridge fails with webpack dependency error
Closed, ResolvedPublicBUG REPORT

Description

We can't merge patches on Minerva due to an error with Wikibase in Selenium job.

12:18:45 > wikibase@0.1.0 install:bridge
12:18:45 > npm --prefix client/data-bridge ci
12:18:45 
12:18:45 npm WARN ERESOLVE overriding peer dependency
12:18:48 npm WARN While resolving: cache-loader@4.1.0
12:18:48 npm WARN Found: webpack@5.66.0
12:18:48 npm WARN node_modules/webpack
12:18:48 npm WARN   peer webpack@"^4.0.0 || ^5.0.0" from @soda/friendly-errors-webpack-plugin@1.8.1
12:18:48 npm WARN   node_modules/@soda/friendly-errors-webpack-plugin
12:18:48 npm WARN     @soda/friendly-errors-webpack-plugin@"^1.8.0" from @vue/cli-service@5.0.0-rc.2
12:18:48 npm WARN     node_modules/@vue/cli-service
12:18:48 npm WARN   51 more (@storybook/builder-webpack5, css-loader, ...)
12:18:48 npm WARN 
12:18:48 npm WARN Could not resolve dependency:
12:18:48 npm WARN peer webpack@"^4.0.0" from cache-loader@4.1.0
12:18:48 npm WARN node_modules/cache-loader
12:18:48 npm WARN   cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
12:18:48 npm WARN   node_modules/@vue/cli-plugin-typescript
12:18:48 npm WARN   1 more (@vue/cli-service)
12:18:48 npm WARN 
12:18:48 npm WARN Conflicting peer dependency: webpack@4.46.0
12:18:48 npm WARN node_modules/webpack
12:18:48 npm WARN   peer webpack@"^4.0.0" from cache-loader@4.1.0
12:18:48 npm WARN   node_modules/cache-loader
12:18:48 npm WARN     cache-loader@"^4.1.0" from @vue/cli-plugin-typescript@5.0.0-rc.2
12:18:48 npm WARN     node_modules/@vue/cli-plugin-typescript
12:18:48 npm WARN     1 more (@vue/cli-service)
12:18:48 npm WARN EBADENGINE Unsupported engine {
12:18:48 npm WARN EBADENGINE   package: '@wdio/sync@7.16.13',
12:18:48 npm WARN EBADENGINE   required: { node: '>=12.0.0 <16' },
12:18:48 npm WARN EBADENGINE   current: { node: 'v16.19.1', npm: '8.19.3' }
12:18:48 npm WARN EBADENGINE }
12:18:48 npm ERR! code ERESOLVE
12:18:49 npm ERR! ERESOLVE could not resolve
12:18:49 npm ERR! 
12:18:49 npm ERR! While resolving: @storybook/addon-docs@6.2.8
12:18:49 npm ERR! Found: @storybook/vue3@6.3.12
12:18:49 npm ERR! node_modules/@storybook/vue3
12:18:49 npm ERR!   dev @storybook/vue3@"^6.3.12" from the root project
12:18:49 npm ERR! 
12:18:49 npm ERR! Could not resolve dependency:
12:18:49 npm ERR! peerOptional @storybook/vue3@"6.2.8" from @storybook/addon-docs@6.2.8
12:18:49 npm ERR! node_modules/@storybook/addon-docs
12:18:49 npm ERR!   dev @storybook/addon-docs@"^6.2.8" from the root project
12:18:49 npm ERR! 
12:18:49 npm ERR! Conflicting peer dependency: @storybook/vue3@6.2.8
12:18:49 npm ERR! node_modules/@storybook/vue3
12:18:49 npm ERR!   peerOptional @storybook/vue3@"6.2.8" from @storybook/addon-docs@6.2.8
12:18:49 npm ERR!   node_modules/@storybook/addon-docs
12:18:49 npm ERR!     dev @storybook/addon-docs@"^6.2.8" from the root project
12:18:49 npm ERR! 
12:18:49 npm ERR! Fix the upstream dependency conflict, or retry
12:18:49 npm ERR! this command with --force, or --legacy-peer-deps
12:18:49 npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
12:18:49 npm ERR! 
12:18:49 npm ERR! See /cache/npm/eresolve-report.txt for a full report.
12:18:49 
12:18:49 npm ERR! A complete log of this run can be found in:
12:18:49 npm ERR!     /cache/npm/_logs/2023-09-05T19_18_46_182Z-debug-0.log
12:18:49 npm ERR! process terminated
12:18:49 npm ERR! signal SIGTERM
12:18:49 
12:18:49 npm ERR! A complete log of this run can be found in:
12:18:49 npm ERR!     /cache/npm/_logs/2023-09-05T19_18_46_330Z-debug-0.log
12:18:49 npm WARN deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
12:18:50 npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
12:18:51 npm WARN deprecated superagent@6.1.0: Please upgrade to v7.0.2+ of superagent.  We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing.  See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.
12:18:52 npm ERR! process terminated
12:18:56 npm ERR! signal SIGTERM
12:18:56 
12:18:56 npm ERR! A complete log of this run can be found in:
12:18:56 npm ERR!     /cache/npm/_logs/2023-09-05T19_18_46_214Z-debug-0.log
12:18:56 ERROR: "install:tainted-ref" exited with 1.
12:18:56 npm ERR! code 1
12:18:56 npm ERR! path /workspace/src/extensions/Wikibase
12:18:56 npm ERR! command failed
12:18:56 npm ERR! command sh -c -- npm-run-all -p install:*
12:18:56 
12:18:56 npm ERR! A complete log of this run can be found in:
12:18:56 npm ERR!     /cache/npm/_logs/2023-09-05T19_18_37_290Z-debug-0.log
12:18:56 INFO:quibble.commands:<<< Finish: Browser tests: mediawiki/skins/MinervaNeue, mediawiki/core, mediawiki/extensions/AbuseFilter, mediawiki/extensions/AntiSpoof, mediawiki/extensions/Babel, mediawiki/extensions/BetaFeatures, mediawiki/extensions/CheckUser, mediawiki/extensions/CirrusSearch, mediawiki/extensions/Cite, mediawiki/extensions/CiteThisPage, mediawiki/extensions/CodeEditor, mediawiki/extensions/ConfirmEdit, mediawiki/extensions/ContentTranslation, mediawiki/extensions/Disambiguator, mediawiki/extensions/Echo, mediawiki/extensions/Elastica, mediawiki/extensions/EventBus, mediawiki/extensions/EventLogging, mediawiki/extensions/EventStreamConfig, mediawiki/extensions/FileImporter, mediawiki/extensions/Gadgets, mediawiki/extensions/GeoData, mediawiki/extensions/GlobalCssJs, mediawiki/extensions/GlobalPreferences, mediawiki/extensions/Graph, mediawiki/extensions/GrowthExperiments, mediawiki/extensions/GuidedTour, mediawiki/extensions/ImageMap, mediawiki/extensions/InputBox, mediawiki/extensions/Interwiki, mediawiki/extensions/JsonConfig, mediawiki/extensions/Kartographer, mediawiki/extensions/Math, mediawiki/extensions/MobileApp, mediawiki/extensions/MobileFrontend, mediawiki/extensions/NavigationTiming, mediawiki/extensions/PageImages, mediawiki/extensions/PageTriage, mediawiki/extensions/PageViewInfo, mediawiki/extensions/ParserFunctions, mediawiki/extensions/PdfHandler, mediawiki/extensions/Poem, mediawiki/extensions/ProofreadPage, mediawiki/extensions/SandboxLink, mediawiki/extensions/Scribunto, mediawiki/extensions/SiteMatrix, mediawiki/extensions/SpamBlacklist, mediawiki/extensions/TemplateData, mediawiki/extensions/Thanks, mediawiki/extensions/TimedMediaHandler, mediawiki/extensions/Translate, mediawiki/extensions/UniversalLanguageSelector, mediawiki/extensions/VisualEditor, mediawiki/extensions/WikiEditor, mediawiki/extensions/WikiLove, mediawiki/extensions/Wikibase, mediawiki/extensions/WikibaseCirrusSearch, mediawiki/extensions/WikibaseMediaInfo, mediawiki/extensions/WikimediaMessages, mediawiki/extensions/cldr, mediawiki/skins/Vector, mediawiki/vendor, in 381.450 s
12:18:56 DEBUG:quibble.cmd:No quibble.yaml in /workspace/src/skins/MinervaNeue
12:18:56 INFO:backend.ChromeWebDriver:Terminating ChromeWebDriver
12:18:56 INFO:backend.Xvfb:Terminating Xvfb
12:18:56 INFO:backend.MySQL:Terminating MySQL
12:18:56 Traceback (most recent call last):
12:18:58   File "/usr/local/bin/quibble", line 10, in <module>
12:18:58     sys.exit(main())
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/cmd.py", line 876, in main
12:18:58     dry_run=args.dry_run,
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/cmd.py", line 546, in execute
12:18:58     raise called_process_error
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/cmd.py", line 537, in execute
12:18:58     quibble.commands.execute_command(command)
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 29, in execute_command
12:18:58     command.execute()
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 935, in execute
12:18:58     self._run_webdriver(project_dir)
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 955, in _run_webdriver
12:18:58     _npm_install(project_dir)
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 76, in _npm_install
12:18:58     run([quibble.get_npm_command(), cmd], cwd=project_dir)
12:18:58   File "/usr/local/lib/python3.7/dist-packages/quibble/commands.py", line 67, in run
12:18:58     output=collected_output.decode('utf-8', errors='backslashreplace'),
12:18:58 subprocess.CalledProcessError: Command '['npm', 'ci']' returned non-zero exit status 1.
12:18:58 Build step 'Execute shell' marked build as failure
12:18:58 [PostBuildScript] - [INFO] Executing post build scripts.
12:18:58 [wmf-quibble-selenium-php74-docker] $ /bin/bash /tmp/jenkins5353324659084765650.sh
12:18:58 + set -o pipefail
12:18:58 ++ pwd
12:18:58 + exec docker run --entrypoint=/bin/rm --volume /srv/jenkins/workspace/wmf-quibble-selenium-php74-docker/log:/log --security-opt seccomp=unconfined --init --rm --label jenkins.job=wmf-quibble-selenium-php74-docker --label jenkins.build=56860 --env-file /dev/fd/63 docker-registry.wikimedia.org/buster:latest -fR /log/rawSeleniumVideoGrabs
12:18:58 ++ /usr/bin/env
12:18:58 ++ egrep -v '^(HOME|SHELL|PATH|LOGNAME|MAIL)='
12:18:58 [PostBuildScript] - [INFO] Executing post build scripts.
12:18:59 [wmf-quibble-selenium-php74-docker] $ /bin/bash -xe /tmp/jenkins15812961884352853282.sh
12:18:59 + find log/ -name 'mw-debug-*.log' -exec gzip '{}' +

Event Timeline

Jdlrobson triaged this task as Unbreak Now! priority.Sep 5 2023, 8:13 PM
Jdlrobson added a project: Wikidata Analytics.

Apparently Wikibase, as well as WikibaseLexeme, are still using @wdio/sync, which is not compatible with Node 16.

https://codesearch.wmcloud.org/deployed/?q=%40wdio%2Fsync

…and this is filed as T293080, so I guess we overlooked that when upgrading.

The switch from node14 to node16 was four weeks ago, with https://gerrit.wikimedia.org/r/c/integration/config/+/946960

The change today was from node16+npm7 (pinned) to node16+npm8 (upstream alignment), with https://gerrit.wikimedia.org/r/c/integration/config/+/954332

I can temporarily revert quibble jobs to old ones whilst Wikibase's code is fixed, but this is odd. Presumably it was still using the built-under-npm7 package-lock and so not triggering the error?

Change 954991 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Temporarily hold back wmf-quibble jobs to npm7 not npm8 for Wikibase

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

Change 954991 merged by jenkins-bot:

[integration/config@master] jjb: Temporarily hold back wmf-quibble jobs to npm7 not npm8 for Wikibase

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

wmf-quibble jobs are now back to node16+npm7 so the previous behaviour should be restored for repos that aren't Wikibase themselves.

Change 954993 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/Wikibase@master] data-bridge: Drop unused @wdio/sync dependency, breaks CI

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

Change 954994 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikibaseLexeme@master] Drop unused @wdio/sync dependency, breaks CI

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

Jdforrester-WMF lowered the priority of this task from Unbreak Now! to Medium.Sep 5 2023, 9:07 PM

@Jdforrester-WMF It seems that the tests in MathSearch (which is not Wikibase, but depends on it) still fail, cf. https://gerrit.wikimedia.org/r/c/mediawiki/extensions/MathSearch/+/955002

Lucas_Werkmeister_WMDE raised the priority of this task from Medium to Unbreak Now!.Sep 6 2023, 9:16 AM

AFAICT this is still breaking Wikibase and other extensions (example in MathSearch), so bumping back to UBN. (Though I don’t understand why it’s broken yet.)

Change 955301 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/Wikibase@master] DNM: empty change to test CI

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

Change 955304 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/Wikibase@master] Drop storybook from Wikidata Bridge

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

Change 955305 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/Wikibase@master] Stop running data-bridge and tainted-ref npm scripts

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

(By the way, wdio sync is a red herring as far as I can tell, it only seems to produce a warning. The real errors are related to other packages, such as eslint stuff.)

Change 955310 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/Wikibase@master] Reenable data-bridge npm scripts

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

Change 955305 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Stop running data-bridge and tainted-ref npm scripts

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

Lucas_Werkmeister_WMDE lowered the priority of this task from Unbreak Now! to High.Sep 6 2023, 10:54 AM

Change 955305 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Stop running data-bridge and tainted-ref npm scripts

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

Lowering priority as this change should have fixed CI; we still need to work on reenabling the scripts, though (and are working on it).

Change 955301 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/Wikibase@master] DNM: empty change to test CI

Reason:

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

Change 955310 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Reenable data-bridge npm scripts

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

Change 955314 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/Wikibase@master] Reenable tainted ref installation and tests

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

Change 955306 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/Wikibase@master] Fix tainted references dependency conflicts

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

Change 955302 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/Wikibase@master] Drop Storybook from tainted references

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

Change 955302 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Drop Storybook from tainted references

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

Change 955306 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Fix tainted references dependency conflicts

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

Change 954993 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] data-bridge: Drop @wdio/sync dependency, breaks CI

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

Change 955337 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[integration/docroot@master] Drop Wikibase Data-Bridge and Tainted-Ref storybook

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

Change 955304 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Drop storybook from Wikidata Bridge

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

Change 954994 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] Drop @wdio/sync dependency

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

Change 955314 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Reenable tainted ref installation and tests

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

Change 954991 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Temporarily hold back wmf-quibble jobs to npm7 not npm8 for Wikibase

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

I think from the Wikibase side we should hopefully be done here; we can probably try reverting this now?

Change 955337 merged by jenkins-bot:

[integration/docroot@master] Drop Wikibase Data-Bridge and Tainted-Ref storybook

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

Change 955053 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Move wmf-quibble jobs from npm7 to npm8 again

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

Change 955053 merged by jenkins-bot:

[integration/config@master] jjb: Move wmf-quibble jobs from npm7 to npm8 again

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