User:PabloCastellano/GSoC 2011 Application

From mediawiki.org

Identity[edit]

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

Contact/working info[edit]

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[edit]

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[edit]

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.

Deliverables[edit]

Required deliverables[edit]

  • 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[edit]

  • Maybe doing the same but from Mediawiki to Drupal?

Project schedule[edit]

Community Bonding Period[edit]

  • April 25 - May 1
 - Getting in contact with the community
 - Getting into the Mediawiki API
  • May 2 - May 8
 - Reading other MW extensions code
  • May 9 - May 15
 - 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 16 - May 22
 - Start adding support to deal with users 
   (map Drupal username to Mediawiki username, LDAP, creating new username, import everything as single user...)

Official Coding Period[edit]

  • May 23 - May 29
 - Finish support to deal with users.
  • May 30 - June 5
 - Add support to deal with comments (don't import, import all into discussion page...)
  • June 6 - June 12
  • June 13 - June 19
  • June 20 - June 26
 - 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 27 - July 3
 - 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
  • July 4 - July 17
 - 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 18 - July 31
 - Improving user-friendliness of the extension UI
  • August 1 - August 15
  - Hard testing the code
  - Making documentation

Participation[edit]

  • 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[edit]

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[edit]

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.

See also[edit]