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 kn 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 tagged as 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)

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

Good type of tasks include:
 * [] 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)
 * 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.



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)

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)


 * [] 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)

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

Mentors
 * 1) Dereckson (talk) Related to Scheduling Mentors/Org admins to cover Winter Holidays, I'm available both at Christmas and New Eve. 20:35, 31 October 2012 (UTC)
 * 2) 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)
 * 3) 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)