Page MenuHomePhabricator

End-to-end test coverage for Abstract Wikipedia's Wikifunctions
Open, Needs TriagePublic

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!

Brief summary

Abstract Wikipedia is an idea that people can create and maintain Wikipedia articles in a language-independent way. A particular language Wikipedia can translate this language-independent article into its language. Code does the translation.

Wikifunctions is a new Wikimedia project that allows anyone to create and maintain code. This is useful in many different ways. It provides a catalog of all kinds of functions that anyone can call, write, maintain, and use.

When Wikifunctions launches, the team wants the core features to be covered by end-to-end test that can be run against any patch review. We are leveraging existing selenium tools and patterns to write the tests, and a novel GitLab Kubernetes based CI pattern that integrates with Gerrit.

The aim of this GSoC project will be to write e2e (end-to-end) tests using Selenium and integrate them in our pipeline. A stretch goal of this project working on "production-izing" pipeline itself, and documenting the pattern for other teams to evaluate and implement.

Skills required

A working knowledge of Javascript will be the primary skill needed to promote success in this project. The following are nice-to-haves or skills the mentee is likely to learn while working on the project.

  • Selenium
  • NodeJS
  • Wikitext writing
  • Rust
  • GitLab CI / API
  • Gerrit API
  • Kubernetes

Related projects/tags:

Possible mentor(s)

@SDunlap, @Jdforrester-WMF, (possibly others from the Abstract Wikipedia team)

Microtasks

Event Timeline

SDunlap renamed this task from Insert project title here to End-to-end test coverage for Abstract Wikipedia's Wikifuntions.Feb 1 2023, 6:32 PM
SDunlap updated the task description. (Show Details)

@SDunlap Thank you so much for adding this proposal and for your willingness to mentor :) We had limited slots for Outreachy this time, and they are all filled, so I'd suggest promoting the project via GSoC. I've added the related tag. As it will be your first time mentoring in GSoC (if I recall correctly :)), I'd recommend going through the mentor's manual here: https://www.mediawiki.org/wiki/Google_Summer_of_Code/Mentors. If there are any questions, please let me know.

Also two small asks:

Done! Thank you for your help. :)

@SDunlap
Can you please provide me the repo link and setup guide for this project?
Also where to connect to members working on this project?

By the way, myself Nikhil Mahajan. I am interested to participate in GSoC this year at the Wikimedia Foundation and have two patches already being merged in this org :)

Hey myself aaditya , and i am too interested in working in this project, my tech stack includes javascript, react, node js, kuberneted and recently setup github actions for wikimedia education project .
Can i get the repo link ?

Hello @Nik.xyz.in and @Aaditya, welcome to the project.

Our main repository is here:
https://gerrit.wikimedia.org/g/mediawiki/extensions/WikiLambda.

Development environment setup instructions using docker here:
https://www.mediawiki.org/wiki/MediaWiki-Docker/Extension/WikiLambda

Some documentation about our end-to-end tests in Selenium is here:
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/WikiLambda/+/refs/heads/master/tests/selenium/

Lastly, you're welcome to ask questions in #wikipedia-abstract-tech on Libera.chat
https://web.libera.chat/?channel=#wikipedia-abstract-tech

Quiddity renamed this task from End-to-end test coverage for Abstract Wikipedia's Wikifuntions to End-to-end test coverage for Abstract Wikipedia's Wikifunctions.Feb 6 2023, 6:45 PM

Hi, I am Shivam Jha and I am interested in working on this project. I was also selected for GSoC 2022 in Oppia where my task was to migrate the whole end-to-end test from protractor to WebdriverIO and set up the pipeline to run the test on GitHub Actions. Can we write the test in some framework that uses selenium under the hood like WebdriverIO, NightwatchJs, Playwright, and Selenium Webdriver, which suites the codebase perfectly?