Google Code-in/2013

Google Code-In is a contest to introduce pre-university students (ages 13-17) to the many kinds of contributions that make open source software development possible. Students must complete tasks (see examples), one at a time. The Google Code-in 2013 contest runs from November 18, 2013 to January 6, 2014.

Wikimedia application
The application deadline for organizations is October 28, 2013 at 19:00 UTC. 10 organizations selected will be announced on November 1. Check the instructions for mentors and org admins to know all the details.

We want to apply having at least 40 tasks with at least 5 from each of the 5 categories: code, documentation, outreach, quality assurance and user interface. Requirements of a task: Andre Klapper and Quim Gil will go through proposed tasks in order to confirmed the ones selected. CC us in the bug reports.
 * It takes about 2 hours of a skilled contributor to complete.
 * It's self-contained. Students must be able to complete it without much knowledge of the context, or the background.
 * It is described in a bug report with the keyword "easy" with 1-2 mentors CCed and volunteering explicitly in the comments.

Candidate tasks
Tasks are supposed to take 2-3 hours to an experienced contributor. It is fine if the first task takes even 2-3 days to a student because they must understand many concepts and setup their environment first. And it is also ok if students specialize in a type of task, so every new task takes less time to complete until they are also able to complete them in a couple of hours.

List bug reports. Don't worry if they are not meeting all requirements yet.

A list of potential candidate bugs is available as the GCI candidate bugs saved search on Bugzilla (MediaWiki and extensions, +easy, -gci2013, no patches pending).

Candidate bugs should have " gci2013 https://www.mediawiki.org/wiki/Google_Code-In#Candidate_tasks " added to their Whiteboard field to make it easy to track them.


 * [] Bug description. Detailed explanation. ~

Code
Tasks related to writing or refactoring code.


 * [] Make SimpleSearch parameters to ApiOpenSearch configurable. has some detailed explanation; basically just add a new config variable to DefaultSettings.php and use it where appropriate. Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [] Provide CSS class (hlist) to define horizontal lists in MediaWiki core. Entails copying a chunk of code from en.wp's common.css and pasting it into a new module in core (explained in detail in bug comments). Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [] newmessageslinkplural and newmessagesdifflinkplural shouldn't use fake values for the number of changes. Details in . Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [] Merge ExpandTemplates extension into MediaWiki core. Copy the new special page and register it the way core special pages are registered. Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [] jQuery.makeCollapsible: support table captions. The code that needs to be modified is very straightforward (if a little boring and repetitive). Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [] collapsibleTabs code cleanup: null != undefined, undefined variables passed to .data. Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [] [Echo extension] Mention notification text broken if there is no section. Needs finding out the place where the link is constructed (just search for the message key that's used there), if-ing out the case where section is empty and adding&using a new message there. Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * [ & ] Interwiki tooltip shouldn't start with a dash on the main pages; interwiki tooltip: " should not be double-escaped. Explanation for each in bug comments; they're both simple fixes in the same area of code, so sticking them together. Matma Rex (talk) 18:34, 18 October 2013 (UTC)
 * [] Migrate legacy redirectToFragment to modern structure. It's a little function that needs love, things to do listed at . Matma Rex (talk) 19:36, 18 October 2013 (UTC)

Lua templates
Add links to wikitext templates that you would like to see rewritten in Lua. The typical description of a Lua template task could be organized like this:
 * Template 1
 * 2
 * 1) Common short intro: MediaWiki templates
 * 2) Common short intro: Wikitext vs Lua templates
 * 3) Specific short intro: Template:XYZ
 * 4) Optional specific instructions e.g. include Module:123
 * 5) Common instructions for deployment and testing.


 * Can someone extract some information from slowparse.log and templatelinks tables in all projects to see what are the most used or slowest templates around? --Nemo 09:36, 21 October 2013 (UTC)
 * Maybe can help?--Qgil (talk) 16:16, 21 October 2013 (UTC)
 * Where are those templates going to be created, on mediawiki.org for the other wikis to copy? --Nemo 09:36, 21 October 2013 (UTC)
 * I think we should ask all Code-in students to create these templates in mediawiki.org, yes.--Qgil (talk) 16:16, 21 October 2013 (UTC)


 * On the Occitan Wikipedia they are experimenting with using Wikidata as the source for many templates. There are however thousands of errors.. It would be really cool when these errors are fixed. GerardM (talk) 16:32, 21 October 2013 (UTC)
 * When you are looking into the templates on the oc.wp, it would be great when the language parts are in such a way that it is easy to use the same templates with little effort on other Wikipedias. GerardM (talk) 16:32, 21 October 2013 (UTC)

JavaScript gadgets
This program is perfect for fixing / updating gadgets.

Bots
Invitation sent to PyWikibot, but any botmaintainers are encouraged to lists tasks.

Documentation/Training
Tasks related to creating/editing documents and helping others learn more. How can these students help fixing Bug #1?


 * [] Watchlist and recent changes should include a legend for the N, m, b, ± icons. They have description tooltips, the text could be reused with minor changes. Matma Rex (talk) 19:36, 18 October 2013 (UTC)
 * Review and polish browser test automation docs for newcomers.--Qgil (talk) 22:27, 22 October 2013 (UTC)
 * Sort out Category:Tutorials.--Qgil (talk) 22:27, 22 October 2013 (UTC)
 * Sorting out presentations. See Presentations, Presentations, commons:Category:Wikimedia presentations, commons:Category:MediaWiki.--Qgil (talk) 22:27, 22 October 2013 (UTC)
 * This may take a lot more time than available for a single Code-in task. (I once did that thankless job about 6 years ago, and there were a lot less presentations at the time.) guillom 08:07, 23 October 2013 (UTC)
 * I've put together a list of tasks at Technical communications/What you can do. They're not related to specific bugs, so let me know how you'd like me to format them for this page. guillom 08:56, 23 October 2013 (UTC)

Good type of tasks include:
 * Fixing typos and other language improvements in mediawiki.org pages. Do we have a specific category to mark those pages?
 * We have cleanup but it can cover very complex issues. A practically infinite supply of tasks would be converting pages to usage of the Translate extension, see e.g. help pages. One task would be one translatable page (English + all translations).
 * Update documentation.
 * Write step-by-step tutorials, or create the corresponding screencasts.
 * Illustrate documentation with screenshots.
 * Write examples.

Outreach/Research
Tasks related to community management, outreach/marketing or studying problems and recommending solutions.


 * [] Make tutorial video on how to use Bugzilla.--Qgil (talk) 22:22, 22 October 2013 (UTC)
 * Promotion landing page, to be linked from How to contribute.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * How to get volunteers involved in Operations / sysadmin tasks. See Sysadmin hub & wikitech-l thread.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Project:New contributors/Starter kit summarizing all the things seasoned MediaWiki editors and contributors assume and forget to explain.
 * Self-help guide to organize events. See Events kit and how WordPress does it.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Guided Tour at mediawiki.org?--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Who are the top 50 independent contributors and what do they need from the WMF?--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Improve the confirmation email sent to new registered users and sync Template:Welcome.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Greeters / mentors for new contributors.
 * Check/update our info at OpenHatch and SocialCoding4Good.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * What to do with the social media stats being collected at Talk:Community metrics?--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Sort out Wikimedia Mobile engineering pages.--Qgil (talk) 22:34, 22 October 2013 (UTC)

Quality Assurance
Tasks related to testing and ensuring code is of high quality.


 * [] Triage (test) any 10 of the Vector skin (default) issues tracked on . [There are currently 38 open sub-bugs, so this could be split in up to 4 tasks.] Matma Rex (talk) 15:55, 18 October 2013 (UTC)
 * First part: Read and understand Bug_management/Bug_report_life_cycle. Then edit the embedded file Bug_Life_Cycle_Diagram.svg with a Vector graphics application (e.g. Inkscape) and update the file (also the PNG version) to also include the recently introduced "PATCH_TO_REVIEW" status which only comes before "RESOLVED FIXED" (but none of the other resolutions). This needs graphic skills how to present information in a non-confusing way. Second part: Follow the steps on How_to_report_a_bug and check if they are all still correct in the new "guided bug entry form" which can be tested on . --AKlapper (WMF) (talk) 16:04, 22 October 2013 (UTC)
 * [] Continuous integration: Customize Jenkins email notifications --Zeljko.filipin(WMF) (talk) 17:04, 22 October 2013 (UTC)
 * [] Browser automation with Selenium + continuous integration: Select a set of stable and quick tests for smoke test suite --Zeljko.filipin(WMF) (talk) 17:04, 22 October 2013 (UTC)
 * [] Browser automation with Selenium + documentation: Extract browser automation setup information to a separate page --Zeljko.filipin(WMF) (talk) 17:04, 22 October 2013 (UTC)
 * [] Browser automation with Selenium: Investigate if Selenium can fake HTTP headers --Zeljko.filipin(WMF) (talk) 17:04, 22 October 2013 (UTC)
 * [] Browser automation with Selenium + documentation: Cleanup of Test backlog page --Zeljko.filipin(WMF) (talk) 17:04, 22 October 2013 (UTC)

User Interface
Tasks related to user experience research or user interface design and interaction.


 * [] Fix any 3 of issues reported with interface translation messages needing rewording or documentation tracked on . [There are currently 78 open sub-bugs, so even if not all fit this we have basically infinite supply. Some of them are more complicated, though… a quick triage might be needed.] Matma Rex (talk) 18:14, 18 October 2013 (UTC)
 * If each task is supposed to take 2h, then 2 of those bugs may be enough to make one. Small changes that require 5 min to a non-coder with good knowledge of our community may take 2 h for someone who has to understand everything; PLURAL and GENDER bugs are more complex and there's quite a variance of difficulty in that pool. I can do some triaging to determine different pools from which to pick to make your own task, but pre-determining choices would not work. It would be interesting to know how many tasks we can expect participants to complete on average: after the first, difficulty decreases a lot; mentoring cost increases proportionally to participants, not so much to tasks. --Nemo 18:32, 18 October 2013 (UTC)


 * Make MediaWiki High-density display friendly. Bugs from [], some selected below:
 * [] Vector: Add SVG version of magnifying-glass icon. It would have to be redrawn as an SVG image (it's pretty simple) and added to our LESS styles with the background-image-svg mixin (like, for example, arrow-down-icon.svg). Matma Rex (talk) 19:36, 18 October 2013 (UTC)
 * [] Vector: Add SVG version of the watch star icon. Create and integrate an SVG version, and use CSS animation for interactive state. Possibly unifying with mobile assets ([). Pginer (talk) 11:04, 22 October 2013 (UTC)
 * [] Wikipedia and other site logos pixelated, blurry on high-resolution screens. Use vector-based version of logos. Pginer (talk) 11:04, 22 October 2013 (UTC)
 * [] Create and integrate an SVG version of the WikiLove "heart" icon. Pginer (talk) 11:26, 22 October 2013 (UTC)
 * [] WikiEditor: Add SVG versions of editing toolbar icons. Create and integrate a SVG version of several icons. Pginer (talk) 11:26, 22 October 2013 (UTC)
 * [] Link type icons are low-resolution. Create and integrate a SVG version for different link types (news, external...). Pginer (talk) 11:26, 22 October 2013 (UTC)
 * [] Enhanced Recent Changes collapse/show arrows are low-resolution. Create and integrate an SVG version. Pginer (talk) 11:26, 22 October 2013 (UTC)
 * [] RSS/Atom feed icon for sidebar is low-resolution. Find and integrate an SVG version. Pginer (talk) 11:26, 22 October 2013 (UTC)

Signup
(Old. We will organize this through Google Forms for easy import to Google Melange)

Mentors
 * 1) Available to guide everyone for bug 38638 (escalating to real coders when needed) because I like this idea a lot. Might have little time in late November. --Nemo 18:32, 18 October 2013 (UTC)
 * 2) For every bug I added above and any other interface-related ones. Matma Rex (talk) 18:37, 18 October 2013 (UTC)

Org admins
 * 1) Quim Gil
 * 2) Andre Klapper (if others also help) (talk) 13:58, 29 October 2012 (UTC)