Page MenuHomePhabricator

Projects and mentors for Wikimedia Google Summer of Code 2025
Closed, DeclinedPublic

Description

NOTE: Use the template to create a task with your 2025 Google Summer of Code (GSoC) project information. It will become a subtask of this one.
This task will collect suggestions for project ideas and mentors for the WMF GSoC 2025.

Please review the following resources for more information:

NOTE: Good projects can be: low-hanging fruit, risky/exploratory, fun or peripheral, core development, infrastructure or automation.
The task template will include the following information:

Project title: name of the project
Description of project: a detailed summary of the project to complete (2-5 sentences)
Expected outcomes: the overall goal of the project
Required skills and/or preferred skills: add skills, specific technologies, and Phabricator project tags
Possible mentor(s): add Phabricator username of each mentor
Size of project: will it take 90, 175, or 350 hours to complete
Add a rating of difficulty for the project - easy, medium, or hard. (this helps the more inexperienced folks to not get overwhelmed and to be able to focus on reviewing easy project ideas):
Microtasks: links to easy and self-contained tasks on Phabricator that students can work on to get familiar with the project and technologies
Any other additional information that the interns should know about:

IMPORTANT: GSoC / Outreachy candidates are required to complete micro-tasks during the application period to prove their ability to work on a three month long project

Event Timeline

LGoto triaged this task as Medium priority.Jan 27 2025, 9:35 PM

All project ideas can be found via https://phabricator.wikimedia.org/maniphest/query/IEtVo.XWsaKW/#R so I'm not sure why they should also be subtasks of this task?

Hi Andre, having them here makes it a lot easier for me to keep track of them, and it also makes this one readily accessible place for newcomers to see proposed projects. Please let us continue to do this, it will be really helpful for managing the program. Thanks!

Project Title: Migrating MediaWiki Core Selenium Tests to Playwright

Description of Project:
The goal of this project is to migrate MediaWiki's existing Selenium-based end-to-end (E2E) test suite to Playwright. MediaWiki currently relies on Selenium WebDriver for functional and UI testing, but Playwright offers a more modern, efficient, and reliable alternative. Playwright provides better cross-browser support, enhanced performance with parallel test execution, auto-wait mechanisms to reduce flakiness, and powerful debugging tools. This migration will improve the maintainability of the test suite and enhance contributor experience by using an easier-to-configure and developer-friendly framework.

Expected Outcomes:

  • Fully migrated MediaWiki Core E2E test suite from Selenium to Playwright.
  • Improved test execution speed with Playwright's native parallelization.
  • Reduced test flakiness with Playwright's auto-wait and retry mechanisms.
  • Simplified test maintenance with Playwright's modern API and better debugging tools.
  • Documentation and guidelines for future contributors on writing and maintaining Playwright tests.

Required and Preferred Skills:

  • Required: JavaScript/TypeScript, Web Testing Automation, Selenium, Playwright
  • Preferred: Knowledge of MediaWiki architecture, familiarity with Phabricator workflows

Possible Mentor(s): : @AndrewTavis_WMDE
@Henrikt93 @DeepeshaB @roti_WMDE ( or any other mentors willing to Guide )
Size of Project: 175-350 hours (depending on the extent of test coverage and complexity of migration)

Difficulty Rating: Medium

Why Playwright?

  • Faster execution: Playwright supports parallel test execution by default, reducing CI/CD runtime significantly.
  • Cross-browser support: Unlike Selenium, which often requires additional setup for different browsers, Playwright works seamlessly across Chromium, Firefox, and WebKit.
  • Auto-wait and smart retries: Playwright automatically waits for elements to be ready before interacting with them, minimizing flaky tests.
  • Modern debugging tools: Features like trace viewer and built-in network interception make debugging easier and more efficient.
  • Stronger contributor experience: Playwright has an easier setup, no need for WebDriver dependencies, and provides better documentation, making it more approachable for new contributors.

This migration aligns with Wikimedia’s goal of improving test reliability and maintainability while leveraging modern automation tools. By adopting Playwright, the project will streamline its E2E testing strategy, ultimately leading to more efficient and stable software development for MediaWiki.

HI @Hxrshxz thanks for your interest. @AndrewTavis_WMDE @Henrikt93 @DeepeshaB @roti_WMDE are all mentors on other projects - do folks have experience and capacity to mentor this project as well?

Hey @LGoto 👋 Removing this account as a subscriber as GSoC is outside of my WMDE work. @AndrewTavis is the appropriate account here 😊 (no stress!)

Answering from my personal account shortly :)

Speaking outside of my WMDE capacity now:

I appreciate the initiative from @Hxrshxz here, but I really don't think that switching over the MediaWiki end to end testing framework is appropriate for a GSoC project. The decision to migrate software that's so integral to MediaWiki development needs to come from WMF Engineering leadership and the broader MediaWiki community.

Speaking of capacity, I'll speak for just @Henrikt93 and I, but both of us are at capacity for GSoC with T385393.

Thanks all!

As PM for Wikibase Suite at WMDE, I can say that @DeepeshaB and @roti_WMDE (both WMDE staff) are at mentoring capacity supporting T385842. My apologies there.

@Hxrshxz, I appreciate your enthusiasm ! I can't speak for the overall prios of WMF engineering team. It sounds like Andrew's suggestions are a great starting point in terms of where you should search for alignment on the testing improvements you have in mind. :-)

Unfortunately, the Wikimedia Foundation will not be participating in this year's Google Summer of Code program. We look forward to coming back in 2026. In the meanwhile, we will be participating in Outreachy round 30 this summer. You can propose a project here. Thank you for your patience and support.

Thanks for letting us know, @LGoto. Sorry to hear this and hope all are well. If we do want to switch our project over to Outreachy, then would it be ok to switch the parent tasks and edit the information to remove what's not needed for an Outreachy task? Happy to close T385393 and open a new one if that would be preferred.

Hi @AndrewTavis I'm happy to update the task for you and transfer it to Outreachy.