User:NicDumZ/GSoC 2008

This is a Google Summer of Code application.

Wikimedia Foundation — Core category renaming

Abstract
Articles are being categorized using a dedicated syntax in the page wikitext. For that very reason, renaming a category is as of now time-consuming : to do so, a WikiMedia user has to go through all the pages of the old category to manually change the category name in the wikitext.

This process is heavy, and renaming a category is a common maintenance task : that's why several third-party tools have been developed to assist users in that task, from basic Javascript popups to fully automated robots. However, such a basic operation should be implemented in MediaWiki core.

Detailed Description
The idea of implementing category renaming in MediaWiki core is really attracting : As a bot owner I performed a lot of category moves, and I know how frequent these bot requests are. Working on that feature really makes sense to me.

From the external point of view of a bot owner, changing a category name might not be at first not a very challenging task : "A big regular expression will do, hum ?!" But thinking a bit more seriously about my project, I've outlined several potential issues that actually make the task much harder than I first thought : templates including categories will most likely haunt my dreams this summer !

I have a bot operator view of a category move : First, move the category page and its talk page, then modify the text in every page that includes the category. Moving the category page itself, and updating categorylinks rows are not the hardest parts here : the tricky part is to update the wikitext to reflect the category move.

I plan on first coding a very basic version of that feature. This "0.1" will only allow basic category renaming, where the category is directly included in the wikitext. It will definitely not be able to handle all cases : I will make it output the list of pages that couldn't be moved to the new category. I believe that I can reach that first step in one week.

I will build a consistent dummy category in my local wiki for testing purposes : the idea is to have a set of (most of the) category transcluding cases to test my code against, to prevent any regression, and to be able to work efficiently by incremental steps.

The next thing to do at this time of the project, if easy to describe, will definitely be quite challenging : I will have to progressively improve my code to shrink the list length of the unhandled cases, and ideally, make it zero. But actually, that part will be much longer, and much harder, than the first coding step !! If the Image renaming feature from VasilievVV is by the time available, it is likely to help me a lot in this process, for the detection of transcluded objects. If not, image renaming will benefit from my work.

Me
I'm Nicolas Dumazet (NicDumZ), 20, studying computer sciences at ENSIMAG, in France. I've been a wikipedian since 2006, and running DumZiBoT, a pywikipedia-based bot since August 2007. That bot owner activity introduced me to the Open Source community : I started reporting bugs I found in pywikipedia, modifying the source, creating my own scripts, and eventually... submitting patches ! I was in !

A few months later, I experienced a MediaWiki bug while editing (bug #111), and gave a look at the source. MediaWiki had me ! So far, I've helped submitting patches for (easy) bugs #2084, #10721, and #11874. My last contribution in a category-related field was on bug #13557.