Talk:Google Code-in

Notes from Code-in session at GSoC Mentors Summit
Only interesting points. These are not full minutes.

--Qgil (talk) 21:28, 19 October 2013 (UTC)
 * Tasks for finish incomplete GSoC projects.
 * Same type of task documented once that can be run several times for different tasks.
 * Shifts of mentors to cover certain days.
 * If a task is not complete don't pass it. The second time will be a lot better.
 * You really need about 100 tasks when you start.
 * Students will jump from project to project at the beginning, but they tend to focus on 1-2 projects after a couple of weeks.
 * It is a lot of work, much more work than GSoC. Micromanaging a lot. The first 2 weeks are crazy.

gcibot
aviraldg maintains an IRC bot called gcibot that posts task information. Is it a good idea to have this in the channel? --117.200.91.101
 * What is the information provided by this bot? The idea sounds good, but we are concerned about the amount of traffic it generates.--Qgil (talk) 17:02, 18 November 2013 (UTC)

Tasks
This selection shows the variety of tasks available. The descriptions of the tasks are not final, and we are still polishing them. Added tasks should clearly identify a mentor (or instead added to . As a reference, currently we have identified about 240 annoying little bugs.

Template for GCI tasks
When adding new task proposals on this page, please provide the following information in the following order:
 * Task title
 * Task description with links (absolute URLs welcome; avoid relative URLs!) to important resources. Note that will be added.
 * Hours (integer) to complete the task. Keep in mind students' real life.
 * Mentor(s) available for this task (should be registered in Google Melange)
 * Tags: Any keywords related to the task, e.g. programming language.

Mentors: Feel free to add new tasks directly in Google Melange instead of this wikipage after reading the Mentor's corner section.

Code
(Mentors: please add here the common instructions for the tasks under this category)

Tasks related to writing or refactoring code.

Kiwix for Android
''All tasks have been imported into Google Melange. Mentors: Please add further tasks directly in Google Melange (feel free to check already imported tasks) after reading the "Mentors' corner" at the bottom of this page.'' --AKlapper (WMF) (talk) 15:27, 6 November 2013 (UTC)

Lua templates

 * 1) Wikipedia and other Wikimedia projects have dozens of old Wikitext-based templates waiting to be rewritten in Lua. We can list many more here. There is also Wikipedia:Lua requests.
 * 2) * en:Template:Taxobox / zh:Template:Taxobox (not exactly the same thing as the one in English Wikipedia)
 * 3) ** Currently the scope feels unclear, this needs to become a more specific task. Please list templates that you would like to see ported, or how a student would find these templates. How many templates should get ported for one GCI task? --AKlapper (WMF) (talk) 16:42, 12 November 2013 (UTC)
 * 4) Bibliographic data on Wikipedia/Wikidata.
 * 5) * Create a new template based on en:Template:Infobox book that can retrieve bibliographic information from wikidata according to the data model (d:Wikidata:Books task force). Initially only for the work item only. --Micru (talk)
 * 6) ** asked Micru to please register as mentor on his talkpage --AKlapper (WMF) (talk) 14:39, 12 November 2013 (UTC)
 * 7) * Enhance the template so it can show information belonging to a featured edition. It can be the first edition, the original, a translation, a contemporary version, etc. Example fr:Des souris et des hommes --Micru (talk)
 * 8) ** asked Micru to please register as mentor on his talkpage --AKlapper (WMF) (talk) 14:39, 12 November 2013 (UTC)

JavaScript gadgets
This program is perfect for fixing and updating gadgets written in JavaScript. We are harvesting tasks from Gadget kitchen/Requests and Bugzilla.

Documentation/Training
(Mentors: please add here the common instructions for the tasks under this category)

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

 
 * 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)
 * More tasks to be extracted from Technical communications/What you can do added to Melange. guillom 08:45, 14 November 2013 (UTC)
 * List the Lua modules active on various Wikisources here. Modules on French Wikisource, Modules on English Wikisource Rtdwivedi 14:00, 4 November 2013 (UTC)
 * Make MediaWiki documentation translatable (recurring task, add at least 5 times, up to ~410 considering only one full translation to migrate on average)
 * You'll be upgrading existing English text and translations so that they are translatable with MediaWiki's Translate extension, which greatly improves translation workflow hence making coverage of translated docs vastly broader. You must not add new translations yourself, that's forbidden by the rules. Detailed steps:
 * For a full introduction, read the basic help, translation tutorial, page translation tutorial and page translation reference manual.
 * Login or register on mediawiki.org: all your work will happen on that wiki. Pick one page to migrate to Translate from the migration list (on the list's talk page, you can ask any question). Polish the English text as fit/possible to avoid migrating very obsolete/low quality text, skip pages where unsure. Prepare the page for translation (i.e. add &lt;translate> tags etc.) following the page translation tutorial linked above and optionally helping yourself with Special:PagePreparation; then edit the migration list, writing next to the page's title that you've done it.
 * A translation administrator will now approve ("mark") the page for translation at their discretion. When it's approved, complete the job: copy the old translations to corresponding units with Special:PageMigration. You don't need to know the language you're migrating, only to identify which paragraph corresponds to which, even though it's not a loyal translation (machine translation can help grasp the meaning if the layout of the page doesn't provide enough hints).
 * When you're done, add in this melange task a link to the stats for the page (example). Repeat the steps until you've done enough pages. More precisely: to have this task marked done, you need at least one page marked for translation; and a total of at least 120 translation units (i.e. paragraphs/strings) counting those created in the source language (English) and those migrated from existing translations (visible in the stats, row "All languages together", as difference between the columns "Messages" and "Untranslated").
 * Hours available: 96
 * Mentor: all the communication with mentor(s) about the task will happen on the list page and its talk page; contact the main mentor, Federico Leva (Nemo), via wiki talkpage or on IRC directly if you get stuck in any of the steps.
 * Tags: documentation, writing, copyediting, wikignome, copy-and-pasting, browser-tabs, i18n, l10n, languages, multilingualism, globalisation

Outreach/Research
(Mentors: please add here the common instructions for the tasks under this category)

(I have started moving these tasks to Melange.--Qgil (talk) 00:02, 9 November 2013 (UTC))

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


 * How to get volunteers involved in Operations / sysadmin tasks. See Sysadmin hub & wikitech-l thread.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Self-help guide to organize events. See Events kit and how WordPress does it.--Qgil (talk) 22:34, 22 October 2013 (UTC)
 * Plan a Guided Tour at mediawiki.org.--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)
 * What to do with the social media stats being collected at Talk:Community metrics?--Qgil (talk) 22:34, 22 October 2013 (UTC)

Beginner task: get on IRC
Suggested in GCI mentors list thread «Contacting "lost" students». Worth trying these last days too? --Nemo 09:14, 2 January 2015 (UTC)
 * Hmm. Don't know. It's a "resolved in one second" task for those who already have used it, plus wondering how to verify: Have a short talk to the mentor of the task (see table on wiki for timezone, nickname, and channel)? As that might block some of the mentor's time if fulfilled by many students, "Post a screenshot of channel X" instead? I have seen that other projects have "set up the development environment" as a separate task (doon'tremember if beginner task though), that might rather be something to consider for us next time GCI takes place? --AKlapper (WMF) (talk) 12:49, 2 January 2015 (UTC)
 * Maybe just ask to idle for N hours in a certain channel after introducing themselves ("Hi, I'm a GCI student") and then check in our (personal) logs? That's easy to verify. It would certainly be a "beginner" task, mainly I wonder if it may be considered unjust by "old" students who didn't have such an easy task. --Nemo 15:10, 2 January 2015 (UTC)
 * Well, let's try once and then think again about it. --Nemo 08:08, 6 January 2015 (UTC)
 * I'm also in for trying this but as students are and were only allowed to claim two Beginner tasks I'm afraid that we might be past that stage now (after 5 of 7 GCI weeks) and not many folks will join and work on Beginner tasks anymore. Let's see. --AKlapper (WMF) (talk) 17:37, 6 January 2015 (UTC)

Quality Assurance
(Mentors: please add here the common instructions for the tasks under this category)

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


 * testme bugs
 * Skill learnable: 1) manual feature testing, 2) writing down steps to reproduce (to compensate their lack in the report); 3) setting up MediaWiki-Vagrant (for bugs requiring special configuration and/or server-side access to the feature or to logs)
 * How about we ask students to pick a testme bug and confirm it (-testme keyword) or unconfirm it (-testme, +UNCONFIRMED/RESOLVED)? --Nemo 08:03, 14 November 2014 (UTC)
 * Dead code. I like this one, would like to try it! --Nemo 22:52, 5 January 2015 (UTC)

User Interface
(Mentors: please add here the common instructions for the tasks under this category)

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

''All tasks have been imported into Google Melange. Mentors: Please add further tasks directly in Google Melange (feel free to check already imported tasks) after reading the "Mentors' corner" at the bottom of this page.'' --AKlapper (WMF) (talk) 11:34, 7 November 2013 (UTC)
 * Internationalisation/localisation support requests (recurring; post at least 5 times, up to ~60, perhaps cloning )
 * Help fix the localisation/internationalisation of MediaWiki. Detailed steps:
 * Read the internationalisation hints (ideally, the whole Localisation page), keep the messages API manual at hand.
 * Pick 3 issues from the list of open dependency tasks ("blocked by") of the task Interface messages needing rewording or documentation and other issues with existing messages and/or MediaWiki open support requests (translatewiki.net threads). Comment on each bug report or thread to say you're working on it; add Nemo to the list of Subscribers if missing.
 * Triage the request appropriately (inspecting the code/feature in question if needed) to identify the issue and the correct action to take. Submit patches to gerrit, or provide the translator with the information needed to translate the messages (by editing their /qqq subpages), or reject the request if the message shouldn't be changed. Add reviewers to your gerrit patches: at least two, Nemo and MatmaRex. All questions on each task will be asked and answered on the relevant bug, patch or thread.
 * Post here on melange a link to a gerrit change, bug or thread for each of the 3 issues; the task will be accepted here when they are marked merged/closed.
 * 3 days time
 * Mentor: Federico Leva (Nemo)
 * Tags: i18n, l10n, PHP, language
 * Bug 40379 – Set user language to current UI language when creating accounts, not only when defined by uselang
 * Bug 18819 – Add id attribute to error messages

Tasks searching for a (co-)mentor
This section lists potential GCI tasks which were either proposed by community members who cannot mentor their proposed tasks, or tasks for which the mentor would like to see a co-mentor before making them available to students, or tasks added for which the creator has not been successfully been contacted and hence also look for a potential (co-)mentor.

Do you spot a task that you could mentor? Go ahead, add your name, and read Google Code-in 2014!

Code

 * [] Make the Parser Functions extension deliver correct instead of guessed results of incomplete dates and make this behaviour configurable. Krabina (talk) 08:18, 4 November 2013 (UTC)
 * Mentor wanted. --AKlapper (WMF) (talk) 14:28, 12 November 2013 (UTC)

Lua templates

 * Improvements to LUA modules: commons:Module:Languages needs cleanup: All template-constructions (e.g. in,  ,  ) should be substituted by calls to MW's LUA API,   should not use   (because it's too expensive), documentation must be added, ... Rillke (talk) 13:39, 2 November 2013 (UTC)
 * Co-mentors wanted. --AKlapper (WMF) (talk) 14:44, 12 November 2013 (UTC)
 * Improvements to LUA modules: Compare and evaluate different documentation approaches for LUA modules in different Wikis and port the best elements to Commons. Rillke (talk) 13:43, 2 November 2013 (UTC)
 * Co-mentors wanted. --AKlapper (WMF) (talk) 14:44, 12 November 2013 (UTC)

JavaScript gadgets
Co-mentors wanted for the following tasks:


 * Write and promote a module that detects both, usage deprecated JavaScript functions as well as extremely bad coding style and syntax errors in JavaScript files. This might be a good template. Rillke (talk) 14:11, 2 November 2013 (UTC)
 * Write a module using the above (deprecation checker) to iterate over all JavaScript files in a wiki's MediaWiki-namespace creating a report. Rillke (talk) 14:11, 2 November 2013 (UTC)
 * Identify gadgets at Wikimedia Commons and other scripts that still make use of deprecated functions and make suggestions how to replace them. Rillke (talk) 14:11, 2 November 2013 (UTC)
 * Create a script capable "packaging" gadgets so they can be shared with other wikis using ResourceLoader. Rillke (talk) 14:11, 2 November 2013 (UTC)
 * Bug fixes and new features for the slideshow
 * Fix the positioning/sizing-bug for the "main picture"
 * Toggle keyboard-observers when slideshow is closed/opened (so it does not interfere with other gadgets when closed)
 * Add option to hide the caption/info-container
 * Use thumbnails that are available on page (and thus do not have to be loaded again) for the thumbnail preview bar, if possible
 * Add Touch&Swipe support, for both the thumbnail-bar and the "main picture" for touch and mice (where it is actually drag&drop-like).
 * Create and document an API so external tools may a) provide a list of images asynchronously b) add jQuery-Objects or DOM-Elements to the caption/info-container (e.g a button for votes). Rillke (talk) 14:11, 2 November 2013 (UTC)
 * Apply MediaWiki's coding-style to Common's Stockphotot gadget, outsource style (maybe create a sprite for all the images), make it modular: Input: HTML-string; Output: An object containing all the links -- this allows us to re-use this gadget inside other tools. Rillke (talk) 14:17, 2 November 2013 (UTC)
 * Activate the gadget ImageAnnotator on Swedish Wikipedia so that annotations on Commons can be seen there. There has been community consensus since long ago to have it (not enabled for everbody to start with) and the work has started, but for some reason it does not work. --Jan Ainali (WMSE) (talk) 14:08, 14 November 2013 (UTC)

Parsoid bugs
Find a Parsoid bug to make the future HTML of our projects perfect! There's currently no mentor available, but the Parsoid team thinks it could work like this:
 * Pick a specific browser, say, Chrome (to eliminate any browser-bug related issues)
 * Install the gadget by Jackmcbarn that lets you look at parsoid html for a page (Add importScript('User:Jackmcbarn/parsoidview.js'); to https://en.wikipedia.org/wiki/Special:MyPage/common.js)
 * If there is a diff seen that seems relevant, use the visual diff service to generate a visual diff for the page (http://parsoid-tests.wikimedia.org/visualdiff-item/diff/ /)
 * Use the visual diff to find the root cause of the diff and report a bug (if it is not already known).

One of the issues you are likely going to run into is: (a) find diffs because of known issues (b) find diffs that are all caused by the same newly reported underlying issue.

Mentors list
To know better in the next edition, it would be nice to update the table by removing those who did't manage to mentor any task (as in didn't create any task, or didn't approve any, or were not included is mentors in any? whatever is easy to query on melange). The full list stays in history anyway. --Nemo 08:33, 7 February 2014 (UTC)

2014
Nice that Andre is already adding gci2014 tags in bugzilla. GCI was (even) more satisfactory than GSoC, IMHO. :) I wanted to ask about it the other day but forgot. I'll be glad to help again. --Nemo 17:41, 26 October 2014 (UTC)