User:PabloCastellano/GSoC 2011 Application

Identity
Name: Pablo Castellano Email: pablo+at+anche.no Project title: Making easier the migration of Drupal content to Mediawiki

Contact/working info
Timezone: UTC+2 Typical working hours: I prefer evenings and late nights IRC or IM networks/handle(s): pablog@FreeNode, my email address also as Jabber account

Project summary
My project is about making easier the migration of Drupal content to Mediawiki, making it almost transparent for the end-user or sysadmin.

The idea of this project has come to me because I collaborate with a libre telecommunications network project called Guifi.net, mainly developed in Catalonia but also in other places of Spain. During years, users have been creating every kind of contents in Drupal like events, tutorials, news, questions... and now there's so much disorganized information and everytime an user adds new content it's like it went to a black hole where nobody will realize of it. I and other collaborators have agreed that moving the content to a wiki would be more useful and easy for users to read. I tried to find some tool to do the migration but I found nothing.

In order to start with this migration process I wrote a few days ago a series of Python scripts to do it. What it does is simply getting the data from the Drupal database, wikifying it and writing it to Mediawiki revision by revision (to maintain the editions and the date they were done). This could be improved a lot by also saving comments in the discussion page, saving authorship, migrating images too, updating internal links... Taking profit of this work I'm going to do anyways, I could also take advantage and write a Mediawiki extension (or just a php script if it's more appropriated) in order to make the migration from Drupal to Mediawiki easier for users in a few steps.

About you
I'm currently studying Computers Engineering in the University of Málaga, Spain. I'm a geek and free software supporter who has been dealing with Linux since I was 13 (now I'm 22). I enjoy working in projects with social benefits and of course I love wikis and I use to contribute to the Spanish Wikipedia :D. My favorite programming languages are Python and C/C++.

Participating in GSoC is one of the things I wanted to do during my academic life. It's very exciting and to be honest I hadn't thought that I was going to write about it in 2011, but this idea came to me just two days ago and I just decided to go forward and give it a try.

Required deliverables

 * Studying database schemes of both Drupal and Mediawiki (this is mostly done).
 * Studying Mediawiki API.
 * Programming the migration script
 * Code a Mediawiki extension based on the previous script.
 * Make it user-friendly
 * Documentation

If time permits

 * Maybe doing the same but from Mediawiki to Drupal?

Community Bonding Period
- Getting in contact with the community - Getting into the Mediawiki API
 * April 25 - May 1

- Reading other MW extensions code
 * May 2 - May 8

- Start coding (since in June I'll be busy with exams, I prefer to start before the official coding period) - Add support to import Drupal content (possibility to maintain editions; two modes: mass import or selective import)
 * May 9 - May 15

- Start adding support to deal with users (map Drupal username to Mediawiki username, LDAP, creating new username, import everything as single user...)
 * May 16 - May 22

Official Coding Period
- Finish support to deal with users.
 * May 23 - May 29

- Add support to deal with comments (don't import, import all into discussion page...)
 * May 30 - June 5

- I have my final exams between these dates, so I won't have so much free time to work on GSoC :-(   Depending on my time I will more or less testing and thinking on the next tasks
 * June 6 - June 12
 * June 13 - June 19
 * June 20 - June 26

- Add support to deal with images (don't import images, keep original link, upload to mediawiki and change link to it...) - Testing what is already implemented
 * June 27 - July 3

- Code a Mediawiki extension focusing on functionality. This extension will be an UI to help with the migration. The migration process will be divided in various steps. - I have in mind something similar to this Drupal module I used once
 * July 4 - July 17

- Improving user-friendliness of the extension UI
 * July 18 - July 31

- Hard testing the code - Making documentation
 * August 1 - August 15

Participation

 * I will reach my mentor mostly by email to discuss all important things about the development. In emergency cases I would also phone him/her :D.
 * People will be able to consult my code as I will set up a Git repository where I will commit.
 * I will write a blog post about my progresses once a week.
 * I will also idle in #mediawiki to get in touch with the community.
 * I will be listening for comments and suggestions.

Past open source experience
I'm a GNOME developer and member of the GNOME Foundation, that is the biggest project I have contributed. I have experience working with some other open source projects but I have never contributed to Mediawiki. You can see other contributions to open source projects at my ohloh account.

I try to fix every annoying bug I find in software daily.

I like attending to free software events. I have attended to DebConf9 and Fosdem 2010 among others.

Any other info
I coded my scripts just like a proof on concept. They are shabby, please don't blame me. You can find them at my Github repository.