Hackathon/Tasks

From Wikimania 2012 • Washington, D.C., USA

About this page

The goal of this page is to orient you to ways that you can help Wikipedia and related projects. It's grouped by what you already know, so that no matter what you know, you can dive in and start making a difference.

...if you don't have a plan for how to contribute and want something with no tech requirements

...if you want to help but aren't sure where to begin, and don't mind doing laptop setup

  • Go to the table labeled "beginners" and say hello. (Yes, saying "hello" is required.)
  • Now, open up the laptop setup page in your browser and go through all the steps. If you have any problems, raise your hand and someone will be around to help.

...if you maintain an extension, and want to do it better

...if you want to learn more about templates

  • First, attend Yaron Koren's tutorial on Wednesday morning
  • Then, when you return to the main hacklab area, sit down at the Beginner's table.
  • Open up the Play with templates task, and as you have questions, raise your hand and ask for help
  • For further practice with templates, check out the Fix up a page, per a category task

Tasks

This section lists good, self-driven tasks that you can work on during the Hackathon.

Respond to a Talk Page comment

On Wikipedia, every article has a corresponding "Talk page".

For example, look at these two links:

You can always find the talk page for any page by clicking the word "Discussion" in the top navigation.

In this task, your goal is to take a page that you like, and look for comments on its corresponding talk page. If there is a comment that has not been replied-to, your task is to read the comment, see if it still applies to the page, and if so, answer the comment on the talk page.

If answering the comment well requires making a change to the page (perhaps because the comment suggests making a change), be bold! Make the change to the article. (-:

It turns out that you can discuss Wikipedia articles until the cows come home! To find out pages that have discussions that want comment from other editors, visit this page:

There are other "Requests for comment" pages, too. You can see a list of all such indices here: http://en.wikipedia.org/wiki/Wikipedia:Requests_for_comment/All

Improve a page within a WikiProject

On Wikipedia, WikiProjects are collaborative efforts to make excellent articles within a particular topic.

I'll explain the task by the following example (you should click along -- open the links in a new tab!):

  • Visit http://en.wikipedia.org/wiki/Talk:Rodin_Museum and notice the "WikiProject Museums" box. Click "Show". Notice that the article is of "Mid-importance", which is fairly high -- so the project wants an excellent article. Note further that the article is only of "Start-Class" on the quality scale.
    • Click the "Quality scale" link, and read about the WikiProject Museums' quality scale.
    • Now that you know what they need, you can work to improve the article.

Many, many articles are covered by WikiProjects, and they could use your help!

Your task is to:

  • Surf Wikipedia for a little while and when you see an article you care about, click on the "Talk" page and see if it's covered by a WikiProject.
  • Once you find an article that is part of a WikiProject, check if it is of importance "Medium" or higher. If it needs help (because the "Quality" is not as high as it could be), read the guidelines for that WikiProject, and improve the article!

Fix up a page, per a category

(Skills required: Writing text. Basic wiki formatting. Experience with MediaWiki templates is definitely helpful. If you want to learn more about templates, attend Yaron Koren's talk on Wednesday.)

On Wikipedia, we use categories to sort pages into groups. Some of these categories correspond to tasks that need to be done to a page.

For example, there is a category called http://en.wikipedia.org/wiki/Category:Persondata_templates_without_short_description_parameter .

If you look at the contents of that link, it explains how to add a "short description" to the "Persondata" template.

Your task is to:

  • Visit that enormous Category page.
  • Choose a few articles to investigate. For each article, visit the article and click "edit". Looking at the wiki source of the page, find where the page uses use the "Persondata" template. Are they truly missing a short_description parameter? (Note that some might call the Persondata template via another template.)
  • If so, provide a short_description!
  • Finally, make sure the articles don't show up on the Category page any longer.

Play with templates

Required skill: A general understanding of editing wiki pages. Templates allow for re-using potentially complex wiki markup; templates themselves are just wiki pages in the Template: namespace! (For additional background on templates, just attend Yaron Koren's presentation on Wednesday as per the Schedule. Shortly after Yaron's talk, we will have helpers available to guide you through it.)

Goal: After this exercise, you will have used and edited MediaWiki templates, giving you a grounding in how they work. You will also be exposed to where the Wikipedia community requests more templates, so you know how to be plugged into contributing to them.

Make sure you have an account on English Wikipedia. Log into it!

Take a look at a recent version of the Wikipedia list of requested templates.

Notice that there is a request for a modified version of Template:Welcomevandal. Click the link to the Template:Welcomevandal template page.

Subtask 1

Apply the "Welcome-vandal" template to your own user talk page (recall that you can find your "User page" by clicking your username in the upper-right corner of any page).

If you aren't sure how, make sure you visit http://en.wikipedia.org/wiki/Template:Welcomevandal and read through the Template documentation on that page. (It's very brief; make sure to use subst!)

Now, remove the expanded template from your personal user talk page, since you are not a vandal. (-:

Subtask 2

Create a customized version of Template:Welcomevandal on hackathon.referata.com (e.g., hackathon.referata.com/wiki/Template:Welcomevandal-Your_Username (note you don't actually have to create an account on hackathon.referata.com to do this, but you can if you want) so that others can try at the same time) with slightly different text. In particular, look for this text:

"For more information on this, see Wikipedia's policies on vandalism and limits on acceptable additions."

and replace it with:

"Some of your recent edits deleted some content that other editors thought should stay on the page."

To create hackathon.referata.com/wiki/Template:Welcomevandal-Your_Username copy that link into your browser's URL bar, change Your_Username, and go. If you're logged in, you'll see a blank textbox. Start by copying and pasting the template source from http://en.wikipedia.org/wiki/Template:Welcomevandal (click view source where you'd normally see edit) into the blank textbox, then modify per the above, and save.

Next, on your user talk page on hackathon.referata.com, use subst to include that new template onto your user talk page.

Finally, delete it from your hackathon.referata.com user talk page.

Bonus

You've used a template with subst. Many templates aren't intended to be used with subst. What's the difference and why? Hint: subst is a template; you can find its documentation which links to thorough explanations.

Congratulations! Your head may be spinning, but you now have used and written MediaWiki templates! If any of this confused you, now is a good time to talk to a helper.

You might want to try the Fix up a page, per a category task.

Polish up your git skills

(Skills required: An interest in learning more about git, or version control in general. If this seems interesting, you probably also want to attend the Git/Gerrit tutorial Tuesday morning.)

The git version control system can be somewhat daunting. Lots of MediaWiki extension developers have used Subversion, and git can seem similar but then trip you up in new, exciting ways. One of the difficulties with using git is that you need to understand how the tool understands your data in order to use it well.

So, a good thing to do at the Hackathon is to improve your fluency in git. We'll take you through two different interactive tutorials, and then recommend you read the official Git workflow page. Hopefully that should illuminate things. You're always quite welcome to request help from a staffer -- just raise your hand.

To do this task, first make sure you have gone all the way through the Laptop setup document.

Your first task is to get some practice with the basics of git on your own computer. To do that, you'll use the OpenHatch git training mission, a web-based set of interactive exercises, alongside a terminal on your own computer.

  • Visit https://openhatch.org/missions/git and read the introduction to the mission. As you proceed through the steps, you will eventually be required to create an account.

Your second task is to visit the Github interactive git teaching tool, which teaches a different set of important git commands. That tool should take about 15 minutes.

Finally, you should take some time to read through and understand the MediaWiki Git Workflow.

If you have more questions, ask a staffer. or find the particular Wikimedian primarily responsible for the conversion (Chad, AKA ^demon on IRC). If you want more reference material, I am sure we can provide. (-:

Get your extension in the official Git system

(Requirements: For this task to make sense, you should already be the author of an extension maintained either in mediawiki.org Subversion or as PHP embedded into a mediawiki.org wiki page.)

Since MediaWiki and many extensions are moving to Git, if you maintain an extension, the Hackathon would be a great time to move your extension to the mediawiki.org git hosting.

Some extensions are still hosted in Subversion, and other extensions never used a formal version control system; their full text is stored on pages within mediawiki.org.

If your extension is in Subversion

If you already maintain an extension in Subversion, you can file a request for Chad to convert it to git. To do that:

You will have to wait for him to personally convert your extension.

If your extension is maintained within the mediawiki.org wiki

If your extension is just stored on a page within mediawiki.org, now is an especially good time to convert it to git and start using formal version control. Doing that makes it much easier to accept changes from others.

Steps: FIXME

Start using ResourceLoader

"ResourceLoader is the delivery system in MediaWiki for the optimized loading and managing of modules. Modules consist of JavaScript, CSS and interface messages." <http://www.mediawiki.org/wiki/ResourceLoader>

  • If your extension has user interface strings, CSS files, or JavaScript, you should be using ResourceLoader! It's been available since MediaWiki 1.17, and it makes loading those elements more reliable.
  • Read over the general documentation on ResourceLoader.
  • Then read the Migration Guide.

Verify bugs filed against extensions

Skills required: Installing extensions on your personal wiki. (We can help you learn this -- just raise your hand and ask for help.) Using Bugzilla. (For Bugzilla skills, we recommend attending Roan Kattouw's tutorial session.) No programming required.

Wikipedia has a large number of open bug reports, like around 8000 right now, and that number is growing by approximately 3000/year last I looked. It is probable that many of those open bugs should be marked RESOLVED or possibly UNCONFIRMED, but our triaging resources are scarce right now.

-- Chris McMahon, QA lead at Wikimedia Foundation.

You can help. Take the list of open reports for a particular "extension" or two, read them, try to reproduce them, and then either:

  • Mark the bug as RESOLVED, to indicate they are actually fixed, or else
  • Mark the bug as UNCONFIRMED, if you are not cannot tell if the issue is fixed. Either way,
  • Leave a helpful comment on the open bug describing what you found when trying to reproduce the issue.

To get started:

  • Visit the Bugzilla advanced search interface here:
  • On that page, select MediaWiki extensions as the "Product".
  • Choose any one extension you want to test (if you're not sure, pick one at random).
  • Select NEW as the status.
  • Click the Search button at the bottom of the screen.

Ta-da! Now you should see a list of bugs. Your task is to read any bug that strikes your fancy, and see if you can improve it according to the steps above.

Add some automated tests

Add message documentation to your i18n files where they are missing

Squash some MediaWiki bugs

See also: WikiProject Bug Squad

Skills required: Identify and fix bugs in the MediaWiki software using a personal wiki install. (We can help you learn this -- just raise your hand and ask for help.) Using Bugzilla. (For Bugzilla skills, we recommend attending Roan Kattouw's tutorial session.) Fixing bugs does require developer knowledge.

Steps:

  • Identify a known annyoing little bug or easy bugs - then squash (fix) it
  • Mark the bug as RESOLVED if it is actually fixed
  • Leave a helpful comment on the open bug describing what work you completed.

Do an intro video for Wikidata

Wikidata needs an intro video that shows people what it is all about. It should be short, easy to understand and to the point. For more info talk to Lydia.

Verify wiki pages for extensions

Skills required: Editing wiki pages and reviewing extensions standards. (We can help you learn this -- just raise your hand and ask for help.) No programming required.

Several extension pages are long overdue for review. Many are lacking the appropriate tags, both header and within the extensions, which cause confusion for other developers and sysadmins. In addition to time wasted on bad installations, there is also time wasted by other developers providing tech support to these bad installations. The 2012 Extension Page Review Drive is an effort to check for proper tags, headers, templates, status, etc. on every MediaWiki.org page documenting an extension. This page has been setup to recruit volunteers for the page drive and track their progress.

This effort will also help with future drives reviewing actual code of extensions (although you're welcome to do thorough code review during this drive if you'd like) and moving extensions based in wikicode to the code repository.

Steps and more information: Project:WikiProject Extensions/Projects/Page Drive

Improve MediaWiki documentation

Documentation of the MediaWiki software is housed on MediaWiki.org - and is in constant need of updates. Folks with a working knowledge of MediaWiki features can be helpful. Programming experience can help - but is not necessary.

Places to start:

Pre-commit hook in gerrit

When we submit a file to gerrit, it parses that there are trailing whitespaces, however it doesn't reject the submission Places to start: