Page MenuHomePhabricator

Upgrade WebdriverIO to the latest version 7 for all repositories
Open, MediumPublic

Description

IMPORTANT: Make sure to read the GSoC participant instructions and communication guidelines thoroughly before commenting on this task. This space is for project-specific questions, so avoid asking questions about getting started, setting up Gerrit, etc. When in doubt, ask your question on Zulip first!

Status

1/29 repositories (3%)

Overview

MediaWiki is a free and open-source Wiki application. It powers a lot of websites including Wikipedia, Wiktionary, and Wikimedia commons.

Delivery of optimal quality software with unique and innovative features is always a priority. However, without evaluating software components under various expected and unexpected conditions, one cannot guarantee these aspects. Therefore, testing is performed to test every software component large and small. To increase the efficiency of the testing process and to maximize test coverage, automation is imperative. Automation not only improves the quality of testing but also makes it faster and reduces the cost involved.

We use WebdriverIO as a browser driver for our test automation framework. We are currently using version 6 (2 repositories still at v4). WebdriverIO v7 was released on February 9, 2021.
CodeSearch: v4, v6
Announcement: v5, v6, v7

The major goal for the Google Summer of Code 2021 internship is to migrate all repositories to v7. As a part of Google Summer of Code 2020 internship, WebdriverIO was migrated to v6 for almost all repositories. While migration was being carried out, we noticed a need to perform a cleanup and refactoring of the existing WebdriverIO code across all repositories. Some additional goals include:

  1. Introduce video recording in all selenium tests. See T253113: Record videos of all Selenium tests
  2. Sanitize Page Object imports across all repositories
  3. Work on extending the wdio.conf.js file so that the same file can be used/extended across all repositories
  4. T210726: Selenium framework cleanup

Resources

repositoryversiontask/commit
mediawiki/core6
mediawiki/extensions/AbuseFilter6
mediawiki/extensions/AdvancedSearch6
mediawiki/extensions/CirrusSearch4T257525
mediawiki/extensions/Cite6677577
mediawiki/extensions/CodeMirror6
mediawiki/extensions/Echo6678287
mediawiki/extensions/ElectronPdfService6
mediawiki/extensions/EntitySchema6
mediawiki/extensions/FileImporter7671557
mediawiki/extensions/GrowthExperiments6
mediawiki/extensions/Math6
mediawiki/extensions/MobileFrontend6
mediawiki/extensions/Newsletter6
mediawiki/extensions/Popups6
mediawiki/extensions/ProofreadPage6677648
mediawiki/extensions/RelatedArticles6
mediawiki/extensions/RevisionSlider6
mediawiki/extensions/TemplateWizard6
mediawiki/extensions/TwoColConflict6
mediawiki/extensions/Wikibase6
mediawiki/extensions/WikibaseLexeme6
mediawiki/extensions/WikibaseMediaInfo6
mediawiki/skins/MinervaNeue6
phabricator/deployment6
wikibase/termbox6
wikidata/query/gui6
wikimedia/portals/deploy4T255463
wmde/wdio-wikibase6

Skills:

Microtasks:

  1. Set up gerrit for Mediawiki
  2. Clone mediawiki/core
  3. Make a trivial change to tests/selenium/README.md in mediawiki/core and push the commit to Gerrit.
    • Add AlQaholic007 and Vidhi-Mody to Reviewers in Gerrit through the UI
    • Make topic of the patch to be T274579 so that Gerrit knows which Phabricator task the patch is for
  4. Amend your existing commit in Gerrit (See: P12961, For more information see Gerrit/Tutorial: Amending a change)
  5. Run selenium tests locally. If all tests pass, copy/paste terminal output to a paste. Then add the paste to a comment of this task. (Please include the steps followed to run the tests in the paste as well). For reference see P8206 and https://www.mediawiki.org/wiki/Selenium/Getting_Started (Sample Output: P15107)
  6. Upgrade WebdriverIO to v7 for any one simple repo (List of repos)
  7. T269566: Remove ChromeDriver dependency in all repositories with Selenium tests

Students:

Mentors:

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Vidhi-Mody triaged this task as Medium priority.Feb 11 2021, 6:29 PM
Vidhi-Mody updated the task description. (Show Details)
Aklapper renamed this task from Upgrade WebdriverIO to the latest version for all repositories to Upgrade WebdriverIO to the latest version 7 for all repositories.Feb 13 2021, 12:41 AM

Hey, I am Ishan. I was going through the project idea list and found this project quite interesting. I also read @Vidhi-Mody 's blog posts on the same project (v6 last year) which were quite helpful and interesting. I am trying to get familiar with WebdriverIO. I just wanted to ask if we could just go ahead with micro tasks without asking the mentors to assign them to us because I read the guide for new developers and found that we don't have to do that. I am sorry if that sounds a bit too obvious.

Hi @Tsiruot. You can always start working on the micro tasks. Unfortunately, this task is blocked on T267890: Upgrade all CI jobs for WMF-deployed projects from Node 10 to Node 14 LTS. WebdriverIO v7 requires Node.js v12 and our continuous integration (CI) is currently at Node.js v10.

Oh, that's unfortunate. So does that mean there is a slight chance of this project being dropped from GSOC'21?

@Tsiruot I think there's a good chance the task will be blocked for a while. It's hard to say for how long.

Hi @Vidhi-Mody, @Soham Wikimedia has been officially accepted for GSoC 2021! https://summerofcode.withgoogle.com/organizations/5372073939042304/

As the student's applications period is from March 29 - April 13th, I want to encourage you to go through the further steps to ensure there isn't anything that you are missing: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Mentors#_Before_the_program

Change 671557 had a related patch set uploaded (by Vidhi-Mody; owner: Vidhi-Mody):
[mediawiki/extensions/FileImporter@master] WIP Selenium: Update to WebdriverIO v7

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

Hey, good to see that the task has not been discarded yet. I was quite interested in it. I have a question though, Can we start doing the microtasks already, like, can we push the patch with a trivial change here?

@Tsiruot only the contributions made after the application period begins will be considered during evaluation.

@Vidhi-Mody I was actually talking about the third micro-task in which we have to make a change in tests/selenium/README.md and push it here. But I get it, we're not supposed to do it yet.

Change 671557 merged by jenkins-bot:
[mediawiki/extensions/FileImporter@master] Selenium: Update to WebdriverIO v7

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

Change 673031 had a related patch set uploaded (by Anjali041; author: Anjali041):
[mediawiki/core@master] subject: Make a trivial change to readme.md

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

Change 675563 had a related patch set uploaded (by Anjali041; author: Anjali041):
[mediawiki/core@master] Merge branch 'master' of https://gerrit.wikimedia.org/r/mediawiki/core into review/unknown/T274579 Change-Id: I833f0ca3bf244d9885fa8fd3f1e56783571c050f

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

Change 675563 abandoned by Anjali041:
[mediawiki/core@master] Merge branch 'master' of https://gerrit.wikimedia.org/r/mediawiki/core into review/unknown/T274579 Change-Id: I833f0ca3bf244d9885fa8fd3f1e56783571c050f

Reason:
Not useful

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

Change 676418 had a related patch set uploaded (by Iamumangg; author: Iamumangg):

[mediawiki/core@master] Added a trivial change in README.md as mentiion in microtask for the task T274579

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

hey @Vidhi-Mody is it necessary to have fresh ?
for more info T279131

Change 676418 had a related patch set uploaded (by Iamumangg; author: Iamumangg):

[mediawiki/core@master] Added a trivial change in README.md as mentioned in microtask for the task T274579

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

Hey @Vidhi-Mody i have created a paste plz look at it P15110

Change 677577 had a related patch set uploaded (by Anjali041; author: Anjali041):

[mediawiki/extensions/Cite@master] Upgraded WebdriverIO from v6 to v7

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

Change 677648 had a related patch set uploaded (by Iamumangg; author: Iamumangg):

[mediawiki/extensions/ProofreadPage@master] Upgraded WebdriverIO from v6 to v7

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

Change 678053 had a related patch set uploaded (by UditDesai2206; author: UditDesai2206):

[mediawiki/core@master] Subject : Make a trivial change to readme.md

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

Change 678053 had a related patch set uploaded (by UditDesai2206; author: UditDesai2206):

[mediawiki/core@master] Subject : Make a trivial change to readme.md

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

Hey @Vidhi-Mody we have to do all additional goals during internship period?

Change 678286 had a related patch set uploaded (by Sahilgrewalhere; author: Sahilgrewalhere):

[mediawiki/core@master] subject: Make a trivial change to readme.md

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

Change 678287 had a related patch set uploaded (by Sahilgrewalhere; author: Sahilgrewalhere):

[mediawiki/extensions/Echo@master] Upgraded WebdriverIO from v6 to v7

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