Page MenuHomePhabricator

Refactor WebdriverIO tests from sync to async mode
Open, Needs TriagePublic

Description

Status

βœ… done 32/33 (97%)
πŸ”¨ in progress 1/33 (3%)
πŸ”œ not started 0/33 (0%)

Description

MediaWiki Core, it's extensions and skins use WebdriverIO to drive our Selenium testing framework. All tests are written using WebdriverIO sync mode. The sync mode will be deprecated in Node.js v16. We need to move tests in MediaWiki Core, it's extensions and skins from WebdriverIO sync to async mode.

TODO

Optional

Repositories

RepositorySuitesTestsTaskStatus
mediawiki/core513T293071βœ…
mediawiki/extensions/AbuseFilter324T300790βœ…
mediawiki/extensions/AdvancedSearch541T300791βœ…
mediawiki/extensions/CampaignEventsβœ…
mediawiki/extensions/CentralNotice11T300212βœ…
mediawiki/extensions/CheckUser22T321904βœ…
mediawiki/extensions/CirrusSearch13T300793βœ…
mediawiki/extensions/Cite16T300196βœ…
mediawiki/extensions/CodeMirror35T300205βœ…
mediawiki/extensions/ContactPage11T334094βœ…
mediawiki/extensions/Echo25T293073βœ…
mediawiki/extensions/ElectronPdfService11T299684βœ…
mediawiki/extensions/FileImporter21T300535βœ…
mediawiki/extensions/GlobalWatchlist12T293074βœ…
mediawiki/extensions/GrowthExperiments27T299102βœ…
mediawiki/extensions/Math11T293076βœ…
mediawiki/extensions/Newsletter11T293078βœ…
mediawiki/extensions/PageTriageβœ…
mediawiki/extensions/Popups27T293072βœ…
mediawiki/extensions/ProofreadPage11T293079βœ…
mediawiki/extensions/RelatedArticles10T300797βœ…
mediawiki/extensions/RevisionSlider822T300798βœ…
mediawiki/extensions/TemplateWizard13T300208βœ…
mediawiki/extensions/TwoColConflict746T300800βœ…
mediawiki/extensions/VisualEditor11T299756βœ…
mediawiki/extensions/Wikibase1637T293080 T343886πŸ”¨
mediawiki/extensions/WikibaseLexeme1648T293081βœ…
mediawiki/extensions/WikiLambda12T293082βœ…
mediawiki/extensions/Wikistoriesβœ…
mediawiki/skins/MinervaNeue1014T293084βœ…
wikibase/termbox425T300807βœ…
wikidata/query/gui10T300808βœ…
wmde/wdio-wikibase00T300811βœ…

(Number of tests estimated with ack --count --files-with-matches ' it\('. See P17460.)

Notes

Related Objects

StatusSubtypeAssignedTask
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
StalledNone
ResolvedNone
OpenNone
OpenNone
DeclinedNone
Resolvedzeljkofilipin
ResolvedOsamaahmed17
ResolvedNone
ResolvedNone
DuplicateBUG REPORTzeljkofilipin
ResolvedOsamaahmed17
Resolvedzeljkofilipin
ResolvedNone
ResolvedNone
ResolvedKrinkle
OpenNone
ResolvedOllie.Shotton_WMDE
ResolvedJakob_WMDE
DeclinedNone
OpenNone
ResolvedOsamaahmed17
Resolvedvaughnwalters
Resolvedzeljkofilipin
Resolvedzeljkofilipin
Resolvedzeljkofilipin
Resolvedzeljkofilipin
Resolvedkostajh
ResolvedOsamaahmed17
ResolvedOsamaahmed17
ResolvedLucas_Werkmeister_WMDE
Resolvedpwangai
ResolvedWMDE-Fisch
ResolvedNone
ResolvedOsamaahmed17
ResolvedGehel
Resolvedpwangai
ResolvedNone
Invalidpwangai
ResolvedNone
InvalidNone
ResolvedOsamaahmed17
Resolvedvaughnwalters
Resolvedpwangai
ResolvedNone
InvalidNone
ResolvedOllie.Shotton_WMDE
Resolvedβ€’ Dreamy_Jazz
OpenNone
OpenNone
In Progresszeljkofilipin

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 941935 had a related patch set uploaded (by Krinkle; author: Krinkle):

[integration/config@master] zuul: Comment-out CirrusSearch and ProofreadPage from wmf_gate

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

Change 941935 abandoned by Krinkle:

[integration/config@master] zuul: Comment-out CirrusSearch and ProofreadPage from wmf_gate

Reason:

Doesn't work because CirrusSearch is also pulled into other repos that are in the case as dependency (e.g. WikibaseCirrusSearch) where the same tests would still be discovered and run on node16. I'll try to disable them in-repo instead.

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

Remaining, according to this Codeseach query:

  • ProofreadPage

Fixed in . If for some reason after Quibble upgrade this fails, I will update the patch to instead to temporarily rename selenium-test to @selenium-test in package.json, which makes CI skip the job (since it only runs the wdio tests in repos that have a script named exactly selenium-test).

  • CirrusSearch

This is already been disabled from WMF CI since 2019 (change 525647) and again this year (change 911347), so this shouldn't block. I did briefly try to upgrade Cirrus to async, but the amount of abstraction and utilities this project has made it infeasible for me to "quickly" upgrade this project as external contributor.

  • Wikibase
  • WikibaseLexeme

Similarly, I will attempt a 30-min timeboxed window to "just" upgrade these, and otherwise disable them through the above mechanism. Maintainers can then start a patch that removes the @ to re-enable them and iterate until it passes in their own time.


Beyond that, the task description does mention a few more repos, but afaik those run tests by means other than Quibble. While those are in need of migration just as well, those don't block my current work dependency chain:

  • Quibble CI moving from Node 14 to Node 16,
    • Node 16 upgrading from npm 7 to npm 8,
      • T331181: Adding Node 18 images,
        • T337647: Releasing Fresh with Node 18 support and npm 9 support.

Change 944967 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/Wikibase@master] tests: Temporarily disable automatic running of Wdio tests in CI

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

Change 944969 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/WikibaseLexeme@master] tests: Temporarily disable automatic running of Wdio tests in CI

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

Change 944967 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] tests: Temporarily disable automatic running of Wdio tests in CI

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

Change 944969 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] tests: Temporarily disable automatic running of Wdio tests in CI

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

Migrate out of sync mode in favor of async was to get rid of wdio-sync and fibers which is no more supported on NodeJS 16.

As part of T314470: Upgrade all CI jobs for WMF-deployed projects from Node 14 to Node 16, the Quibble jobs have been migrated from NodeJS 14 to 16 (the task is still open cause we have to migrate the other npm test jobs, but for Selenium that is done). Talking with James, looks like all tests got fixed and the few repositories left over (sub task of this task) had their tests disabled.

So essentially it is done with sub tasks being the long tail left over things to fix up / restore.

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

[mediawiki/extensions/Wikibase@REL1_40] tests: Temporarily disable automatic running of Wdio tests in CI

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

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

[mediawiki/extensions/WikibaseLexeme@REL1_40] tests: Temporarily disable automatic running of Wdio tests in CI

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

Change 989156 merged by Lucas Werkmeister (WMDE):

[mediawiki/extensions/WikibaseLexeme@REL1_40] tests: Temporarily disable automatic running of Wdio tests in CI

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

Change 989208 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/Wikibase@REL1_40] tests: Temporarily disable automatic running of Wdio tests in CI

Reason:

squashed into I34baed7374

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

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

[mediawiki/extensions/WikibaseLexeme@REL1_39] tests: Temporarily disable automatic running of Wdio tests in CI

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

Change 989884 merged by Lucas Werkmeister (WMDE):

[mediawiki/extensions/WikibaseLexeme@REL1_39] tests: Temporarily disable automatic running of Wdio tests in CI

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